Every request ships tool definitions, a bundled-skills catalogue and feature instructions you may never use — tens of thousands of tokens per turn, billed every turn, that the model wades through before reaching your actual problem. Measure the fat. Then cut it.
/context
Not every deny rule saves tokens. The difference is whether the tool's definition still ships in the payload.
"deny": ["NotebookEdit"]
A bare tool name removes the tool's entire definition from every request. The schema, the description, the examples — gone from the payload.
"deny": ["Skill(dataviz)"]
A scoped rule only blocks the call. The definition still rides along in the system prompt, still counted, still read — you pay for it anyway.
Run the logging proxy and every tool prints with its byte weight, ranked. Then you deny by name — the biggest line items first.
Weights are illustrative. The proxy (proxy.mjs) writes a real ranked table to ./logs from your own sessions.
Never cut blind. Weigh before, weigh after — the method adapted from aihero.dev, packaged as a runnable skill.
Run /context. Record the system / tools / MCP / memory split.
Run proxy.mjs to rank every tool by byte size — no guessing.
One disable* flag removes a whole feature and its bundled tools.
Bare names in permissions.deny strip individual definitions.
apply-config.mjs merges into settings.json — backed up, idempotent.
Restart, run /context again, confirm the drop.
Keep anything you use. Two templates ship with the skill — go aggressive, or stay safe and keep plan mode and clarifying questions.
{ "permissions": { "deny": [ "EnterPlanMode", "ExitPlanMode", "NotebookEdit", "AskUserQuestion", "DesignSync", "SendMessage", "RemoteTrigger", "ReportFindings", "ScheduleWakeup", "PushNotification", "CronCreate", "CronDelete", "CronList" ] }, "disableBundledSkills": true, "disableWorkflows": true, "disableRemoteControl": true, "disableClaudeAiConnectors": true, "disableArtifact": true }
{ "permissions": { "deny": [ "DesignSync", "PushNotification", "RemoteTrigger", "ScheduleWakeup", "CronCreate", "CronDelete", "CronList" ] }, "disableWorkflows": true, "disableRemoteControl": true, "disableClaudeAiConnectors": true, "disableArtifact": true // plan mode + AskUserQuestion + skills stay }
A self-contained skill — dependency-free Node, no API keys, no build.
| SKILL.md | The skill — method, quick start, the menu. |
| REFERENCE.md | Full 6-step method plus a per-tool cost/benefit table: what each deny entry actually costs you. |
| proxy.mjs | Logging proxy that forwards to the real API untouched and prints a ranked tool-size table. Node built-ins only. |
| scripts/apply-config.mjs | Deterministic settings merge — backup, dedupe, preserve order. Global or per-project. |
| templates/ | Aggressive (max cut) and conservative (safe) settings templates. |