v2.6.0 - Plugin Support, Stability Improvements
Highlights
🔌 Claude Code Plugin Support
Load plugins from .claude/plugins/ - full compatibility with Claude Code's plugin ecosystem.
🧠 Dynamic Context Pruning (DCP)
No more abrupt compactions. When context runs low, DCP intelligently prunes before falling back to full compaction:
| Strategy | What it removes |
|---|---|
| Deduplication | Duplicate tool outputs (same tool, same result) |
| Supersede Writes | Old file writes (keeps only the latest version) |
| Purge Errors | Stale error messages older than N turns |
Each stage runs independently. If one stage frees enough tokens, later stages are skipped.
Protected by default: todowrite, lsp_rename, session_* and more.
Configurable: notification level, turn protection, per-strategy toggles.
Result: Longer sessions, better context retention, fewer forced compactions.
⚡ Sisyphus as Default Agent
When omoSisyphus.enabled: true, Sisyphus automatically becomes your default agent - no manual configuration needed.
🛡️ Two-Layer Thinking Validation
Proactive + reactive validation ensures thinking blocks are always valid and properly formatted.
📝 JSONC Config Support
Comments in your config files! Both oh-my-opencode.json and oh-my-opencode.jsonc now support JSON with Comments.
Fixes
- Windows file URL compatibility in
look_attool notify-sendcommand existence check before callingCLAUDE_CONFIG_DIRenvironment variable support- Dynamic truncator fallback when context usage unavailable
- Config error toast deferred to session.created for TUI readiness
Sponsor
Special thanks to our sponsor:
- Qodot - A colleague of mine. An exceptional senior backend engineer who excels at architecture, high-quality software, and solving real-world business problems. Always a pleasure working together, and I take this opportunity to express my gratitude.
Commits
- c5f5103 fix: defer config error toast to session.created for TUI readiness (#286)
- b2c2c6e feat: Add JSONC support for oh-my-opencode config files (#275)
- c4c0d82 fix(anthropic-auto-compact): run DCP only on compaction failure and retry after pruning (#284)
- 3e180cd docs: add Aaron Iker as sponsor to all README files (#287)
- 776d857 feat: set Sisyphus as default agent when enabled (#285)
- 90d43dc fix(dynamic-truncator): apply fallback truncation when context usage unavailable (#268)
- 6bc9a31 feat(ultrawork-prompt): add TDD workflow integration with conditional applicability (#246)
- 5c8cfbf @adam2am has signed the CLA in #281
- 1d2dc69 fix: use pathToFileURL for Windows-compatible file URLs in look_at tool (#279)
- 0cee39d fix: properly mock utility functions in session-notification tests (#274)
- dd12928 fix: resolve GitHub Actions workflow hang after task completion
- 2246d1c feat: add Claude Code plugin support (#240)
- 1fc7fe7 feat(compaction): add dynamic context pruning as recovery stage
- 3ba7e6d docs: clarify auto-update-checker and startup-toast relationship (#270)
- dec4994 fix: check command existence before calling notify-send (#264)
- c5205e7 @harshav167 has signed the CLA in #268
- 8e2fda8 feat: add get-local-version CLI command for version checking (#262)
- cad6425 fix: honor CLAUDE_CONFIG_DIR environment variable (#261)
- 15de6f6 feat: add two-layer thinking block validation (proactive + reactive) (#248)
- e05d9df feat: add sponsors section to localized README files
Thank you to 4 community contributors:
- @stevenvo:
- feat: add two-layer thinking block validation (proactive + reactive) (#248)
- @sisyphus-dev-ai:
- fix: honor CLAUDE_CONFIG_DIR environment variable (#261)
- feat: add get-local-version CLI command for version checking (#262)
- fix: check command existence before calling notify-send (#264)
- docs: clarify auto-update-checker and startup-toast relationship (#270)
- feat(compaction): add dynamic context pruning as recovery stage
- fix: properly mock utility functions in session-notification tests (#274)
- feat: Add JSONC support for oh-my-opencode config files (#275)
- @mylukin:
- feat: add Claude Code plugin support (#240)
- @harshav167:
- fix(dynamic-truncator): apply fallback truncation when context usage unavailable (#268)