If you’ve been using OpenCode for AI-assisted development, you’ve probably noticed one thing:
👉 Token usage can get out of hand—fast.
Between full file context, chat history, and agent loops, even simple tasks can burn thousands of tokens.
The good news? There’s a practical way to fix this:
Dynamic Context Pruning (DCP)
🧠 What is Dynamic Context Pruning?
Dynamic Context Pruning (DCP) is a strategy (usually implemented as a plugin or middleware) that:
- Removes irrelevant context before sending it to the LLM
- Keeps only what’s necessary (active code, recent errors, decisions)
- Enforces token limits automatically
Think of it as a smart filter for your prompts.
⚠️ Important: It’s NOT enabled by default
Here’s where many developers get confused:
👉 OpenCode does not ship with DCP turned on out of the box.
You need to:
- Install a plugin (or equivalent)
- Register it
- Configure it properly
⚙️ Step-by-step: Enable DCP in OpenCode
1. Install a DCP plugin
Depending on your setup (Node/Python), install a pruning plugin:
npm install opencode-dcp-plugin
or
pip install opencode-dcp
2. Register the plugin
Add it to your OpenCode config:
{
"plugins": ["dcp-plugin"]
}
or YAML:
plugins:
- dcp-plugin
3. Configure pruning rules
This is where the magic happens 👇
dcp:
max_tokens: 8000
strategy: smart
keep:
- active_file
- recent_errors
drop:
- old_history
- debug_logs
What this does:
- ✅ Keeps relevant working context
- ❌ Removes noise (logs, stale history)
- 🎯 Caps total tokens before sending to model
4. Enable DCP for agents (if applicable)
If you're using agents, don’t skip this:
agents:
coder:
dcp: true
debugger:
dcp: true
Otherwise, agents may still send full context.
5. Verify it’s working
Run a task and check logs. You should see something like:
[DCP] Reduced context: 18,240 → 6,120 tokens
No log = not working ❌
🧪 Minimal setup (quick win)
If you want a simple config that works immediately:
plugins:
- dcp-plugin
dcp:
strategy: aggressive
max_tokens: 6000
👉 This alone can reduce token usage by 50–70% in many cases.
🚫 Common mistakes
❌ Installed plugin but didn’t register it
→ Nothing happens
❌ Agents not configured
→ Token usage still high
❌ Keeping too much context
→ You defeat pruning
❌ Sending entire repo anyway
→ DCP can’t fix bad input
🧠 Pro tips for even better results
- Scope your prompts to specific files/functions
- Avoid dumping entire codebases
- Limit agent steps
- Disable unnecessary tools
🏁 Final thoughts
Dynamic Context Pruning isn’t magic—but it’s one of the highest-impact optimizations you can apply in OpenCode.
👉 Default OpenCode: 🔥 burns tokens
👉 Optimized with DCP: ⚡ efficient and scalable
If you're building larger projects or using multi-agent workflows, enabling DCP is almost mandatory.
💬 Have you tried optimizing token usage in OpenCode? What worked for you?
Top comments (0)