Skip to content

Releases: code-yeongyu/oh-my-opencode

v2.14.0

06 Jan 18:14

Choose a tag to compare

Highlights

  • Stability improvements: Fixed Bun shell GC crash, session checks, and hook execution
  • Librarian optimization: Reduced token usage by making searches conditional instead of mandatory
  • Restored Exa websearch: Web search MCP is back!

Changes

  • 398075f refactor(librarian): optimize prompt to search only when needed
  • d4347e8 fix(auto-slash-command): load skill content via lazyContentLoader and include builtin skills
  • 980b685 fix(background-agent): release concurrency before prompt to unblock queued tasks
  • b5c1cfb fix(keyword-detector): use mainSessionID for session check instead of unreliable API
  • b9ec4c7 docs: add GitHub follow badge to README files
  • 2064568 fix: correct spawn mock type in session-notification test
  • ad44af9 fix: load skill content via lazyContentLoader in slashcommand tool
  • d331b48 fix: verify zsh exists before using it for hook execution (#544)
  • 4a38e70 fix(session-notification): use node:child_process to avoid Bun shell GC crash (#543)
  • a2bfb5e feat(mcp): restore Exa websearch support (#549)
  • f25f7ed feat(background-agent): add model-based concurrency management (#548)

Thank you to 2 community contributors:

  • @JohnC0de:
    • fix(session-notification): use node:child_process to avoid Bun shell GC crash (#543)
  • @ananas-viber:
    • fix: verify zsh exists before using it for hook execution (#544)

v2.13.2

06 Jan 09:19

Choose a tag to compare

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • feat: add English language policy and GitHub issue templates (#534)
    • fix: prevent background agents from spawning recursive subagents via call_omo_agent (#536)

v2.13.1

05 Jan 17:16

Choose a tag to compare

Highlights

/refactor Command — Refactoring, Now Automated

This release includes my personal /refactor command—a tool I've been using privately and now sharing with everyone.

Unlike blind search-and-replace or naive rename operations, /refactor operates like a human engineer would:

  1. Codebase Understanding First: Launches parallel explore agents to programmatically map your codebase—dependencies, usage patterns, architectural boundaries—before touching a single line of code.

  2. Deterministic Planning: Based on this comprehensive understanding, creates a detailed refactoring plan. No guessing. No hoping it works. Every step is deliberate.

  3. Verification by Design: Before any refactoring begins, designs a verification strategy—identifying test coverage, regression indicators, and rollback points. If tests are insufficient, it pauses and asks you to add them first.

  4. Surgical Execution: Uses LSP tools and AST-grep for precise, type-safe transformations. Symbol renames propagate correctly across your entire workspace. Pattern transformations are previewed before applying.

From simple variable renaming to full-scale architecture restructuring—the kind of refactoring that was once the exclusive domain of human programmers—Sisyphus now handles with the same care and precision.

Watch Sisyphus refactor your code the way you would. It's honestly kind of beautiful.

Usage:

/refactor "reconstruct Super big AuthService as Multiple services, after consulting with Oracle"

  • 9d13c6c fix(config): skip permission migration for Claude Code agents
  • b78e564 feat(builtin-commands): add /refactor command for intelligent LSP/AST-based refactoring
  • c709faf docs: update 'Just Install It' section with detailed Sisyphus workflow across all languages

v2.13.0

05 Jan 15:03

Choose a tag to compare

Changes

Librarian model is changed from sonnet to glm 4.7 - to improve token consumption rate

New Features

Maximum Reasoning Effort Mode

  • Sisyphus & Keyword Detector: Now support variant='max' for maximum thinking depth
  • Agent-aware ultrawork message generation for smarter context handling

Slash Command Improvements

  • Refactored slash command system with options support and intelligent caching
  • Better performance and extensibility for custom commands

Flexible MCP Configuration

  • disabled_mcps now accepts any MCP name, giving you full control over which MCP servers to disable

Bug Fixes

  • Gemini Models: Migrated to explicit antigravity- prefix for proper quota routing
  • Planner-Sisyphus: Fixed visibility issues for OpenCode 1.1.1 compatibility
  • Keyword Detector: Proper agent parameter passing and generation

Performance

  • Startup Parallelization: Command and skill loading now runs in parallel, reducing startup time
  • Async-First Loaders: Migrated to async patterns for smoother initialization

Maintenance

  • Removed websearch_exa as built-in MCP server (use external config if needed)

  • 4e5b356 feat(tools): refactor slashcommand to support options and caching
  • 898d3e6 fix(cli): migrate Gemini models to explicit antigravity- prefix for quota routing
  • 21236d8 chore(keyword-detector): add verification guarantee section to ultrawork prompt
  • ea8ca1a docs: update model names and auth versions for latest releases
  • 66acb0e chore(auth): remove deprecated models and ChatGPT hotfix
  • f7c8763 chore(keyword-detector): revert ultrawork to stronger agent utilization instructions
  • ee2f390 chore(keyword-detector): add mandatory ultrawork mode message
  • ae6495d config(fallback): use opencode/glm-4.7-free as default fallback model
  • b8b8d14 docs: update auth plugin versions to latest releases (#477)
  • 7a10b24 feat: allow disabled_mcps to accept any MCP name (#513)
  • 258463a @luosky has signed the CLA in #512
  • 0f890c1 fix(test): increase timeout in duration test to prevent flakiness (#508)
  • e81002b docs: remove websearch_exa from feature documentation
  • a20f011 docs(librarian): make web search conditional in agent prompt
  • 48174ec chore(config): update schema after websearch_exa removal
  • 26e77a0 test(doctor): update MCP checks for websearch_exa removal
  • a5c7147 refactor(mcp): remove websearch_exa as built-in MCP server
  • aecfc77 @raydocs has signed the CLA in #499
  • 5a4261a fix(hooks): pass input.agent parameter to keyword detector
  • 6913613 fix(keyword-detector): implement agent-aware ultrawork message generation
  • d27a1ef feat(keyword-detector): enable variant='max' for ultrawork mode
  • bc05fb6 feat(sisyphus): enable variant='max' for maximum reasoning effort
  • 7937d72 refactor(loaders): migrate to async-first pattern for commands and skills
  • fe11ba2 perf(startup): parallelize command and skill loading in config-handler
  • 6b5a826 @popododo0720 has signed the CLA in #477
  • 65b00c9 fix: fix Planner-Sisyphus visibility for OpenCode 1.1.1

Thank you to 2 community contributors:

  • @sisyphus-dev-ai:
    • fix(test): increase timeout in duration test to prevent flakiness (#508)
    • feat: allow disabled_mcps to accept any MCP name (#513)
  • @popododo0720:
    • docs: update auth plugin versions to latest releases (#477)

v2.12.4

05 Jan 00:30

Choose a tag to compare

  • 0553676 fix: use mode 'all' for Planner-Sisyphus agent and inherit default model

v2.12.3

04 Jan 20:44

Choose a tag to compare

  • f550462 Merge branch 'fix/v1.1.1-permission-migration' into dev
  • 2992902 fix: skip invalid YAML skills and enable Planner-Sisyphus in Tab selector
  • b66c8dc feat(frontmatter): track parsing errors and frontmatter existence in result type
  • 8f2209a fix: proper OpenCode v1.1.1 permission migration (#490)
  • 6c3ef65 fix: add runtime migration for user agent configs in config-handler
  • e1e8b24 fix: update all agents to use createAgentToolRestrictions()
  • 0d0ddef fix: implement proper version-aware permission format for OpenCode v1.1.1
  • 09f72e2 feat: OpenCode v1.1.1 permission system compatibility (#489)
  • 6fd9734 fix(keyword-detector): show ultrawork toast on every activation
  • 4bf853f test(context-injector): remove keyword-specific test cases
  • 87134d3 refactor(keyword): unify keyword injection into UserPromptSubmit pipeline
  • 36c42ac fix(context-injector): inline keyword detection in messages transform hook
  • 56fe32c @Skyline-23 has signed the CLA in #484
  • 09756b8 @RhysSullivan has signed the CLA in #482
  • 9ba9f90 feat(context-injector): implement messages transform hook for context injection
  • ce69007 perf(skill-loader): add blocking discovery API with worker threads
  • b1f36d6 perf(skill): implement lazy content loading
  • 97e51c4 perf(init): integrate async skill/command loaders
  • 91d2705 perf(plugin-loader): parallelize component loading
  • 6575dfc perf(skill-loader): parallelize directory scanning
  • 59b0e69 perf(command-loader): parallelize directory scanning
  • 9d64f21 perf(init): use background tmux path check
  • e572c7c perf(init): parallelize googleAuth and tmuxPath initialization
  • be2adff feat(skill-loader): add async directory scanner
  • 37f4c48 @geq1fan has signed the CLA in #481
  • a49fbee refactor(todo-continuation-enforcer): update message mock structure and remove unreliable abort error handling tests
  • 7a7b16f feat(context-injector): introduce centralized context collection and integrate with keyword-detector
  • ae781f1 @ChiR24 has signed the CLA in #473
  • d7645a4 docs: remove sponsor request row from README header tables
  • 1692772 @fparrav has signed the CLA in #469
  • a4ba63c docs: add sponsors Suyeol Jeon (devxoul) and Daewoong An (devwon) to README files (#460)
  • 063db0d fix(skill-mcp-manager): filter npm/pnpm/yarn env vars that break MCP servers (#459)
  • dc52395 feat(lsp): sync LSP catalog with OpenCode (#455)
  • c8e9f90 docs: add missing LLM Agent installation step links to translated READMEs ToC (#458)
  • 6fbc5ba fix: preserve custom provider prefixes in think mode model switching (#451)
  • fc76ea9 fix(skill-mcp-manager): prevent memory leaks from orphaned MCP processes (#453)
  • 2a3b45b docs: update Discord invite link across all README files
  • 79b80e5 docs: sync README reviews and orchestrator banner across languages
  • e2cbe8c @hqone has signed the CLA in #451
  • 99c7df5 fix: respect ANTHROPIC_1M_CONTEXT and VERTEX_ANTHROPIC_1M_CONTEXT env vars (#450)
  • f61e1a5 fix(non-interactive-env): use export for env vars to apply to all chained commands
  • 03c51c9 update readme
  • c109945 add .sisyphus
  • d188688 feat(keyword-detector): enhance ultrawork mode with zero-tolerance execution rules
  • 95645ef fix(ralph-loop): clear orphaned state when original session no longer exists (#446)
  • 00b8f62 feat(installer): add opencode-desktop compatibility with dynamic config paths (#442)
  • 967e532 docs: fix outdated Builder-Sisyphus references to OpenCode-Builder (#444)
  • c40f562 @changeroa has signed the CLA in #446
  • a9523bc feat(ci): enhance sisyphus-agent workflow with PR/issue title and mandatory context reading guidelines
  • f26bf24 feat(keyword-detector): enhance ultrawork mode instructions with TODO emphasis
  • bc65fce refactor(sisyphus-prompt-builder): rename buildUltraworkAgentTable to buildUltraworkAgentSection
  • 3a8eac7 make tables
  • 48dc829 fix(webfetch): apply aggressive truncation for webfetch outputs (#434)
  • 8bc9d6a fix(ci): fix YAML indentation in sisyphus-agent workflow heredoc
  • 6a6e20c feat(ci): add actionlint workflow linter
  • 3a5aea7 fix(ci): harden sisyphus-agent workflow condition for push event safety
  • a481280 fix(non-interactive-env): add line continuation for command display
  • 6422ff2 feat(workflow): restore sisyphus agent enhancements with ultrawork/analyze-mode (#439)
  • 3c27206 Revert "feat(workflow): enhance sisyphus agent with mandatory context reading…" (#437)
  • 8510a22 feat(workflow): enhance sisyphus agent with mandatory context reading and todo creation (#430)
  • a8ca3ad docs: add TDD section with RED-GREEN-REFACTOR cycle to AGENTS.md (#433)

Thank you to 4 community contributors:

  • @sisyphus-dev-ai:
    • docs: add TDD section with RED-GREEN-REFACTOR cycle to AGENTS.md (#433)
    • feat(workflow): enhance sisyphus agent with mandatory context reading and todo creation (#430)
    • feat(workflow): restore sisyphus agent enhancements with ultrawork/analyze-mode (#439)
    • fix(webfetch): apply aggressive truncation for webfetch outputs (#434)
    • docs: fix outdated Builder-Sisyphus references to OpenCode-Builder (#444)
    • feat(installer): add opencode-desktop compatibility with dynamic config paths (#442)
    • docs: add missing LLM Agent installation step links to translated READMEs ToC (#458)
    • feat(lsp): sync LSP catalog with OpenCode (#455)
    • fix(skill-mcp-manager): filter npm/pnpm/yarn env vars that break MCP servers (#459)
  • @changeroa:
    • fix(ralph-loop): clear orphaned state when original session no longer exists (#446)
  • @stevenvo:
    • fix: respect ANTHROPIC_1M_CONTEXT and VERTEX_ANTHROPIC_1M_CONTEXT env vars (#450)
  • @hqone:
    • fix: preserve custom provider prefixes in think mode model switching (#451)

v2.12.2

03 Jan 01:02

Choose a tag to compare

  • f345101 fix(ralph-loop): adopt OContinue patterns for better performance and abort handling (#431)
  • d09c994 fix(session-recovery): detect 'final block cannot be thinking' error pattern (#420)
  • 8c30974 fix: address review feedback - fix typos and wording consistency
  • c341c15 docs: update Discord invite link in all README files (#429)

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • docs: update Discord invite link in all README files (#429)
    • fix: address review feedback - fix typos and wording consistency
    • fix(session-recovery): detect 'final block cannot be thinking' error pattern (#420)
    • fix(ralph-loop): adopt OContinue patterns for better performance and abort handling (#431)

v2.12.1

02 Jan 17:42

Choose a tag to compare

  • 8b99133 fix(todo-continuation-enforcer): add 500ms grace period to prevent false countdown cancellation (#424)
  • 924fa79 style: improve git command env prefix readability with line continuation
  • c78241e docs(agents): regenerate AGENTS.md with updated commit reference (d0694e5) and corrected line counts
  • d0694e5 fix(background-agent): prevent memory leaks by cleaning notifications in finally block and add TTL-based task pruning
  • 4a9bdc8 fix(non-interactive-env): prepend env vars directly to git command string
  • b64b3f9 fix(recovery): correct prompt_async API path parameter from sessionID to id
  • e3ad790 feat(hooks): add edit-error-recovery hook for handling Edit tool errors (opencode#4718)

Thank you to 1 community contributor:

  • @devxoul:
    • fix(todo-continuation-enforcer): add 500ms grace period to prevent false countdown cancellation (#424)

v2.12.0

02 Jan 11:41

Choose a tag to compare

  • ddeabb1 fix(claude-code-hooks): handle UserPromptSubmit on first message properly
  • 7a896fd fix(token-limit-recovery): exclude thinking block errors from token limit detection
  • 823f12d fix(todo-continuation-enforcer): preserve model/provider from nearest message

v2.11.0

02 Jan 08:10

Choose a tag to compare

Highlights

New Features

  • Handoffs Support: Added speckit compatibility with handoffs support for commands (#410)
  • GitHub Copilot Instructions: Rules injector now supports GitHub Copilot instructions format (#403)
  • Smart MCP Conflict Resolution: Auto-disable builtin skills when overlapping MCP servers are configured

Bug Fixes

  • Windows Support: Fixed auto-update path detection and install function on Windows (#404)
  • Ralph Loop: Fixed completion promise detection from session messages API (#413)
  • Recovery Pipeline: Improved compaction and tool output truncation with early exit
  • MCP Environment: MCP servers now properly inherit process.env
  • Agent Prompt: Sisyphus now receives available agents for dynamic prompt sections (#414)
  • Todo Continuation: Replaced time-based cooldown with event-order abort detection

Documentation

  • Comprehensive AGENTS.md regeneration with codebase analysis
  • Added npx alternative and Snap Bun warning for Ubuntu users (#401)
  • Added ultrawork guidance and skill-mcp feature documentation

  • fd957e7 let it not mess up tui
  • 3ba6179 fix(ralph-loop): detect completion promise from session messages API (#413)
  • 3224c15 Merge branch 'fix-sentry-skill-project-loading' into dev
  • a51ad98 fix(skill-mcp): always inherit process.env for MCP servers
  • b98a1b2 fix(non-interactive-env): inherit process.env before applying NON_INTERACTIVE_ENV overrides
  • 9a92dc8 fix(agents): pass available agents to Sisyphus for dynamic prompt sections (#411) (#414)
  • 99711da feat(commands): add handoffs support for speckit compatibility (#410)
  • 6eaa96f fix: Windows auto-update path detection and install function support (#404)
  • f6b066e fix(todo-continuation-enforcer): replace time-based cooldown with event-order abort detection
  • 4434a59 fix(non-interactive-env): use shell no-op for editor env vars
  • 038d838 refactor(index): extract config loading and handlers to reduce file size
  • dc057e9 fix(recovery): restore compaction pipeline sufficient check and conservative charsPerToken
  • d4787c4 fix(recovery): implement early exit in tool output truncation
  • e6ffdc4 feat(claude-code-mcp-loader): auto-disable builtin skills with overlapping MCP servers
  • a1fe0f8 docs(agents): regenerate all AGENTS.md files with comprehensive codebase analysis
  • bebe660 feat(rules-injector): add GitHub Copilot instructions format support (#403)
  • f088f00 Add comprehensive MCP loader documentation
  • f64210c docs: add ultrawork guidance and skill-mcp feature to READMEs
  • b75383f docs: add npx alternative and Snap Bun warning for Ubuntu users (#401)

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • docs: add npx alternative and Snap Bun warning for Ubuntu users (#401)
    • feat(rules-injector): add GitHub Copilot instructions format support (#403)
    • fix: Windows auto-update path detection and install function support (#404)
    • feat(commands): add handoffs support for speckit compatibility (#410)
    • fix(ralph-loop): detect completion promise from session messages API (#413)