ralphy skill install lays down the agent-side glue — slash-command shims, routing pointers, per-playbook stubs — for whichever AI agent you use. The actual instructions live in docs/playbooks/<name>.md in the repo; skills are thin shims that point the agent at them. This page documents the install surface and the contract.
ralphy skill install
claude, cursor, codex); copilot is supported via the same installer.
claude, cursor, codex, or copilot. Auto-detects from $HOME/.claude, $HOME/.cursor, AGENTS.md when omitted.user or project. Defaults differ per agent: claude/cursor → user, codex → project (forced), copilot → project (forced).Symlink the skills bundle instead of copying. Useful when iterating on
.agents/skills/ locally.Re-launch the wizard, overwriting the persisted choice in
~/.ralphy/config.json./reference/cli/skill.
What gets written
The install path depends on the agent. Each adapter is sentinel-bounded —<!-- ralphy:start v=1 --> / <!-- ralphy:end --> — so re-running swaps the block without duplicating it.
| Agent | Skills bundle | Routing pointer |
|---|---|---|
claude (user) | ~/.claude/skills/ralphy/ | ~/.claude/CLAUDE.md (merged) |
claude (project) | ./.claude/skills/ralphy/ | ./CLAUDE.md (merged) |
cursor | ~/.cursor/rules/ or ./.cursor/rules/ | ralphy-router.mdc (always-apply) + per-playbook .mdc files |
codex (project) | n/a | ./AGENTS.md (merged) |
copilot (project) | n/a | ./.github/copilot-instructions.md + per-playbook files under ./.github/instructions/ |
ralphy skill uninstall
Reverses the install — removes the skills dir, strips the sentinel block from any routing file. If the routing file is empty after the strip, the verb deletes the file outright.ralphy skill new
Scaffolds a new skill: writes.agents/skills/<name>/SKILL.md plus docs/playbooks/<name>.md, optionally adds a row to AGENTS.md’s routing table.
^[a-z][a-z0-9-]*$); collisions raise E_ALREADY_EXISTS. Full surface: /reference/cli/skill.
Skills vs. playbooks
The two are deliberately distinct.-
Skills are slash-command-invocable shims under
.agents/skills/<name>/SKILL.md. The user can type/researcherand the agent loads the skill body. They’re thin pointers — most of the body is “Readdocs/playbooks/<name>.mdbefore acting.” -
Playbooks are the canonical instructions under
docs/playbooks/<name>.md. The agent reads them on demand based on intent matching in AGENTS.md, not on a user typing a slash command.
researcher, evaluator, install, dev-release, postmortem, hyperframes, dev-tasks. Playbooks: intake, researcher, scenarist, art-director, editor, producer, core, install, hyperframes, plus the per-domain references.
Playbooks are not slash-invocable on purpose — the user shouldn’t have to know which playbook to summon. AGENTS.md routes by intent.
Namespaces
Two namespaces ship in v1:user— user-facing skills (the default forskill new).maintainer— maintainer-only flows. Pass--namespace maintaineronskill new; pass--devtoskill installto also install the maintainer namespace.
.agents/skills/<name>/; the namespace is a convention in SKILL.md frontmatter and the routing row text.
Wizard mode
ralphy skill install with no --agent flag launches an interactive wizard on TTY: it auto-detects installed agents, asks for a scope, persists the choice to ~/.ralphy/config.json. Subsequent runs re-install non-interactively from the persisted choice; --reconfigure re-prompts.
Off-TTY (piped, --json) with no flags → E_WIZARD_NEEDS_TTY rather than hanging. Pass --agent explicitly to skip the wizard.
Related
- AGENTS.md — the routing contract every install points to
- Skill format — the SKILL.md schema
- docs/playbooks/ — the canonical instruction set
- cli/lib/skill/installer.ts