Deploy Center Docs Guides GitHub Download

Claude Code plugin

Last updated · Edit on GitHub

On this page

Deploy Center works with Claude Code. This plugin teaches Claude how the deploys CLI fits into your work: after a push it says what is waiting to go live, it reads failed build logs and fixes them, and it deploys only after you say yes. Nothing here turns auto-deploy back on.

Claude writes the code and fixes failed builds. You decide what ships.

Install#

You need Claude Code and the deploys CLI (it comes with Deploy Center). In a Claude Code session:

/plugin marketplace add Pschmetzer/deploy-center
/plugin install deploy-center@deploy-center

On Claude Code v2.1.275 or later, one line does both:

/plugin install deploy-center --marketplace Pschmetzer/deploy-center

From your shell: claude plugin install deploy-center --marketplace Pschmetzer/deploy-center (v2.1.292 or later). /plugin > Installed lists it; claude plugin details deploy-center shows what it loaded. More in Claude Code.

What it adds#

PartName in Claude CodeWhat it does
Skilldeploy-centerClaude loads it on its own when you push, deploy, or a build failed. The rules: never deploy without your OK; after a push run deploys changed --json and say what is waiting; on a failed build read deploys logs <p>, find the first error, fix it; explain why auto-deploy is off; use deploys explain when numbers look odd.
Command/deploy-center:deploys-waitingWhat is waiting to go live (deploys changed --json). Read-only.
Command/deploy-center:deploys-statusWhat is building, live or failed (deploys status --json). Read-only.
Command/deploy-center:deploys-fix <project>Reads the build log and fixes the cause in the current repository. Never deploys.
Command/deploy-center:deploys-ship <project>Shows what would go live, asks "Deploy … now? (yes/no)", and deploys only on yes.
HookPostToolUse on git pushOne line after Claude pushes, for example 3 commits waiting on app-web: deploy when ready (deploys changed).
MCPoptional, not loadedSee MCP server.

Plugin commands carry the plugin name, so type /deploys and pick from the menu. They are written as skills (skills/<name>/SKILL.md), the format the docs recommend for new commands, with disable-model-invocation: true: only you start them.

The hook#

scripts/after-push.sh runs after each command of Claude's Bash tool and ends at once unless the command was a git push (also cd dir && git push and git -C dir push; not git stash push, --dry-run or a rejected push). An if: Bash(git push *) rule would miss some of those, so the script filters. It finds the pushed remote's repo (owner/name on GitHub, gitlab.com/group/name on GitLab), calls deploys changed --json, and prints one line for the projects that deploy from that repository: to you as a notice (systemMessage), and to Claude as context, with "do not deploy unless the user says so".

MCP server#

The MCP server in integrations/mcp/ (read-only tools deploys_changed, deploys_status, deploys_explain, deploys_notes, deploys_logs, deploys_doctor, and the estimates deploys_simulate and deploys_ledger; deploy and rollback only with DEPLOYS_MCP_ALLOW_DEPLOY=1) is not started by the plugin: a plugin may only point at files inside its own folder, and the server is not in it. The Mac app ships it ready to run (with its packages) in its bundle, so no clone and no npm ci are needed. Add it yourself once:

claude mcp add deploys -- node "/Applications/Deploy Center.app/Contents/Resources/mcp/server.mjs"

(~/Applications/… when the app is there), or put mcp/deploys.mcp.json into a project's .mcp.json. Without the app, use a clone: node /path/to/deploy-center/integrations/mcp/server.mjs after npm ci there. The skill and commands work without it: they call the CLI.

Files#

.claude-plugin/marketplace.json        (repo root) the marketplace: deploy-center
integrations/claude-code/
├── .claude-plugin/plugin.json         the manifest (name, version, the push_reminder option)
├── .claude-plugin/icon.png
├── skills/deploy-center/SKILL.md      the skill Claude loads by itself
├── skills/deploys-*/SKILL.md          the four commands
├── hooks/hooks.json                   PostToolUse, matcher Bash (the script picks out git push)
├── scripts/after-push.sh              the hook
└── mcp/deploys.mcp.json               optional MCP config (the app's bundled server), not loaded by the plugin

Tests#

integrations/tests/run.sh runs integrations/tests/claude-code.sh, which checks both JSON files, hooks.json and every SKILL.md against the documented format (and runs claude plugin validate --strict when claude is installed). It also runs shellcheck on the hook, and runs the hook against a stand-in deploys, including without any deploys at all, where it must print nothing.

To try local changes: claude --plugin-dir integrations/claude-code.

Docs this follows#

Claude and Claude Code are trademarks of Anthropic. Deploy Center is not affiliated with Anthropic.