Everything needed to go from nothing to a working .deepcell document: which path fits the environment you are running in, how to set it up, and what to do when a command fails. No account required to start.
Handing this to an agent instead of reading it? The same instructions, in plain markdown: /product/for-agent.md
DeepCell reaches the same service two ways. Which one is right depends on a single property of the environment you are running in — whether you can execute shell commands. Decide from the table, then read only that section.
| What you can do | Take | How to tell |
|---|---|---|
| Run shell commands | The plugin, then the CLI it drives | You have a terminal, Bash, or an exec tool. Claude Code, Cowork, OpenWork, CI jobs, and anything with a sandbox are all here. If your client installs plugins, start there — the skill carries the working knowledge; the CLI alone carries only the commands. |
| Reach MCP servers, but no shell | The MCP server | Your host has a connectors or MCP-servers setting — though only the person using it can change it. claude.ai, ChatGPT, and Manus are all here. |
| Neither — only fetch URLs | Read-only | You can read this page and any share link someone sends you, but you cannot build. Ask the person you are working with for a shell, or to add the MCP server. |
One line: a host that installs plugins starts with the plugin — it carries the skills, and its skill sets up the CLI. Otherwise shell means the CLI, no shell means MCP. If you have both a shell and MCP, take the CLI — it is the larger surface, because sign-in, the Excel and PowerPoint exports, and the whole clone / pull / push / commit / merge history need a working copy the MCP server does not have.
If your host can install plugins, do this first. The plugin is the skills — the working instructions that tell your agent what a .deepcell document is, what done means, and how to drive the CLI — packaged so the host loads them automatically. Its skill checks for the deepcell command and runs the installer itself when the command is missing, so this one step sets up everything. In Claude Code:
Claude Code
/plugin marketplace add deepcell-ai/deepcell-plugins
/plugin install deepcell@deepcell
/reload-pluginsEvery other plugin-capable client uses the same directory through its portable manifest — DeepCell is published as a plugin conforming to Agent Plugins Specification v1.0.0, and the repository root is the plugin:
https://github.com/deepcell-ai/deepcell-pluginsThe specification defines no install command, so point your client at that repository the way it takes a plugin directory.
No plugin support? Nothing is lost. The sections below set up the same access by hand, and the skill's entire content is readable once the CLI or MCP connection is up: deepcell guide orient/how-to-work.
One command. It works on Windows, macOS and Linux, and on a machine with no pip, no venv module, or a Python that refuses to install into itself — the script sorts that out rather than asking you to.
macOS / Linux
curl -LsSf https://beta.deepcell.net/install.sh | shWindows (PowerShell)
irm https://beta.deepcell.net/install.ps1 | iexIt installs with uv or pip, whichever the machine has, fetching uv first if it has neither; finds where the deepcell command actually landed; adds that directory to your shell profiles so it is still there in the next shell; and runs deepcell --version before reporting success. Running it twice is safe. In the shell you are already in, use the export line it prints — or just start a new one.
Would rather not pipe a download into a shell? Fetch it, read it, then run it. Same script:
macOS / Linux
curl -LsSf https://beta.deepcell.net/install.sh -o install-deepcell.sh
less install-deepcell.sh
sh install-deepcell.shWindows (PowerShell)
irm https://beta.deepcell.net/install.ps1 -OutFile install-deepcell.ps1
Get-Content install-deepcell.ps1
powershell -ExecutionPolicy Bypass -File install-deepcell.ps1Now check the environment in one command. It reports the version, whether the server is reachable, who you are, which workspace is active, and what to run next:
deepcell doctorParse the answer instead of reading it — the JSON carries a next_command field for exactly this:
deepcell doctor --format jsonOne remote server, one tool. Once it is added to your host, every CLI command becomes a call to that tool with the command as a string.
You cannot add it yourself. It is a setting in your host, not something a tool call can reach — so this is the one step on this page you hand to the person you are working with. Give them the URL and the steps below, then ask them to say when it is connected.
On claude.ai, this is added as a remote MCP server — sign-in happens in their browser, so there is no key for anyone to paste:
https://beta.deepcell.net/mcpOn Manus and other MCP clients, use a config file with an API key. Keys are created under Settings, API keys on the website, and start with dck_:
{
"mcpServers": {
"deepcell": {
"type": "streamableHttp",
"url": "https://beta.deepcell.net/mcp",
"headers": {
"Authorization": "Bearer <your-api-key>"
}
}
}
}Then call the one tool with a command string, exactly as you would type it after deepcell:
guide orient/startSome commands are refused here because they need a browser, a binary, or a working copy: login, logout, register, verify-email, account, to-excel, to-pptx, clone, status, pull, push, commit and merge. A refusal is reported before anything runs, so nothing changed.
You do not need an account. The first command that needs the server mints an anonymous session and a scratch workspace on its own, so go straight to work:
deepcell guide orient/start
deepcell lsRead this before building anything substantial — it is the same skill the plugin ships and the same instruction set the hosted DeepCell agent runs on, and it says what the work is and when it is done. If you skipped the plugin because your host cannot install one, this is where its knowledge lives:
deepcell guide orient/how-to-workThen take a goal and its constraints, not a procedure:
“Build a three-year DCF for Acme from the filings in ./filings. Keep the growth and margin assumptions where I can change them, and record why each one is what it is.”
Look things up rather than guessing them. deepcell --help owns the commands and the flags, deepcell guide owns the format and the modeling, and both are installed alongside the version you are running — trust them over anything you remember. Never edit a .deepcell file with a text editor: that skips the calc engine, the validation, and the version history, which is how a document ends up disagreeing with itself.
A .deepcell document has four surfaces of its own — reasoning, spreadsheet, document and deck — and records how they connect. That is where the work goes. If your host also offers you skills or tools for authoring .xlsx, .docx or .pptx directly, do not use them here: a workbook assembled cell by cell holds values where DeepCell holds dependencies, prose written by hand holds assertions where DeepCell holds claims, and none of it connects to anything — so nothing can be re-checked when an assumption changes.
That costs the reader nothing, because nobody has to hold the file to see the work. deepcell share create returns a link that opens it on the DeepCell website with the connections intact, and deepcell to-excel, to-docx, to-pptx and to-pdf produce editable files from the document — to-excel --formulas carries live formulas rather than flattened values. So when someone asks for a spreadsheet or a deck, build it in DeepCell and hand them the export.
Three states, and you start in the first one without doing anything. Escalate when a command tells you to — not before.
| State | How you get there | What it gives you |
|---|---|---|
| Anonymous | Nothing. The first command that needs the server mints one and tells you it did. | Create workspaces, write, edit, query, read every guide, and share a view-only link for up to 7 days. It is a temporary demo workspace: it is collected after 30 days of inactivity, and capped at 60 requests a minute, 2 MiB per document, and 5 agent threads. |
| Account | deepcell login — or deepcell register for a new one. | Permanent storage, share links with edit access and passwords, the Excel and PowerPoint exports, the sync commands, and the workbench in a browser. |
| Verified email | deepcell verify-email. | Creating workspaces on a new account, and anything else gated on a confirmed address. Note the asymmetry: an anonymous session can create a workspace, but a signed-in account with an unverified address cannot. |
deepcell loginSigning in opens a browser and finishes there. If you are an agent without one, print the URL and let the person you are working with complete it — it is their step, not yours.
Nothing is lost by starting anonymous. Signing in claims the anonymous work and moves it into the account, and if that fails it retries on the next sign-in.
Match on the text — these are the literal strings the CLI and the MCP server emit. The two exit-code rows matter most: a non-zero exit does not always mean nothing happened.
| What you see | What it means | What to do |
|---|---|---|
| Not authenticated. Run `deepcell login` first. | The anonymous session could not be minted — the server is unreachable, has anonymous access switched off, or DEEPCELL_NO_ANON is set. | Check the server is reachable with deepcell doctor, then sign in. |
| This needs an account. Run `deepcell login` | You are anonymous and asked for something only a full account can do. | Sign in. The anonymous work moves across automatically, so nothing is lost. |
| Email verification required. | The account exists but its address was never confirmed. | Run deepcell verify-email, then retry. |
| No active workspace. / No workspaces found. | No workspace is selected, or the account has none. | Run deepcell workspace use <slug>, or deepcell workspace create "My Project". deepcell doctor prints which one is active. |
| Could not connect to ... | Wrong base URL, or the service is down. | Check DEEPCELL_API_URL. Do not retry in a loop — nothing will change until the address does. |
| exit code 1 from write, push, commit, replace, or a reasoning or knowledge writer | Saved AND invalid. These save first and validate after, so the file did change and the change does not hold up. | Read the reported problems, fix them, and write again. Never retry the same content blindly — you would save it twice. |
| exit code 1 from defs | The opposite: structure edits are whole-batch atomic, so nothing changed at all. | Fix the operation and send the batch again. |
| exit code 2 | The command itself was wrong — a bad flag, or a local file that is not there. | Run deepcell <command> --help for the exact flags. Do not guess a flag name. |
| Command '...' is blocked in MCP mode | Refused before it ran, so nothing changed. It needs a browser, a binary, or a working copy. | Use the CLI for that one, or ask the person you are working with to run it. |
| Demo rate limit exceeded. Try again in Ns. | The anonymous cap — 60 requests a minute. | Wait the reported number of seconds. Batch edits instead of sending them one at a time, or sign in. |
| Anonymous thread cap reached | Anonymous sessions get 5 agent threads. | Sign in. |
deepcell guide exit-codes has the full contract, including the two cases above and the three others that also exit 1.
The full command reference — every command, flag, exit code and guide topic — is at /product/cli, or /product/cli.md if you would rather read markdown.