Deploy from Claude Code
Deploy to a live URL from inside Claude Code. Two paths: MCP server (interactive) or vibehost-deploy skill (scripted).
Claude Code has two ways to talk to VibeHost: the MCP server (OAuth, recommended for interactive use) and the vibehost-deploy skill (CLI-driven, recommended for repeatable workflows).
Both can coexist.
Option 1: MCP server (recommended)
claude mcp add vibehost https://api.vibehost.com/mcp --transport httpThe first tool call triggers an OAuth flow in your browser. After approval, Claude Code can call every VibeHost MCP tool, so it can deploy, promote, roll back, read logs, and manage custom domains. See the MCP guide for the tool → CLI cheatsheet.
To verify, run this and look for vibehost (http) — connected in the output:
claude mcp listIn Claude Code chat, describe what you want:
Deploy this directory to VibeHost as a new app called my-first-site.
Claude creates the app, uploads the files, deploys them and returns the URL. The tool calls behind that are described once, in Choosing an upload path. Whether Claude Code asks before each step depends on its permission settings (see Confirmation prompts).
Best for:
- Interactive sessions ("ship this to production")
- Cross-app operations ("rollback the staging channel on my-app")
- One-off admin tasks ("add teammate@x.com as a deployer on hello-app")
Option 2: vibehost-deploy skill
The vibehost-deploy skill is a Claude Code skill that wraps the CLI.
The skill is the how-to, not the tool. It teaches Claude which vibehost commands to run, but it does not install the vibehost binary. Install the CLI as well, or the first deploy fails with command not found:
curl -fsSL -o vibehost-install.sh https://vibehost.com/install.sh
less vibehost-install.sh
sh vibehost-install.sh && rm vibehost-install.shThe installer edits your shell profile, which a shell reads only when it starts, so it cannot change the shell you just ran it in. If it printed a PATH line, run that exact line (it is an export under bash/zsh and a set -gx under fish, where export is a syntax error), then verify:
export PATH="$HOME/.local/bin:$PATH" # bash / zsh — use the printed line
vibehost --versionset -gx PATH "$HOME/.local/bin" $PATH # fish — use the printed line
vibehost --versionSee the CLI reference for what the installer touches.
Then install the skill as a plugin. These are slash commands, so run them inside the Claude Code prompt, not in a shell. The /plugin marketplace commands need a recent Claude Code (verified on 2.1.150):
/plugin marketplace add gntc-labs/skills
/plugin install vibehostOr, from a terminal (works for Cursor / Codex / Claude Code) via the open skills tool:
npx skills add gntc-labs/skills --skill vibehost-deployThe skill knows:
- The CLI command names + flags
- The auth flow (
vibehost loginifwhoamireturnsUNAUTHENTICATED) - Which deploy path to pick based on the project layout
- How to read CLI JSON output and recover from common errors
Best for:
- Repeatable workflows (the skill activates automatically when you say "deploy this to VibeHost")
- CI-style automation in Claude Code
- Cases where you want stdout/stderr from the CLI, not abstracted tool calls
When to pick which
| Situation | Use |
|---|---|
| First-time setup | MCP (sign in through the browser, no token to paste) |
| Daily deploys from your editor | Either |
| Cross-machine or CI | Skill + a PAT (see Personal access tokens) |
| You want Claude to read deploy logs interactively | MCP (get_logs tool) |
| You want Claude to build, then deploy in one shell session | Skill (it can run npm run build first) |
| You want zero confirmation prompts | Skill (the CLI doesn't prompt unless interactive) |
End-to-end first deploy from Claude Code
Assuming you have an existing project to ship:
-
Add the MCP server (one-time):
claude mcp add vibehost https://api.vibehost.com/mcp --transport http -
Open the project in Claude Code:
cd ~/projects/my-blog claude -
Tell Claude what you want:
Deploy this folder as a new VibeHost app called my-blog. It's a Vite + React build. After deploy, give me the live URL and add a custom domain blog.example.com.
-
Approve the OAuth prompt (first tool call only). Claude opens a browser, you click approve, and the flow returns to Claude Code.
-
Confirm the writes as they come. Claude creates the
my-blogapp, runsnpm run build, uploads./distand deploys it, then attachesblog.example.comand prints the CNAME record. The tool calls behind the upload and deploy are described once, in Choosing an upload path. -
Set the DNS record at your registrar (Claude tells you exactly what to add), then:
Verify the domain.
Claude calls
verify_custom_domainand reports cert status.
Common prompts
Deploy this project
"Deploy this directory to VibeHost as a new static site called hello-mintlify."
Roll back production
"Roll back my-app's production channel to the previous deploy."
Add a custom domain
"Add www.example.com as a custom domain on my-app and tell me what DNS record to add."
Tail logs
"Stream the latest logs for my-app's production channel."
Audit grants
"List all the apps in my workspace and tell me who has access to each."
Open a PR preview
"Build this branch and deploy it to a pr-123 channel on the marketing app."
Gotchas
- Installing the skill does not install the CLI. The skill is
instructions, and the CLI is the binary those instructions drive. If Claude reports the skill installed but
vibehostis not found, run the installer above. - Skill autoload depends on your
.claude/config. If the skill isn't activating on "deploy this to VibeHost", check.claude/settings.jsonhas it listed and your Claude Code is recent enough for plugins (the/pluginsteps above were verified on 2.1.150). - MCP and skill can both be installed. Claude picks based on the request shape. "Deploy this" tends to trigger the skill; "list my apps" tends to trigger MCP. You can be explicit: "Use the VibeHost MCP server to list my apps."
- OAuth re-auth every 30 days. Refresh token rotation is 30 days. If MCP starts returning
UNAUTHENTICATEDafter a long gap, click the re-auth prompt. - Workspace switching. OAuth-issued tokens are workspace-scoped at first login. To switch workspaces, run
claude mcp remove vibehost && claude mcp add vibehost https://api.vibehost.com/mcp --transport httpand re-auth into the other workspace.
See also
- MCP server
- Personal access tokens
- Sibling coding agents: Codex CLI, Cursor, Antigravity, Antigravity CLI, Windsurf, OpenCode, Copilot CLI, Hermes Agent, Grok Build