Slim
Smart context management plugin for OpenCode - semantic compression, cost-aware pruning, adaptive thresholds
0
849
近 7 天 38
37.6
生态多维模型
14 天前
2026-09-20
快速安装与配置
opencode.json写入当前项目的 opencode.json,只对这个仓库生效。
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@serkanalgur/opencode-slim@1.4.0"]
}写入 ~/.config/opencode/opencode.json,对所有项目生效。
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@serkanalgur/opencode-slim@1.4.0"]
}若你要在本地改造这个插件,先装到项目里再从本地路径引用。
shell
pnpm add -D @serkanalgur/opencode-slimOpenCode 启动时会通过内嵌运行时自动加载 npm 依赖并缓存至本地目录,无需手动在全局环境执行安装。
Smart context management plugin for OpenCode. Optimizes token usage through semantic compression, cost-aware pruning, and adaptive thresholds.
Features
- TUI Panel - Rich context usage visualization with status indicators
- Enhanced Compress - Auto/range/topic modes for flexible compression
- Semantic Compression - Groups related tool calls and compresses them intelligently
- Cost-Aware Pruning - Considers token pricing when deciding what to compress
- Adaptive Thresholds - Learns from compression history to optimize timing
- Session Persistence - Saves state across restarts
- Deduplication - Removes repeated tool calls automatically
- Error Purging - Cleans up failed tool call outputs after configurable turns
- Topic Extraction - Identifies and tracks conversation topics
- Smart Recommendations - Provides actionable suggestions for context optimization
Installation
opencode plugin @serkanalgur/opencode-slim@latest --global
This installs the plugin globally. The TUI features (panel, slash commands) are automatically loaded when OpenCode starts.
Manual Installation
If the CLI command doesn't work, add to your ~/.config/opencode/opencode.json:
{
"plugins": ["@serkanalgur/opencode-slim"]
}
Usage
Slash Commands
After installation, these slash commands are available in the TUI:
/panel— Opens the rich TUI panel with context usage, stats, and help/compress— Shows instructions for using the compress tool
TUI Panel
The panel provides a real-time overview of your context usage, including:
- Token usage vs model limit with visual progress bar
- Message breakdown by role (user/assistant/tools)
- Compression history and savings
- Cost estimation based on your model
- Smart recommendations for optimization
Compress Tool
The enhanced compress tool supports multiple modes:
// Auto mode (default) - intelligently selects what to compress
compress({ focus: "old exploration" })
// Range mode - compress specific message range
compress({ focus: "completed tasks", mode: "range", start: 0, end: 50 })
// Topic mode - compress messages matching a topic
compress({ focus: "database work", mode: "topic", topic: "database" })
Configuration
Create ~/.config/opencode/slim.jsonc:
{
"enabled": true,
"compress": {
"enabled": true,
"permission": "allow",
"maxContextLimit": "80%",
"minContextLimit": "40%",
"nudgeFrequency": 5,
"protectUserMessages": false,
"protectedTools": ["task", "skill", "todowrite", "todoread"]
},
"strategies": {
"deduplication": {
"enabled": true,
"protectedTools": []
},
"purgeErrors": {
"enabled": true,
"turns": 4,
"protectedTools": []
}
},
"adaptive": {
"enabled": true,
"learningRate": 0.1,
"minCompressionRatio": 0.3
},
"costAware": {
"enabled": true,
"cacheBoostFactor": 0.5
},
"persistence": {
"enabled": true,
"directory": "~/.config/opencode/slim"
}
}
How It Works
TUI Panel
The panel provides a real-time overview of your context usage, including:
- Token usage vs model limit with visual progress bar
- Message breakdown by role (user/assistant/tools)
- Compression history and savings
- Cost estimation based on your model
- Topic distribution across the conversation
- Smart recommendations for optimization
Semantic Compression
Unlike simple text truncation, slim analyzes the semantic content of messages and groups related tool calls together. This preserves context while removing redundancy.
Cost-Aware Pruning
Slim considers the cost of tokens when deciding what to compress. It prioritizes compressing expensive operations (like large file reads) while preserving cheap but important context.
Adaptive Thresholds
The plugin learns from your compression patterns and adjusts thresholds over time. If you tend to need more context, it will compress less aggressively. If you're efficient, it will compress more.
Session Persistence
State is saved to disk, so compression history and learning persist across restarts.
Commands
| Command | Description |
|---|---|
/panel |
Open the Slim TUI panel with context usage, stats, and help |
/compress |
Show instructions for using the compress tool |
Note: Compression is performed by the AI assistant using the compress tool. The slash command provides guidance on usage.
Comparison with DCP
| Feature | slim | DCP |
|---|---|---|
| TUI Panel | ✅ | ✅ |
| Slash Commands | ✅ /panel /compress |
✅ /dcp /dcp-compress |
| Manual Compress | ✅ | ✅ |
| Semantic grouping | ✅ | ❌ |
| Cost awareness | ✅ | ❌ |
| Adaptive thresholds | ✅ | ❌ |
| Session persistence | ✅ | ❌ |
| Topic extraction | ✅ | ❌ |
| File count | ~10 | ~150 |
| License | MIT | AGPL-3.0 |
| Config complexity | Low | High |
License
MIT
同类生态推荐
V2 Slim
@serkanalgur/opencodev2-slim
Smart context management plugin for OpenCode v2 - semantic compression, cost-aware pruning, adaptive thresholds
Smartsnip
opencode-smartsnip
Cuts shell-output tokens in opencode. Wraps only what snip can filter — everything else runs byte-identical.
Context Pruner
opencode-context-pruner
Continuous verbatim context pruning for OpenCode, powered by TypeSafe Jev. Port of fast-jev-compaction adapted to OpenCode's context hook.