Releases: code-yeongyu/oh-my-opencode
v2.4.0
v2.4.0
This release brings background auto-updates, CI infrastructure, and enhanced ultrawork mode with zero-tolerance completion enforcement.
Highlights
🔄 Background Auto-Update
Your oh-my-opencode now updates itself automatically in the background. No more manual version checks.
- Configurable version pinning via
pinned_versionsetting - Local development mode detection (skips updates when running from source)
- Non-intrusive toast notifications
🏗️ CI Infrastructure
Full GitHub Actions CI pipeline for quality assurance:
- Automated test, typecheck, and build jobs on every push
- Automatic draft release management with changelog generation
- Community contributions now get proper CI validation
⚡ Enhanced Ultrawork Mode
The ultrawork / ulw keyword now includes zero-tolerance completion enforcement:
- NO Scope Reduction - No "demo" or "skeleton" versions
- NO Partial Completion - No stopping at 60-80%
- NO Assumed Shortcuts - No skipping "optional" requirements
- NO Premature Stopping - All TODOs must complete before done
🔔 Todo Countdown Toast
Visual countdown notification when incomplete todos exist, keeping agents accountable.
Bug Fixes
- Session Recovery: Improved anthropic-auto-compact session recovery with Continue prompt handling
- Keyword Injection: Fixed first message keyword injection for correct session titles
- Non-Interactive Env: Added EDITOR and PAGER environment variables to block interactive UI prompts
- Todo Countdown: Only shows countdown when incomplete todos exist in main session
Documentation
- Fixed fallback model logic in installation instructions
- Added max20 (20x mode) follow-up question for librarian agent configuration
- 8b8f21e refactor(keyword-detector): consolidate completion enforcement from prove-yourself into ultrawork mode
- f2f73d1 fix: skip keyword injection on first message for correct session titles (#125)
- 049134b Add notice for news updates on X account suspension
- 12cd338 fix(anthropic-auto-compact): improve session recovery with Continue prompt
- b9e373a feat(ci): extract changelog generation script and use for draft releases
- 9d10de5 feat(ci): implement automatic draft release management
- 30ae22a feat(ci): add GitHub Actions CI workflow with test, typecheck, and build jobs
- 346aba0 docs: fix fallback model logic in installation instructions
- 2025f7e fix(todo-continuation-enforcer): only show countdown when incomplete todos exist in main session
- 15d36ab feat(todo-continuation-enforcer): implement countdown toast notification
- eccbfa5 feat(keyword-detector): add prove-yourself mode for frustration keywords
- 09e04e7 docs: add max20 (20x mode) follow-up question for librarian agent configuration
- 4da4302 fix(non-interactive-env): add editor and pager environment variables to block interactive UI
- f5e65b8 feat(auto-update-checker): add local development mode toast notification
- a475717 Merge commit 'e261853451addb9d3d5d5d0fb7aae830ab492470'
- e261853 feat(auto-update-checker): implement background auto-update with configurable pinning
- 85a3111 refactor(keyword-detector): relax analyze-mode recommendations for practical agent usage
Thank you to 1 community contributor:
v2.3.1
- 8440dce fix(hooks): restore grep truncation by removing unused grep-output-truncator (#120)
- 5dba599 fix(schema): update schema to reflect Sisyphus agent (#119)
- 662bae2 feat(lsp): add bash-language-server to builtin servers (#112)
- c37d41e fix(auto-update-checker): add bun.lock handling to invalidatePackage()
Thank you to 1 community contributor:
- @TechDufus:
- feat(lsp): add bash-language-server to builtin servers (#112)
v2.3.0
v2.3.0 - Meet Sisyphus
Introducing Our Main Agent: Sisyphus
In Greek mythology, Sisyphus was condemned to roll a boulder up a hill for eternity as punishment for deceiving the gods. LLM Agents haven't really done anything wrong, yet they too roll their "stones"—their thoughts—every single day. My life is no different. Looking back, we are not so different from these agents.
Yes! LLM Agents are no different from us. They can write code as brilliant as ours and work just as excellently—if you give them great tools and solid teammates.
I believe that code written by agents should be indistinguishable from human-written code. This philosophy inspired the name "Sisyphus"—an agent that rolls its boulder every day, just like us, producing work that seamlessly blends with human output.
Sisyphus's Toolkit
Meet our main agent: Sisyphus (Claude Opus 4.5 with 32k extended thinking). Below are the tools Sisyphus uses to keep that boulder rolling:
- Curated Teammates
- Oracle: Design & debugging (GPT 5.2)
- Frontend UI/UX Engineer: Beautiful interfaces (Gemini 3 Pro)
- Librarian: Official docs & OSS implementations (Claude Sonnet 4.5)
- Explore: Blazing fast codebase exploration (Grok Code)
- Full LSP / AST-Grep Support: Refactor decisively
- Todo Continuation Enforcer: Forces the agent to continue if it quits halfway—this is what keeps Sisyphus rolling that boulder
- Comment Checker: Prevents AI from adding excessive comments. Code generated by Sisyphus should be indistinguishable from human-written code
Enhanced Orchestration
Sisyphus brings more refined orchestration capabilities:
- Smarter delegation to specialized subagents
- Aggressive parallel execution for maximum throughput
- Todo-driven workflow with real-time progress tracking
- Prevented proactive implementation without explicit user request (#106)
Experimental Features
New opt-in experimental features for power users. Use with caution—these may change or be removed in future versions.
{
"experimental": {
"aggressive_truncation": true,
"empty_message_recovery": true,
"auto_resume": true
}
}| Option | Description |
|---|---|
aggressive_truncation |
When token limit is exceeded, aggressively truncates tool outputs to fit within limits |
empty_message_recovery |
Automatically recovers from "non-empty content" API errors by fixing empty messages |
auto_resume |
Automatically resumes session after successful recovery from thinking block errors |
Other Changes
- Added Simplified Chinese README (zh-cn)
- Fixed circular dependency in config error utilities preventing plugin loader crash
- Added Windows config path documentation
- Fixed background-agent to cancel all nested descendant tasks recursively (#107)
- Increased todo-continuation-enforcer delay to 5s with write permission check (#105)
Commits
- df87f5f Introducing our main agent: Sisyphus (#113)
- 4cd2745 refactor(auto-update-checker): remove config path from startup toast
- 8cf713e feat(config): add experimental config for gating unstable features (#110)
- 7fe6423 docs: add Simplified Chinese README (zh-cn)
- dad534e fix: break circular dependency in config error utilities to prevent plugin loader crash
- 63fea77 fix: add Windows config path documentation and config error warnings (#97) (#109)
- 845a1d2 fix(background-agent): cancel all nested descendant tasks recursively (#107)
- df0a9e6 Prevent OmO from proactively implementing without explicit user request (#106)
- a48fc3e fix(todo-continuation-enforcer): increase delay to 5s and add write permission check (#89) (#105)
v2.2.1
- d788599 feat(claude-code-skill-loader): add base directory context (#103)
- 2b368ad feat(omo): improve orchestration with key triggers and tool guidance (#100)
- 67a1dba refactor(keyword-detector): inject keywords on every message (#99)
- 98df151 chore(document-writer): switch to Gemini 3 Flash model (#98)
- 9a8d631 fix openai/chatgpt/codex auth via bump to v4.1.1 (#88)
- 7a26cad docs: make installation instructions more explicit (#87)
- 7a135f3 refactor(frontend-ui-ux-engineer): make prompt model-agnostic
- d7e45a1 fix(anthropic-auto-compact): ensure executeCompact always runs for truncation/revert regardless of model info
- 7546d57 Remove self dependency from package.json (#83)
- 1400f15 docs: add uninstallation instructions to README (#82)
Thank you to 4 community contributors:
v2.2.0
New Features
OmO Agent Model Fallback Chain
- OmO agent now inherits OpenCode system default model as fallback, providing better flexibility in model selection
Improvements
OmO System Prompt Enhancement
- Got some feedbacks about too much subagent (which I still think make sense) but refined prompt to be more precise
Default permissions
- Now by default web fetch and external directory permissions are automatically allowed
Cleaner Terminal Experience
- Removed terminal title update feature (session-rename-hook) as it is supported by the opencode team
Bug Fixes
- fix(auth): Resolved Google Antigravity OAuth 404 error by using fallback project ID
- fix(agents): Restricted OmO-Plan to read-only tools, properly inheriting from default plan agent
Documentation
- Added concrete
oh-my-opencode.jsonconfiguration examples to LLM installation guide - Added opencode-antigravity-auth plugin guide and model override documentation
- 17b4304 Expand Todo Management section with detailed guidelines
- c6595be Add OmO agent model fallback chain to inherit OpenCode system default (#79)
- e144dd5 Merge branch 'remove-session-rename-hook'
- 8cdbd1c refactor: remove terminal title update feature
- 276b1ba Merge branch 'fix-omo-plan-agent-permissions'
- 1de27e4 Merge branch 'allow-external-read-webfetch-hooks'
- 98ffe3f feat: auto-allow webfetch and external_directory permissions
- 0261652 Add concrete oh-my-opencode.json configuration examples to LLM installation guide
- 9cef9d1 Add opencode-antigravity-auth plugin guide and oh-my-opencode.json model override documentation
- 67bcd4d fix(auth): resolve Google Antigravity OAuth 404 error by using fallback project ID
- 1ecf35f fix(agents): restrict OmO-Plan to read-only tools, inherit from default plan agent (#72)
v2.1.7
v2.1.6
Token Efficiency Improvements
This release significantly reduces tool description token usage, saving context window space.
LSP Tools (#71)
| Metric | Before | After | Reduction |
|---|---|---|---|
| Description chars | 1,826 | 671 | 63% |
| Estimated tokens | ~550 | ~410 | ~25% |
Other Tools (#73)
| Tool | Before | After | Reduction |
|---|---|---|---|
| background_task | 571 chars | 127 chars | 78% |
| background_output | 268 chars | 95 chars | 65% |
| background_cancel | 374 chars | 83 chars | 78% |
| call_omo_agent | 841 chars | 156 chars | 81% |
| look_at | 278 chars | 119 chars | 57% |
| interactive_bash | 346 chars | 130 chars | 62% |
| Total | 2,678 chars | 710 chars | ~73% |
Combined Impact
- Total character reduction: ~4,500 → ~1,380 chars (~69%)
- Estimated token savings: ~800-1000 tokens per conversation
Commits
v2.1.5
v2.1.4
- 6ab0ff7 refactor(agents): improve librarian agent framing as 'Reference Grep' for parallel structure with explore
- 2706fe4 refactor(agents): restructure OmO system prompt with Phase-based architecture
- 08d612d docs: update AGENTS.md with latest metadata and OpenCode version
- 846bb7a Update README
- 72d9d13 fix(hook-message-injector): add validation to prevent empty message injection and improve logging
- 337b2e7 fix(google-auth): enable google antigravity auth by default (#66)
- d40add5 docs: fix outdated librarian model and add empty-message-sanitizer hook documentation
- 7293b88 feat(hooks): add empty-message-sanitizer to prevent API errors from empty chat messages
- 3761d45 Merge branch 'fix-empty-message-content'
- 1e8de07 fix(antigravity): handle multiple FREE tier ID formats in onboarding
- 838f49b fix(session-recovery): Replace empty text parts before injecting new ones
- ed233d7 fix(antigravity): implement FREE tier onboarding via onboardUser API
- cb360e0 refactor(omo): balance proactivity with user confirmation in prompt
- 4112be7 feat(background-task): add all parameter to cancel all running tasks at once
- b461ef4 feat(anthropic-auto-compact): Add tool output truncation recovery layer for token limit handling (#63)
- 059f2bf fix(antigravity): fix auth on free plan with random project ID fallback
- 407eeb3 fix(anthropic-auto-compact): use OpenCode's official compaction mechanism and proper retry
- 7c9b9f5 fix(session-notification): Replace blocking MessageBox with native toast on Windows (#62)
- 13a47c5 refactor(agents): simplify explore agent prompt for clarity and efficiency
- 3e1a270 fix(lsp): cleanup orphan LSP servers on process exit
Thank you to 1 community contributor:
v2.1.2
Bug Fixes
fix(session-notification): Replace blocking MessageBox with native toast on Windows
- Windows UX 대폭 개선:
System.Windows.Forms.MessageBox(blocking modal) →Windows.UI.Notifications.ToastNotificationManager(non-blocking toast) - 플랫폼별 올바른 이스케이핑 적용: 각 플랫폼 셸 특성에 맞게 수정
- macOS: AppleScript용 백슬래시 처리 (
\\→\\\\,"→\") - Linux: raw 값 처리 (셸이 자동 처리)
- Windows: PowerShell용 작은따옴표 이스케이핑 (
'→'')
- macOS: AppleScript용 백슬래시 처리 (
- 에러 핸들링 추가: Windows에서 graceful degradation 지원 (older Windows versions)
- 코드 구조 개선: 플랫폼별 이스케이핑 로직을 각 case 블록으로 분리하여 가독성 향상
Technical Details:
- 사용자 입력 없음: config-driven values만 사용하여 보안 위험 감소
- PowerShell 단일 따옴표 문자열 내 안전한 값 삽입
- 타입 에러 없음: LSP diagnostics clean
Fixes: #62
Thank you to our community contributor:
- @junhoyeo: fix(session-notification): Replace blocking MessageBox with native toast on Windows (#62)
- da63b09 fix(session-notification): Replace blocking MessageBox with native toast on Windows (#62)
Thank you to our community contributor:
