Skip to main content

Install SHAFT agent skills

SHAFT ships 30 focused skills for planning, writing, running, diagnosing, and reporting tests. Start a SHAFT task with $shaft-developer; its router selects one lifecycle, implementation, or MCP/CLI specialist for the immediate job.

The pack contains guidance, not a model or hosted agent. It uses the tools and permissions of the agent client where you install it.

Choose an installation route

RouteBest forWhat it installs
SHAFT installerMost projects and MCP usersAll skills plus generated MCP and CLI catalogs in the client-native directory
Claude Code marketplaceClaude Code projectsThe complete repository skill package and shared references
Skills CLIInstalling individual skill directories across supported agentsSkill directories only; shared generated catalogs are omitted
shaft_project_init_agentsAn existing project connected to SHAFT MCPHost-native bridges or full skill files while preserving existing files

Install with the SHAFT installer

Run from the project that should receive the skills.

Windows
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/ShaftHQ/SHAFT_ENGINE/main/scripts/mcp/install-shaft-mcp.ps1 | iex; Install-ShaftMcp -Arguments @('--install-shaft-skills')"
macOS and Linux
curl -fsSL https://raw.githubusercontent.com/ShaftHQ/SHAFT_ENGINE/main/scripts/mcp/install-shaft-mcp.sh | sh -s -- --install-shaft-skills

When the installer has a client target, it writes to that client's native directory: .agents/skills for Codex, .claude/skills for Claude clients, or .github/skills for Copilot clients. The IntelliJ plugin target installs all three layouts for project portability. A skills-only run with no client target also installs all three layouts.

Re-run the same command to upgrade. SHAFT replaces its own installed files and leaves unrelated user skills untouched. It refuses linked or junctioned native skill directories on Windows so installation cannot escape the project.

With no arguments in an interactive terminal, the installer asks which components to install; skills default to yes. A non-interactive run must pass a component selector. Use --install-shaft-skills to install skills without a prompt or --skip-shaft-skills to decline them in an interactive selection. When also configuring MCP, select one client with --codex, --claude, --claude-desktop, --copilot, --copilot-intellij, or --intellij-plugin. A client selector alone configures MCP but does not install skills, so combine it with --install-shaft-skills when both are required.

Install from the Claude Code marketplace

Claude Code can load the repository's bundled marketplace manifest directly:

claude plugin marketplace add ShaftHQ/SHAFT_ENGINE --scope project
claude plugin install shaft-skills@shafthq --scope project

This route includes shared references and generated MCP/CLI catalogs. For Codex, use the SHAFT installer above; the repository-root marketplace manifest is Claude-specific.

Install with the Skills CLI

Use the Skills CLI when direct skill-directory installation is preferred:

npx skills add https://github.com/ShaftHQ/SHAFT_ENGINE/tree/main/shaft-skills --skill '*' --agent '*' -y

This route installs each skill but omits the pack's shared generated shaft-mcp-tools.md and shaft-cli-commands.md catalogs. Prefer the SHAFT installer or plugin marketplace when an agent needs exact offline tool and command lookup.

Initialize skills through SHAFT MCP

For a project already connected to SHAFT MCP, initialize every supported host layout without overwriting existing files:

{"tool": "shaft_project_init_agents", "arguments": {"loop": "all", "targetDirectory": ".", "overwrite": false}}

Use a single loop such as codex, claude, opencode, or vscode when the project targets only one host. Review the returned skipped-file warnings before using overwrite: true.

Verify the installation

Start a fresh agent session in the project and ask it to load $shaft-developer. For an MCP-connected project, search the official guide before generating code:

{"tool": "shaft_guide_search", "arguments": {"query": "page object model locators", "maxResults": 3}}