Skip to content

CLI Commands

All commands support --json for machine-readable output (progress goes to stderr, structured data to stdout) and --help for usage information.

iterate

Run one improvement cycle: assess, plan, execute, verify.

bash
hone iterate <agent> <folder>

Examples:

bash
hone iterate python-craftsperson .
hone iterate typescript-craftsperson ./src --max-retries 5
hone iterate elixir-phoenix-craftsperson ./apps/web --skip-gates
hone iterate cpp-qt-craftsperson . --mode github --proposals 3

Flags:

FlagDefaultDescription
--mode <local|github>localOperational mode (local or GitHub)
--proposals <n>1Proposals to generate (GitHub mode only)
--max-retries <n>3Retry attempts after gate failures
--skip-gatesoffSkip quality gate verification
--skip-charteroffSkip charter clarity check
--skip-triageoffSkip triage (severity + busy-work filter)
--severity-threshold <n>3Minimum severity to proceed (1-5)
--min-charter-length <n>100Minimum charter content length in characters
--assess-model <model>opusOverride the assessment model
--plan-model <model>opusOverride the planning model
--execute-model <model>sonnetOverride the execution model
--summarize-model <model>haikuOverride the summarize model
--audit-dir <path>auditAudit log directory (relative or absolute)

Audit output:

Each run creates files in the audit directory:

audit/
  fix-missing-error-handling.md                # Assessment
  fix-missing-error-handling-plan.md           # Plan
  fix-missing-error-handling-actions.md        # Execution log
  fix-missing-error-handling-retry-1-actions.md  # Retry (if gates failed)

JSON output includes structuredAssessment, triageResult, charterCheck, skippedReason, headline, and summary fields. The headline and summary are populated on success for use as commit messages.


maintain

Update project dependencies and verify quality gates pass.

bash
hone maintain <agent> <folder>

Examples:

bash
hone maintain typescript-craftsperson .
hone maintain python-craftsperson ./backend --max-retries 5

Flags:

FlagDefaultDescription
--max-retries <n>3Retry attempts after gate failures
--execute-model <model>sonnetOverride the execution model
--summarize-model <model>haikuOverride the summarize model
--audit-dir <path>auditAudit log directory

Maintain requires gates — if none are found, it exits with an error. The agent receives guidelines to prefer minor/patch updates over major versions and to update one ecosystem at a time.


derive

Generate an agent and .hone-gates.json for a project.

bash
hone derive <folder>

Examples:

bash
hone derive .               # Agent goes to ~/.claude/agents/
hone derive . --local       # Agent goes to <folder>/.claude/agents/

Flags:

FlagDefaultDescription
--globalonWrite agent to ~/.claude/agents/
--localoffWrite agent to <folder>/.claude/agents/

Derive explores your project's source code, build configuration, CI pipelines, and tooling configuration using Claude's read-only tools. The generated agent name follows the convention <technology>-craftsperson.

See Agents & Principles for details on what gets generated.


derive-gates

Generate a .hone-gates.json file without creating an agent.

bash
hone derive-gates [agent] <folder>

Examples:

bash
hone derive-gates .                              # Inspect project tooling only
hone derive-gates typescript-craftsperson .       # Use agent as additional context
hone derive-gates . --run                         # Generate and run immediately

Flags:

FlagDefaultDescription
--runoffRun gates after generating
--derive-model <model>opusOverride model for project inspection

If an agent name is provided, its content is included as context, but gate commands are still derived from the project's actual tooling files.


mix

Augment a local agent with ideas from a global agent.

bash
hone mix <foreign-agent> <folder>

Examples:

bash
hone mix typescript-craftsperson . --principles
hone mix typescript-craftsperson . --gates
hone mix typescript-craftsperson . --principles --gates

Flags:

FlagDefaultDescription
--from <name>Foreign agent name (from ~/.claude/agents/)
--principlesoffMix engineering principles
--gatesoffMix QA checkpoints

At least one of --principles or --gates is required.

The local agent (in <folder>/.claude/agents/) is the target that gets modified. The foreign agent (in ~/.claude/agents/) provides ideas to incorporate. Existing local principles take priority over conflicting foreign ones.

See Agents & Principles — Mixing agents for details.


gates

Show, run, or save quality gates.

bash
hone gates [agent] [folder]

Examples:

bash
hone gates .                                     # Show gates from .hone-gates.json
hone gates typescript-craftsperson .             # Show gates (with agent as context)
hone gates . --run                               # Run gates and report pass/fail
hone gates typescript-craftsperson . --save      # Extract from agent, write .hone-gates.json
hone gates typescript-craftsperson . --save --run  # Extract, save, then run

Flags:

FlagDefaultDescription
--runoffRun the gates and report pass/fail
--saveoffWrite resolved gates to .hone-gates.json

See Quality Gates for details on gate resolution and the file format.


list-agents

List agents discovered in ~/.claude/agents/.

bash
hone list-agents

No flags. Recognizes both .md and legacy .agent.md file extensions.


history

Show past iterations from the audit directory, most recent first.

bash
hone history [folder]

Examples:

bash
hone history .
hone history ./src --audit-dir custom-audit

Flags:

FlagDefaultDescription
--audit-dir <path>auditAudit log directory

Groups related audit files (assessment, plan, actions, retries) by their base name and displays them with modification timestamps.


config

Print the active configuration (defaults merged with ~/.config/hone/config.json).

bash
hone config

No flags. See Configuration for the full schema.

Released under the MIT License.