Cutting Claude Code's System Prompt From 25K Tokens to 8K With settings.json
Watch on TikTok
Claude Code ships thousands of tokens of tool definitions you never use, and you can strip most of them with a deny list in your global settings.json. Matt Pocock audited his own setup and found roughly 8,000 to 10,000 wasted tokens per request from tools like Workflow, DesignSync, and Monitor. By denying unused tools and flipping a handful of disable flags, he cut his starting payload of system prompt plus tools from about 25K tokens down to around 8K. He walks through the exact config on screen and links to a full article with a logging proxy that shows you what you are actually sending.
The Problem: Default Payloads Carry Tools You Never Call
Pocock's claim is that most agent harnesses, and Claude Code in particular, load the system prompt with tool definitions that sit unused on every request. In his own audit he found Workflow, DesignSync, and Monitor tooling he never touched, which he estimates at 8,000 to 10,000 tokens per request. Since the system prompt rides along on every API call, that cost repeats constantly. The frames show his proxy output quantifying it: 69 tools totaling 154,946 tool bytes and 65,538 real input tokens, with Workflow alone at 21,229 bytes (about 5,307 tokens), DesignSync at 8,978 bytes (about 2,245 tokens), and Monitor at 7,767 bytes (about 1,942 tokens).
Finding the Offenders With a Logging Proxy
Before cutting anything, he measures. The article shown on screen sets up a zero-dependency logging proxy: point Claude Code at it with ANTHROPIC_BASE_URL=http://localhost:8787 claude, and each request gets written to ./logs/ as readable Markdown with a ranked table printed to the terminal. The Markdown file contains every tool's full schema, the system prompt, and the message history, meaning the whole request as the model receives it. The ranked table becomes your work list, so you remove the exact tools you do not use instead of guessing.
The deny List: Removing Tool Definitions Entirely
The core of the fix is a permissions.deny array in ~/.claude/settings.json. When you deny a tool, its definition gets removed from the system prompt entirely. The config shown in the video denies fourteen tools: EnterPlanMode, ExitPlanMode, DesignSync, NotebookEdit, SendMessage, PushNotification, RemoteTrigger, ReportFindings, ScheduleWakeup, AskUserQuestion, CronCreate, CronDelete, and CronList. His reasoning is personal preference applied line by line. He does not want Claude controlling when it enters and exits plan mode, he never uses the AskUserQuestion tool, and he does not want it scheduling crons, so each of those definitions goes.
The disable Flags: Skills, Workflows, Connectors, Artifacts
Below the deny list, five boolean flags remove whole feature areas from the payload:
"disableBundledSkills": trueremoves the skills that ship with Claude Code, including the built-in code review skill he does not use."disableWorkflows": truecuts everything related to dynamic workflows."disableRemoteControl": trueremoves remote control, which he found carried a surprising amount of system prompt weight."disableClaudeAiConnectors": truedrops the claude.ai connectors, which were burning tokens he had not even noticed."disableArtifact": trueturns off the artifacts feature.
The article frames the snippet as a menu rather than a mandate. You start from the ranked proxy table and keep only what you actually use.
Why Less Context Means Better Output
The payoff is not just cost. Pocock's closing argument is that the less you send over the wire, the better your outputs get, because the agent has less irrelevant material distracting it. A 25K-token baseline of prompt and tools leaves less room for your actual code and conversation, and every unused tool schema is a candidate for the model to reach for incorrectly. Trimming to 8K makes each request cheaper and keeps the model focused on the tools it will really call.
Key Takeaways
- Claude Code's default system prompt and tool definitions can carry 8,000 to 10,000 tokens of unused material per request.
- Measure before cutting. A logging proxy at
ANTHROPIC_BASE_URLwrites every request as Markdown and ranks tools by token cost. - Denying a tool in
permissions.denyin~/.claude/settings.jsonremoves its definition from the system prompt. - Five disable flags (bundled skills, workflows, remote control, claude.ai connectors, artifacts) remove entire feature areas.
- Pocock's result: starting payload dropped from about 25K tokens to around 8K.
- Smaller context improves output quality because the agent has fewer irrelevant tools competing for attention.
Resources
- How To Kill The Bloat In Claude Code's System Prompt - the AIhero.dev article shown on screen, with the full walkthrough and config
- agent-proxy gist - Pocock's zero-dependency logging proxy that ranks what is eating your context
- Matt Pocock's thread on the process - step-by-step summary on X
- AIhero.dev - Pocock's AI education site featured in the video
Published July 21, 2026. Writeup generated from a favorited TikTok.