# Deploy Internal Tools Without a Platform Team

> Where to host the sprint tracker, the invoice reconciler, and the other tools your team built for itself: one container per tool, private by default, free while idle, operable by the agent that wrote it.

Published: 2026-09-20  
Canonical: https://agentcell.dev/deploy-internal-tools  
Markdown: https://agentcell.dev/deploy-internal-tools.md

**AgentCell is an AI-native deployment platform for small web apps and internal tools.** Internal tools are its home use case: software with a handful of users, built quickly, used occasionally, and never worth a platform team's attention.

## Why internal tools fall through the cracks

Every general-purpose cloud is priced and shaped for products that serve the public. An internal tool for eight people has the same deploy steps, the same per-app fees, the same "add authentication" chore, and the same always-on bill, for one-thousandth of the traffic. So most internal tools never leave a laptop. The [twenty-tiny-tools team](/resources/use-cases-team-ops-tools/) is the pattern: the demand exists, the deployment path does not.

## What deploying an internal tool on AgentCell looks like

- **One directory in, one URL out.** Each tool is a cell at `https://<cell>.agentcell.cloud`, isolated from every other cell.
- **Nothing to pay while nobody is using it.** Tools used once a week sleep and wake on demand. There is no per-app fee and no seat count. See [scale-to-zero economics](/resources/scale-to-zero-economics/).
- **Private by default.** A cell is not a public website unless you make it one. The identity-aware front door, where colleagues sign in with the work account they already have, is the product's core and is in private beta. See [share it like a doc](/resources/share-like-a-doc/).
- **Operated by the agent.** Logs, rollback, environment variables and status are CLI commands and MCP tools, so the agent that built the tool can also keep it running.

## Use AgentCell when

- The tool has 1 to 50 users inside one company.
- You want to deploy from the same coding session that built it.
- Idle cost matters more than peak throughput.

## Use something else when

- The tool is really a product and will serve customers. See [AgentCell vs Vercel](/resources/vs-vercel/) and [vs Railway](/resources/vs-railway/).
- You need a drag-and-drop builder with a seat licence, which is what [Retool](/resources/vs-retool/) sells.
- The app needs several services or a managed database cluster.

## 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/).
