Agents

hashd runs the coding agents you already use. Any supported agent can be assigned to any stage, as long as it supports the kind of invocation that stage needs.

Agent Binary Status
Claude Code claude verified; the default for every stage
Codex codex verified
GitHub Copilot copilot preview
Gemini CLI gemini preview
OpenCode opencode preview
Kimi Code kimi preview
Qwen Code qwen preview

Verified agents are tested end to end. Preview agents are configured and can be assigned with --force, but have not yet been verified end to end.

See what is installed

hashd agents

This shows every registered agent, whether its binary is installed, and the health of any credential registered with the server.

Assign agents to stages

# one stage
hashd project config set stage.review claude

# implementation, or every non-implement stage
hashd project config set coder codex
hashd project config set planner claude

# one agent for every stage, server-wide
hashd config stages-use codex

Assignments are validated before they are saved: an agent that cannot serve a stage is refused. hashd project config list shows the effective assignments.

Per-user credentials on a team server

On a team server, agents run on the server but the work belongs to people, so a run acts as the workstream's owner using a credential that person registered:

hashd agents login <agent>
hashd agents logout <agent>

Login reads the credential from your own machine where the agent supports it, and otherwise asks you to paste it. Secrets are read hidden or from stdin, never passed as flags. The server stores them encrypted at rest and never returns them.

  • A registered credential always wins over the server host's own agent login.
  • On a team server, a run on your workstream refuses to start without your live credential, and names the command that fixes it.
  • When a run proves a credential dead, the next dispatch fails immediately with the recovery steps.

Directives

Directives are operator guidance included in agent prompts, at three levels:

~/.config/hashd/directives.md   # your global preferences
<repo>/directives.md            # project rules
workstream directives           # managed with hashd directives

Restrict a block to specific stages:

<!-- STAGE: review, final_review -->
Preserve the documented public API.
<!-- END STAGE -->

Prompts

Every prompt hashd sends is a template you can inspect and override per project:

hashd prompts list
hashd prompts show <name>
hashd prompts edit <name>