A new Claude Code session reads about 19K to 31K input tokens before it answers a one-word prompt, measured on one machine on 2026-10-17. A normal start cost 30.8K tokens, turning MCP servers off cut it to 27.7K, and --safe-mode cut it to 18.7K. About 11.1K of that is the system prompt and built-in tools, which no flag removes.

Key facts

  • Normal start: 30.8K input tokens. MCP servers off: 27.7K. Safe mode: 18.7K.
  • The floor is about 11.1K tokens: the system prompt and built-in tool definitions.
  • --safe-mode keeps your login and turns off CLAUDE.md, skills, plugins, hooks and MCP servers.
  • --bare needs an API key; it cannot sign in with a Pro or Max login.
  • Measure your own: claude -p "reply ok" --output-format json.

Why does startup cost matter?

Before Claude Code answers anything, it sends the model its system prompt, the definitions of every tool it can call, your CLAUDE.md files, the list of skills and the tools of each MCP server you have connected. That bundle goes out on every new session. On a subscription it counts toward your usage limits; on an API key you pay for it. If you start many short sessions a day, or run several agents side by side, the setup can be a large share of what you spend.

Prompt caching makes a repeated prefix cheaper, but a new session, or one idle past its cache lifetime, pays for the bundle again.

How were the numbers measured?

All numbers come from one Raspberry Pi on 2026-10-17, signed in with a Claude subscription, using the Claude Code version that was current that day. Each run was in the same repository, with the same one-word prompt, and the only change between runs was how Claude Code started. The command:

claude -p "reply ok" --output-format json

-p runs one prompt and exits. The JSON it prints has a usage block. Add three of its fields to get the tokens the session read: input_tokens, cache_creation_input_tokens and cache_read_input_tokens. The same JSON also has total_cost_usd and a per-model modelUsage block.

[Screenshot: the usage block of the JSON output from the command above]

How many tokens does each kind of start use?

How it startedInput tokensWhat was left out
Normal start30.8KNothing
MCP servers off27.7KEvery MCP server and its tools
Safe mode18.7KAll customizations, see below

Turning off MCP servers saved about 3K tokens on this machine. Safe mode saved about 12K, because it also drops CLAUDE.md, skills, plugins and the rest. What is left in safe mode is mostly the floor: about 11.1K tokens of system prompt and built-in tool definitions. In a separate run in an empty folder with --safe-mode, the part read from cache was 10.7K tokens, which fits that figure.

Your numbers will differ. They depend on the Claude Code version, the model, how many MCP servers and skills you have, and how long your CLAUDE.md files are. Treat these as one honest data point and measure your own.

What does --safe-mode turn off?

From claude --help, safe mode starts "with all customizations (CLAUDE.md, skills, installed plugins, hooks, MCP servers, custom commands and agents, output styles, workflows, custom themes, keybindings, and more) disabled". The same help text says that admin-managed settings still apply, and that sign-in, model selection, built-in tools and permissions work normally. It is meant for troubleshooting a broken setup, which also makes it the leanest way to start a session with a subscription login.

Why not use --bare?

--bare sounds like the smaller option, but it is a different tool. It skips hooks, LSP, plugin sync, auto-memory, background prefetches and CLAUDE.md discovery, and its sign-in is strictly ANTHROPIC_API_KEY or an apiKeyHelper. OAuth and the keychain are never read. In plain terms: with a Pro or Max login and no API key, --bare cannot sign in. It is for scripts billed to an API key.

How do I cut startup cost by hand?

  • Drop MCP servers for one session: claude --strict-mcp-config --mcp-config '{"mcpServers":{}}'. --strict-mcp-config ignores every other MCP configuration, and the empty JSON loads none.
  • Remove MCP servers you rarely use. Each connected server adds its tool definitions to every session, whether you call them or not.
  • Trim CLAUDE.md. Every line is read at every start. Keep the rules that change how the agent works and move long reference material into files it reads when it needs them.
  • Use --safe-mode for focused jobs where you pass the context yourself, for example with --append-system-prompt-file.

The floor stays. No flag available to a subscription login removes the system prompt or the built-in tools.

How does Melta's Chief start workers lean?

Chief is a Claude Code session that hands tasks to other sessions on your computer. With Chief v2 on, a worker does not start with the whole repo's setup. It starts with --safe-mode, plus a small brief appended to its system prompt: the project's short constitution files and eight fixed sections (goal, files to write, files to read, where to look, invariants, validation, how to ship, and the receipt to send back). Chief refuses a brief over 80 lines. The worker also gets deny rules, so it cannot read or edit .env files, keys or credential files. It never uses --bare, because that would need an API key.

Common questions

Does safe mode keep my login?

Yes. The help text says sign-in, model selection, built-in tools and permissions work normally in safe mode. Only customizations are off.

What do I lose in safe mode?

Your CLAUDE.md instructions, skills, installed plugins, hooks, MCP servers, custom commands and agents, output styles, workflows, themes and keybindings. If a task depends on any of them, pass that context yourself or start normally.

How do I measure my own startup cost?

Run claude -p "reply ok" --output-format json in the folder you work in, then add input_tokens, cache_creation_input_tokens and cache_read_input_tokens from the usage block. Run it again with --safe-mode to see what your customizations cost.

Is the 11.1K floor the same for everyone?

No. It was measured on one machine with one version and one model. Other versions and models have different system prompts and tool lists, so measure yours.

Melta does this for you: Chief starts each worker lean, with a small brief instead of the whole repo. Melta is free; join the waitlist.

Sources