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>