Quickstart
Three commands
# 1. Run init in your repo (no install needed)
uvx harnessforge init --no-llm
# 2. See what got written
ls -A | grep -E '^(AGENTS|SOUL|TOOLS|MEMORY)\.md$|^SKILLS|^harness.config|^.harness'
# 3. Verify
uvx harnessforge verify --json
What init does
- Walks the repo and runs
inspect_repo(deterministic, no LLM). - Builds a
HarnessProfile— your project's name, type, language, commands, forbidden paths. - Picks a blueprint (
rag-agent,support-agent, orworkflow-agent) based on the inspection. - Renders five IDE adapter files (
.claude/CLAUDE.md,.cursor/rules,.continue/config.json,.windsurf/rules,AGENTS.md). - Renders the blueprint's
AGENTS.md,SOUL.md,TOOLS.md,MEMORY.md, scripts, and SKILLS. - Writes a
harness.config.jsonand.harness/manifest.jsonfor safe re-runs.
Pick a specific blueprint
uvx harnessforge init --blueprint rag-agent
uvx harnessforge init --blueprint support-agent
uvx harnessforge init --blueprint workflow-agent
Use a specific LLM as the profiler
export ANTHROPIC_API_KEY=...
pip install 'harnessforge[anthropic]'
harness init # uses Claude to refine the profile
Or skip the LLM entirely:
Dry-run
Re-render after editing the profile
# Edit .harness/profile.yaml by hand, then:
harness sync # re-renders adapter + blueprint files
harness sync --check # CI mode: exit 1 if anything drifted
Next
- Bring your own coding agent — wire harness output into Claude Code, Cursor, etc.
- MCP server — connect
harness mcpto any MCP client. - Authoring a custom skill — extend SKILLS/ with project-specific procedures.