By lfnovo
Coordinate declarative workflows across Claude and Codex with Harny's orchestration agent, including run analysis, PR delivery, and release management without memorizing CLI syntax.
Walk a repo through the harny readiness checklist. Score 10 dimensions Red/Yellow/Green, surface anti-signals, output a scorecard + prep checklist. Use when adopting harny in a new repo, or troubleshooting why it struggles in a familiar one.
Triage accumulated learnings from the local harny inbox into GitHub Issues, AGENTS.md edits, or discards. Walks one entry at a time, verifies claims against current code, opens issues with provenance. Sister of /learn.
Onboard and route users through Harny's declarative Claude/Codex workflows, local run state, provider configuration, human review, PR delivery, inspection, and cleanup. Use when someone is new to Harny, asks how it works, or needs help choosing the right Harny skill or workflow.
Append a one-line learning to the local harny inbox. Fast, non-analytical capture — copies text verbatim, no analysis, no follow-ups. Use when the user wants to note something about harny adoption mid-conversation without breaking flow.
Operate a release cycle across Harny 0.5 runs and draft PRs. Use when coordinating multiple scoped changes, choosing feature-dev versus feature-pr, reviewing run evidence and usage, fixing PR feedback, running release gates, merging with explicit approval, or tagging a version.
Uses power tools
Uses Bash, Write, or Edit tools
Based on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Harny is a local-first workflow runtime for auditable AI-assisted software development. Workflows are declarative YAML DAGs, can mix Claude and Codex, persist resumable state locally, and keep privileged effects such as commits and pull-request publication outside the agents.
Requires Bun 1.3+ and Git.
bun add -g @lfnovo/harny
# or
bunx @lfnovo/harny "implement the requested feature"
Claude workflows use the Claude Agent SDK authentication. Codex nodes use the pinned official Codex SDK and the user's existing Codex authentication/config; a separately installed Codex executable is not required. GitHub PR delivery uses the installed gh CLI. Tokens never belong in workflow YAML or Harny's provider config.
# Planner → sequential tasks → developer/validator retry → validated commits
harny "add JSON export to the CLI"
# Also push and create/update a draft GitHub PR
harny --workflow feature-pr "add JSON export to the CLI"
# Load an explicit workflow file
harny --workflow ./.harny/workflows/custom.yaml "run the custom workflow"
# Address review feedback on the current repository's existing PR
harny pr fix 123
Each normal run creates an isolated harny/<slug> branch and Git worktree. --isolation inline is available when isolation is not wanted.
New to agent harnesses? Start with the Harny documentation. It provides a progressive user path and a separate development path for contributors.
Workflow loading is:
YAML → schema validation → static validation → normalized DAG → scheduler
Named workflow precedence is:
<repo>/.harny/workflows > ~/.harny/workflows > bundled workflows
Markdown commands use the equivalent commands/ precedence. Validation occurs before worktree creation or provider cost and checks duplicate IDs, missing dependencies, cycles, output references, retry bounds, human timeouts, provider capabilities, and reachable outcomes.
The v1 scheduler is sequential and deterministic: one ready node runs at a time in declaration order. Supported node types are:
agent — structured provider invocation with optional provider/model override and guards.command — argv-based subprocess; inline shell scripts and plugins are not workflow escape hatches.foreach — bounded, sequential steps per item, with persisted step checkpoints.human — interactive input or persistent async parking with mandatory timeout.commit — privileged commit of exactly the validated ChangeSet.pull_request — privileged, idempotent GitHub draft-PR delivery.cancel — finite terminal cancellation.Bundled workflows:
feature-dev — plan, implement, independently validate, commit each task, then validate the accumulated branch.feature-pr — feature-dev plus push and draft PR create/update.review-fix — internal definition used by harny pr fix <number> to address feedback on the current remote head.AgentProvider normalizes structured output, cwd, sessions, transcripts, usage, cancellation, transient errors, and capabilities. Claude is the default. A node can select Codex:
- id: planner
type: agent
command: planner
provider: codex
requires: [structured_output]
Unsupported capabilities fail before execution. In particular, the Codex SDK adapter advertises structured output, session resume, cwd, cancellation, and a read-only sandbox, but does not claim Harny's path-aware per-tool guards.
Logical provider connections can be declared globally in ~/.harny/providers.json. Project-local provider files are intentionally not loaded, so an untrusted repository cannot redirect agent traffic or choose credential variables:
{
"version": 1,
"providers": [
{
"id": "claude_proxy",
"type": "claude",
"base_url": "https://claude-compatible.example/v1",
"api_key_env": "CLAUDE_PROXY_API_KEY",
"model": "claude-compatible-model"
},
{
"id": "codex_proxy",
"type": "codex",
"base_url": "https://openai-compatible.example/v1",
"api_key_env": "CODEX_PROXY_API_KEY",
"model": "gpt-compatible-model"
}
]
}
Set the named environment variables outside the file, then use the logical ID as a workflow's provider. base_url, key-variable name, provider type, and default model are fingerprinted into persisted sessions; changing the connection prevents an unsafe resume. Secret values are neither persisted nor fingerprinted. The built-in claude and codex IDs remain available and can also be overridden in this global file.
Developer output is captured as a content-addressed ChangeSet. Validation checks that exact ChangeSet before and after the validator. The commit executor recalculates it, stages only registered paths, and fails if contents changed or an unexpected file appeared:
implemented diff = validated diff = committed diff
npx claudepluginhub lfnovo/harny --plugin harnyExtract text content from URLs, documents, YouTube videos, Reddit posts, and audio/video files — via CLI (uvx) or MCP.
A development plugin for the Product on Rails methodology
Harness-native ECC plugin for engineering teams - 67 agents, 279 skills, 94 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses
A growing collection of Claude-compatible academic workflow bundles. Covers scientific figures, manuscript writing and polishing, reviewer assessment, citation retrieval, data availability, paper reading, literature search, response letters, paper-to-PPTX conversion, and evidence-grounded Chinese invention patent drafting. Rules are organized as reusable skill folders with explicit workflows and quality checks.
Consult multiple AI coding agents (Gemini, OpenAI, Grok, Perplexity, plus codex, antigravity, and grok CLIs when installed) to get diverse perspectives on coding problems
Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.
Plugin-safe Claude Code distribution of Agentic Awesome Skills with 1,933 supported skills.
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.