aayudha in Claude Code
Claude Code gets aayudha as a plugin: every verb as a slash command and skill, /aayudha:home and /aayudha:next for
where the work stands, the aayudha MCP server, and the hooks that keep agents inside the rules.
Before you start
Install aayu and check it is on your PATH (see Your first hour):
aayu version
The plugin runs aayu from your PATH. It passes the skills version it carries, and aayu refuses to serve a plugin
whose skills differ from its own, so the two never drift apart quietly.
Install the plugin
In Claude Code:
/plugin marketplace add rahulnakmol/agentic-ayudha
/plugin install aayudha@aayudha
Or from your shell:
claude plugin marketplace add rahulnakmol/agentic-ayudha
claude plugin install aayudha@aayudha
Run /reload-plugins, or start a new session.
What you get
| In Claude Code | What it does |
|---|---|
/aayudha:home |
Where this repository stands, and the next step |
/aayudha:next |
The single best next step; Claude takes it when it may |
/aayudha:grill, /aayudha:ready, /aayudha:build, … |
One skill per verb, from the same skills/ the binary carries |
The aayudha MCP server |
The verbs as tools; write verbs only with [mcp] expose_writes = true |
| Hooks | session-start reports skill drift; pre-tool pauses agents when the budget breaker trips or the repository is halted, and refuses PostHog or Sentry writes through another MCP server or CLI; post-tool logs the PostHog and Sentry reads it lets through |
Shipping, releasing, accepting a Decision, and responding to an incident are for a person. Their skills only run when
you type them, the MCP server never offers them, and the pre-tool hook blocks Claude if it tries to run them in a
shell. When the next step is yours, Claude shows you the exact command to run in your own terminal.
A status line with your journey
A plugin cannot set Claude Code's status line, so add one line to .claude/settings.json (or your own
~/.claude/settings.json):
{
"statusLine": { "type": "command", "command": "aayu hook status-line --host claude" }
}
It reads the last home screen, so it never waits on GitHub:
aayudha | Ready 2 | waiting for you 1 | next: aayu ship 4
Run aayu now and then to refresh it.
Or install it into the repository
If you would rather commit the setup with the repository, use aayu install instead of the plugin:
aayu install --host claude --apply
It writes skill copies to .claude/skills/, the plugin's commands to .claude/commands/aayudha/ (the same
/aayudha:home, /aayudha:next, and hand-offs), the MCP server to .mcp.json, and the hooks and the status line to
.claude/settings.json, each calling aayu by its full, version-checked path. Your product's verify skill stays in
.agents/skills/verify-<product>/; Claude Code reaches it as /aayudha:verify-<product>, a short command that points
there, so Cursor, which reads .claude/skills/ too, lists it once. Each teammate runs it once on their
machine. What install writes is the same whether or not you have the plugin, so a teammate who clones the repository
without the plugin still gets every skill.
If you also have the plugin, install turns it off for this repository: .claude/settings.json gets
"enabledPlugins": {"aayudha@aayudha": false}, which Claude Code applies over your user setting. Claude Code then lists
each skill, command, and the aayudha server once, runs each hook once, and keeps the plugin on in your other
repositories. The commands keep their names, because install writes them itself. An enabledPlugins
entry in .claude/settings.local.json turns the plugin back on: its hooks stand aside, and aayu doctor reports the
doubled skills.
Check it worked
claude plugin details aayudha
aayu doctor