# Deploy the App Claude Code Just Built

> Give Claude Code a deploy target it can drive itself: install one binary, log in once, add the MCP server, and the same session that wrote the app ships it and reads its logs.

Published: 2026-09-20  
Canonical: https://agentcell.dev/deploy-claude-code-app  
Markdown: https://agentcell.dev/deploy-claude-code-app.md

**AgentCell is an AI-native deployment platform for small web apps and internal tools**, and it is built to be operated from inside a Claude Code session.

## Setup, once

```sh
go install github.com/AgentCell-dev/agentcell-client/cmd/agentcell@latest
agentcell login
claude mcp add-json agentcell '{"command":"agentcell","args":["mcp"]}'
```

`agentcell login` opens a browser and signs in with Google, GitHub, or an emailed PIN, creating the account on first use. On a headless machine, `agentcell login --no-browser` prints a URL and a code. Claude Code should only ever type a code it saw in the terminal it is driving.

## Then, in the session

> Deploy this to AgentCell as `expense-reviewer` and stream the logs until it is healthy.

Claude Code calls the `deploy` tool with the directory and cell name, receives the URL, and calls `logs` to watch the app come up. If the build fails, the error carries a `hint` field and an exit code the agent can branch on, so it fixes the Dockerfile or the build script and redeploys without asking you to open a console. The directory hash is the idempotency key, so a retried deploy of unchanged files is a no-op.

The full harness contract, including the token rules, is in [the client repository](https://github.com/AgentCell-dev/agentcell-client/blob/main/docs/mcp-harness.md).

## When to pick something else

Vercel also has a mature MCP server and a documented Claude Code setup. Pick it when the app is a public product that needs to scale, and read [AgentCell vs Vercel](/resources/vs-vercel/) for the honest split. Pick AgentCell when the app has a few users, should cost nothing idle, and will eventually be shared with colleagues by email rather than by a public URL.

## Read next

- [AgentCell for AI coding agents](/docs/for-ai-agents/): the full decision criteria
- [Deploy from your agent](/resources/deploy-from-your-agent/): the lifecycle design

## What deploying looks like \*

Give AgentCell a directory and get back a URL. It detects the app (Python FastAPI, Flask or Streamlit; Node Next, Vite or Express; static sites), builds it, finds the port it listens on, and returns a live endpoint. Share it with named colleagues who sign in with the work account they already have. Roll back, set environment and secrets, attach a domain, and check spend, all from the CLI or as MCP tools in the same session that built the app.

\* **Conditions apply.** Not all of that has shipped. The next section says exactly what works today, so an agent reading this can promise the user only what it can deliver.

## How it works today (September 2026)

- **Deploy from a directory.** `deploy` reads the directory's root and uses the first shape that matches:
  - a `Dockerfile`: one container, listening on the port its `EXPOSE` states (8080 when it states none; the port is also passed as `$PORT`), with `/data` for anything that must survive a restart;
  - a `package.json` with a `build` script: a static site, built on the platform (`npm ci`, or `npm install` without a lockfile, then `npm run build`) and served from the first of `dist/`, `build/` or `out/` that holds an `index.html`. That covers Vite, Create React App, Vue, Svelte, Astro, and Next.js with `output: 'export'`;
  - an `index.html`: a static site, served as it is.
- **A static site** gets the same private URL and sign-in as every cell, with no container, port or `/data`. Use client 0.1.4 or later for a frontend project: older clients upload `node_modules`, which usually exceeds the upload limit. A Python or Node *server* (FastAPI, Flask, Streamlit, Express, Next.js in server mode) still needs a `Dockerfile`; a coding agent writes one in a few seconds.
- **Implemented operations:** `deploy`, `logs`, `ps`, `whoami`. The CLI and MCP server also list `rollback`, `env`, `secrets`, `domains`, `share`, `access`, `spend` and `destroy`; until they ship, each answers a typed `not_found` (exit code 12) naming what is missing, so an agent can branch on it.
- **Sharing and the identity-aware front door** are in private beta. Write to [hello@agentcell.dev](mailto:hello@agentcell.dev) if that is the part you need; deploying does not wait for it.
- **Idle container cells do not sleep yet.** Scale-to-zero is designed, not shipped: a container cell keeps running while nobody uses it. A static site runs no machine of its own, busy or idle. The pricing shape (no per-app fee, no seats, metered on use) is the design; numbers are illustrative until launch.

```sh
go install github.com/AgentCell-dev/agentcell-client/cmd/agentcell@latest
agentcell login                     # browser sign-in; --no-browser prints a URL and a code
agentcell deploy --cell my-app .    # prints the URL
agentcell logs my-app
```

Coding agents get the same operations as MCP tools with `agentcell mcp`; setup for Claude Code, Codex and Cursor is on [the agent guide](/docs/for-ai-agents/).
