Skip to content

Releases: code-yeongyu/oh-my-opencode

v3.3.1

07 Feb 17:48

Choose a tag to compare

What's Changed

Full Changelog: v3.3.1...v3.3.1

v3.3.0

07 Feb 14:47

Choose a tag to compare

Hi Subagents! 👋

The headline: Subagents are no longer black boxes. Click on a task tool call in the UI and see exactly what you delegated — prompt, description, model, session ID, the whole story.

delegate_tasktask: From Mystery to Transparency

Before v3.3.0, spawning a subagent meant sending it off into the void. You gave it a prompt, crossed your fingers, and waited. Want to know what instructions you actually sent? Tough luck — delegate_task kept its secrets.

Now with task:

  • Click to inspect: Every task tool call is clickable in the UI. One click reveals the full context.
  • ctx.metadata(): Subagent tasks now store title, description, prompt, category, model — everything you need.
  • storeToolMetadata(): Tool calls aren't just executed; they're documented.

Delegation isn't a leap of faith anymore — it's observable, debuggable, transparent.

Also Shipped

CLI: --port, --attach, --session-id, --on-complete, --json flags for run
Opus 4.6: Auto effort=max via anthropic-effort hook
Plugin safety: plugin_load_timeout_ms, safe_hook_creation, safeCreateHook()
ACP (Zed): 18x session.promptpromptAsync fix
MCP config: Reads both ~/.claude.json and ~/.claude/.mcp.json
UserPromptSubmitHooks: Now fires on every prompt
Compaction: TODO preservation improved
Cascade cancel: Parent deletion cancels child subagents
Windows: Multiple crash fixes
Desktop app: Cross-platform path support
Migration: System modularization

LFG ulw ulw! 🔥


What's Changed

Features

  • cli: extend run command with port, attach, session-id, on-complete, and json options
  • config: add plugin_load_timeout_ms and safe_hook_creation experimental flags
  • shared: add safeCreateHook utility for error-safe hook creation
  • register anthropic-effort hook in plugin lifecycle
  • add anthropic-effort hook to inject effort=max for Opus 4.6

Bug Fixes

  • mcp-loader: also read ~/.claude/.mcp.json for CLI-managed user MCP config
  • look-at: remove isJsonParseError band-aid (root cause fixed)
  • tools: switch session.prompt to promptAsync in delegate-task and call-omo-agent
  • hooks: switch session.prompt to promptAsync in all hooks
  • background-agent: switch session.prompt to promptAsync
  • core: switch compatibility shim to promptAsync
  • shared: switch promptWithModelSuggestionRetry to use promptAsync
  • hooks: fire UserPromptSubmitHooks on every prompt, not just first (#594)
  • mcp-loader: read user-level MCP config from ~/.claude.json (#814)
  • skill-loader: filter discovered skills by browserProvider (#1563)
  • skip ultrawork injection for plan-like agents (#1501)
  • migration: stop task_system backup writes (#1561)
  • rewrite dedup recovery test to mock module instead of filesystem
  • use lazy storage dir resolution to fix CI test flakiness
  • wire deduplication into compaction recovery for prompt-too-long errors (#96)
  • register compaction todo preserver
  • add compaction todo preserver hook
  • avoid invented compaction constraints
  • ensure truncated result stays within maxLength limit
  • cascade cancel descendant tasks when parent session is deleted (#114)
  • update session-manager tests to use factory pattern
  • use character limit instead of sentence split for skill description (#358)
  • allow string values for commit_footer config (#919)
  • use ctx.directory instead of process.cwd() in tools for Desktop app support
  • normalize resolvedPath before startsWith check
  • expand ALLOWED_AGENTS to include all subagent-capable agents
  • boulder continuation now respects /stop-continuation guard
  • anchor .sisyphus path check to ctx.directory to prevent false positives
  • use platform-aware binary detection (where on Windows, which on Unix)
  • allow dash-prefixed arguments in CLI run command
  • don't fallback to system 'sg' command for ast-grep
  • allow dash-prefixed arguments in CLI run command
  • make model migration run only once by storing history in _migrations field
  • explicitly pass encoding/callback args through stdout.write wrapper
  • test: remove shadowed consoleErrorSpy declarations in on-complete-hook tests
  • address cubic 4/5 review issues
  • test: mock SDK and port-utils in integration test to prevent CI failure
  • clear race timeout after plugin loading settles
  • index: wrap hook creation with safeCreateHook + add defensive optional chaining (#1559)
  • config-handler: add timeout + error boundary around loadAllPluginComponents (#1559)
  • trim whitespace from tool names to prevent invalid tool calls
  • allow Prometheus to overwrite .sisyphus/*.md plan files
  • hooks: add defensive null check for matcher.hooks to prevent Windows crash (#441)
  • respect user-configured agent models over system defaults
  • respect user-configured agent models over system defaults
  • guard against undefined modelID in anthropic-effort hook

Refactoring

  • migration: split model and category helpers (#1561)
  • migration: extract agent and hook maps (#1561)
  • extract context window recovery hook
  • migrate delegate_task to task tool with metadata fixes

Documentation

  • add comprehensive local testing guide for acp-json-error branch

Other Changes

  • Merge pull request #1620 from potb/acp-json-error
  • Merge pull request #1621 from code-yeongyu/fix/814-mcp-config-both-paths
  • Merge pull request #1616 from code-yeongyu/fix/814-user-mcp-config
  • Merge pull request #1618 from code-yeongyu/fix/594-user-prompt-submit-fires-once
  • Merge pull request #1615 from code-yeongyu/fix/1563-browser-provider-gating
  • Merge pull request #1584 from code-yeongyu/fix/441-matcher-hooks-undefined
  • Merge pull request #1614 from code-yeongyu/fix/1501-ulw-plan-loop
  • Merge pull request #1613 from code-yeongyu/fix/1561-dead-migration
  • Merge pull request #1610 from code-yeongyu/fix/96-compaction-dedup-recovery
  • Merge pull request #1611 from code-yeongyu/fix/1481-1483-compaction
  • Merge pull request #1607 from code-yeongyu/fix/358-skill-description-truncation
  • Merge pull request #1608 from code-yeongyu/fix/114-cascade-cancel
  • Merge pull request #1606 from code-yeongyu/fix/658-tools-ctx-directory
  • Merge pull request #1605 from code-yeongyu/fix/919-commit-footer-v2
  • Merge pull request #1593 from code-yeongyu/fix/prometheus-plan-overwrite
  • Merge pull request #1604 from code-yeongyu/fix/957-allowed-agents-dynamic
  • Merge pull request #1594 from code-yeongyu/fix/boulder-stop-continuation
  • Merge pull request #1603 from code-yeongyu/fix/1269-windows-which-detection
  • Merge pull request #1601 from code-yeongyu/fix/899-cli-run-dash-args
  • Merge pull request #1602 from code-yeongyu/fix/1365-sg-cli-path-fallback
  • Merge pull request #1597 from code-yeongyu/fix/899-cli-run-dash-args
  • Merge pull request #1595 from code-yeongyu/fix/tool-name-whitespace
  • Merge pull request #1592 from code-yeongyu/fix/issue-1570-onetime-migration
  • Merge pull request #1590 from code-yeongyu/feat/run-cli-extensions
  • Merge pull request #1585 from code-yeongyu/fix/1559-crash-boundary
  • Revert "Merge pull request #1578 from code-yeongyu/fix/user-configured-model-override"
  • Merge pull request #1578 from code-yeongyu/fix/user-configured-model-override
  • Merge pull request #1564 from code-yeongyu/feat/anthropic-effort-hook
  • Merge pull request #1543 from code-yeongyu/feat/task-tool-refactor

Full Changelog: v3.2.4...v3.3.0

v3.2.4

06 Feb 12:06

Choose a tag to compare

What a wild day.

GPT 5.3 Codex and Claude Opus 4.6 dropped on the same day. That's not a coincidence — that's the universe telling us we're living through something historic. Two frontier model providers, shipping simultaneously. Monumental.

And we adopted both the same day they shipped.

108 files changed. +4,666/-4,625 lines. A same-day sweep from one end of the codebase to the other. When the frontier moves, we move with it.


Hephaestus: The Legitimate Craftsman Evolves 🔨

New mindset: "KEEP GOING. SOLVE PROBLEMS."

Autonomous recovery got smarter. Hephaestus now tries 3 different approaches before bothering you. Stuck on a bug? He'll pivot, retry, adapt — all on his own. This is what autonomous execution should feel like.

Plus: provider-based activation. Got OpenAI, Copilot, or OpenCode connected? Hephaestus is ready. No exact model matching gymnastics required.

Custom Skills: First-Class Citizens

User-installed skills now get HIGH PRIORITY treatment in prompts. No more blending in with builtins — they're clearly separated, emphasized, and respected. Your custom workflows matter.

Safety First: Write Guard

New hook blocks agents from silently overwriting existing files. The write tool now checks before clobbering. Peace of mind.


What's New

Models

  • Claude Opus 4.5 → 4.6, GPT 5.2 Codex → 5.3 Codex across 108 files
  • Auto-migration: MODEL_VERSION_MAP upgrades your configs on load automatically
  • Claude Opus 4.6 prioritized in anthropic fallback chains

Hephaestus

  • "KEEP GOING. SOLVE PROBLEMS." mindset upgrade
  • 3-approach-first recovery rule before escalating to user
  • Provider-based gating: activates by connectivity, not exact model match

Skills

  • Dynamic skill priority: user-installed skills emphasized with HIGH PRIORITY
  • formatCustomSkillsBlock() extracted as shared DRY function

Safety & UX

  • Write existing file guard: blocks overwrite of existing files
  • Auto port selection: finds next available when 4096 is busy
  • look_at image_data support: paste/clipboard images now work

Task System

  • Task global storage with ULTRAWORK_TASK_LIST_ID support

Fixes

  • Atlas continuation guard: stops infinite retry loops
  • Compaction model-agnostic: removed hardcoded Claude model prefix
  • Sisyphus-Junior: uses category model instead of UI-selected model
  • Plan agent: dynamic categories/skills (not hardcoded)
  • Schema sync: Zod schemas aligned
  • Regex special chars escaped in pattern matcher
  • Disabled tools actually enforced now
  • Glob/Grep uses process.cwd() correctly
  • Background agent abort handled gracefully
  • Custom skills env var restoration fixed
  • Provider cache handles both string[] and object[] formats
  • LSP Windows: uses Node.js child_process (avoid Bun segfault)
  • Boulder state agent tracking fixed
  • Model availability honors connected providers
  • Auto-update uses correct config dir
  • Duplicate fallback entries cleaned

Refactoring

  • Dead code removal: ollama-ndjson-parser.ts, plugin-state.ts, unused types
  • Schema build: z.toJSONSchemazodToJsonSchema
  • formatCustomSkillsBlock DRY extraction

Docs

  • AGENTS.md regenerated across all directories
  • Config/feature docs updated

This is what shipping looks like when the frontier moves. Two models, one day, immediate adoption.

LFG 🔥 ulw ulw


Full Changelog: v3.2.3...v3.2.4

v3.2.3

04 Feb 06:38

Choose a tag to compare

What's Changed

✨ Features

  • Multi-provider websearch support - Choose between Exa (default) and Tavily for web search (#1371 by @YanzheL)
  • Nested skill directories - Skills can now be organized in subdirectories for better organization (#1254 by @LeekJay)
  • Disabled skills support - Add disabledSkills config to selectively disable skills

🐛 Bug Fixes

Authentication & Server

  • Fix OpenCode Desktop server unauthorized error on subagent spawn (#1399 by @ualtinok, @boguan)
  • Add graceful fallback for server auth injection

Model & Provider

  • Prefer exact model ID match in fuzzyMatchModel - fixes wrong model selection (#1460)
  • Use supported variant for gemini-3-pro (#1463)
  • Avoid propertyNames in skill-mcp for Gemini compatibility (#1465)
  • Honor explicit category model over sisyphus-junior default

Skill Loader

  • Respect disabledSkills in async skill resolution (caching bug)
  • Deterministic collision handling for duplicate skill names (#1370 by @misyuari)

LSP & Tools

  • Prevent stale diagnostics by syncing didChange before fetching (#1280 by @Zacks-Zhang)
  • Fix overridden tools (glob, grep) path resolution for OpenCode Desktop

Agents & Hooks

  • Deduplicate settings paths to prevent double hook execution (#1297 by @khduy)
  • Honor tools overrides via permission migration (#1289 by @KonaEspresso94)
  • Block bash commands in Prometheus mode to respect permission config (#1449 by @kaizen403)
  • Abort session on model suggestion retry failure
  • Add read-only restrictions for Metis and Momus agents

Shell & Environment

  • Use detectShellType() instead of hardcoded 'unix' for cross-platform support (#1459)
  • Force unix export syntax for bash env prefix in non-interactive environments

CI/CD

  • Use regex variables for bash 5.2+ compatibility in changelog generation

🎨 Style

  • Update Hephaestus and Prometheus agent colors

📚 Documentation

  • Clarify Prometheus invocation workflow (#1466)
  • Instruct curl over WebFetch for installation (#1461)
  • Document websearch provider configuration
  • Fix broken TOC links in translated READMEs (#1384 by @devxoul)

🔧 Other

  • Respect user-configured agent variant in doctor command (#1464)
  • Lazy evaluation prevents crash when websearch disabled

Full Changelog: v3.2.2...v3.2.3

v3.2.2

03 Feb 08:01

Choose a tag to compare

v3.2.2

🚀 GPT-5.2 Prompt Optimization

  • Atlas, Sisyphus-Junior, Oracle: Model-based prompt routing with GPT-5.2 optimized prompts (XML structure, verbosity constraints, explicit decision criteria)

🧪 Experimental: Claude Code-style Task System

  • New Tools: TaskCreate, TaskGet, TaskList, TaskUpdate for structured task management
  • File-based Storage: Tasks stored in .sisyphus/tasks/ with Claude Code compatible schema
  • ⚠️ Important Limitation: This is experimental and does NOT sync with OpenCode's Todo UI. Enabling this will disable TodoWrite - todos won't appear in TUI. This is a known UX downgrade. We're exploring SDK integration solutions.
  • Enable: Set experimental.task_system: true in config

✨ Agent & Hook Improvements

  • Faster Exploration: grok-code-fast-1 as default explore agent model
  • Preemptive Compaction: Auto-summarizes session at 78% context usage (Anthropic models)
  • Agent Fallback: First-run without cache now works properly
  • CLI: Added default_run_agent config and OPENCODE_DEFAULT_AGENT env var

🐞 Bug Fixes

  • config: Plan agent no longer inherits Prometheus prompt on demote
  • background-cancel: Skip notification when user explicitly cancels tasks
  • delegate-task: Fixed sisyphus-junior model override precedence
  • prompts: Added missing run_in_background, load_skills params in examples

🛠 New Skills

  • github-pr-triage: Streaming PR analysis with background tasks
  • github-issue-triage: Streaming issue analysis

What's Changed

Features

  • delegate-task: add actionable TODO list template to plan agent prompt
  • auto-slash-command: add builtin commands support and improve part extraction
  • agents: add GPT-5.2 optimized prompt for sisyphus-junior
  • tasks-todowrite-disabler: improve error message with actionable workflow guidance
  • agents: add useTaskSystem flag for conditional todo/task discipline prompts
  • agents: add Todo Discipline section to Hephaestus prompt
  • task-system: add experimental task system with Claude Code spec alignment
  • agents: respect uiSelectedModel in Atlas model resolution
  • add agent fallback and preemptive-compaction restoration
  • agents: add grok-code-fast-1 as primary model for explore agent
  • skills: add streaming mode and todo tracking to triage skills
  • agents: restructure atlas agent into modular directory with model-based routing
  • task: add real-time single-task todo sync via OpenCode API
  • task: refactor to Claude Code style individual tools
  • cli: implement default agent priority in run command
  • config: add default_run_agent schema option
  • skills: add github-pr-triage skill and update github-issue-triage
  • config: disable todowrite/todoread tools when new_task_system_enabled

Bug Fixes

  • config: prevent plan agent from inheriting prometheus prompt on demote
  • background-cancel: skip notification when user explicitly cancels tasks
  • config-handler: preserve plan prompt when demoted
  • prometheus: enforce path constraints and atomic write protocol
  • prompts: add missing run_in_background and load_skills params to examples
  • delegate-task: honor sisyphus-junior model override precedence
  • honor agent variant overrides
  • task-tool: add task ID validation and improve lock acquisition safety

Refactoring

  • ultrawork: simplify workflow and apply parallel context gathering
  • config-handler: separate plan prompt into dedicated configuration
  • background-agent: optimize lifecycle and simplify tools
  • oracle: optimize prompt for GPT-5.2 with XML structure and verbosity constraints
  • prometheus: replace binary verification with layered agent-executed QA
  • task: update schema to Claude Code field names

Full Changelog: v3.2.1...v3.2.2

v3.2.1

01 Feb 12:29

Choose a tag to compare

Bug Fixes

  • background-agent: prevent concurrency slot leaks on task startup failures
  • cli: add -preview suffix for GitHub Copilot Gemini model names
  • ci: add shell: bash to retry action for Windows compatibility

v3.2.0 - Meet Hephaestus 🔨

01 Feb 10:55

Choose a tag to compare

3.2.0 — Meet Hephaestus 🔨

Highlights

🔥 Hephaestus: The Legitimate Craftsman Agent

Meet Hephaestus

In Greek mythology, Hephaestus was the god of forge, fire, metalworking, and craftsmanship—the divine blacksmith who crafted weapons for the gods.

Meet our new autonomous deep worker: Hephaestus (GPT 5.2 Codex Medium).

Why "Legitimate"? When Anthropic blocked third-party access citing ToS violations, the community started joking about "legitimate" usage. Hephaestus embraces this irony—he's the craftsman who builds things the right way.

Key Characteristics:

  • Goal-Oriented: Give him an objective, not a recipe. He determines the steps himself.
  • Explores Before Acting: Fires 2-5 parallel explore/librarian agents before writing a single line of code.
  • End-to-End Completion: Doesn't stop until the task is 100% done with evidence of verification.
  • Pattern Matching: Searches existing codebase to match your project's style—no AI slop.
  • Legitimate Precision: Crafts code like a master blacksmith—surgical, minimal, exactly what's needed.

Inspired by AmpCode's deep mode—autonomous problem-solving with thorough research before decisive action.


What's New

Features

  • agents: Add Hephaestus - autonomous deep worker agent (#1287)
  • babysitting: Make unstable-agent-babysitter always-on by default
  • todo-continuation: Show remaining tasks list in continuation prompt
  • doctor: Detect OpenCode desktop GUI installations on all platforms (#1352)
  • skill-mcp-manager: Enhance manager with improved test coverage
  • hooks: Add unstable-agent-babysitter hook for monitoring unstable background agents
  • background-agent: Add isUnstableAgent flag for unstable model detection
  • background_output: Add thinking_max_chars option
  • ci: Auto-generate structured release notes from conventional commits

Bug Fixes

  • Windows: Improve compatibility and fix event listener issues (#1102)
  • config: Properly handle prompt_append for Prometheus agent (#1271)
  • tmux: Send Ctrl+C before kill-pane and respawn-pane to prevent orphaned processes (#1329)
  • tests: Properly stub notifyParentSession and fix timer-based tests
  • non-interactive-env: Always inject env vars for git commands
  • background-agent: Abort session on task completion to prevent zombie attach processes
  • ci: Add retry logic for platform binary builds

Refactoring

  • background-agent: Show category in task completion notification
  • delegate-task: Improve session title format and add task_metadata block
  • background-agent: Optimize task timing and constants management
  • agents: Improve explore/librarian prompt examples with 4-part context structure
  • Major codebase cleanup - BDD comments, file splitting, bug fixes (#1350)

Documentation

  • background-task: Enhance background_output tool description with full_session parameter

Full Changelog: v3.1.11...v3.2.0

v3.1.11

01 Feb 06:05

Choose a tag to compare

What's Changed

Features

  • Oracle Safety Review: Added Oracle deployment safety review to /get-unpublished-changes command for pre-release analysis
  • Stop Continuation Command: New /stop-continuation command to halt all continuation mechanisms (ralph loop, todo continuation, boulder)
  • GLM-4.7 Thinking Mode: Added thinking mode support for GLM-4.7 model

Bug Fixes

  • Memory Leak Prevention: Track and cancel completion timers in background-agent to prevent memory leaks
  • Zombie Process Prevention: Proper process lifecycle management to prevent zombie processes
  • Windows LSP Fix: Added Bun version check for Windows LSP segfault bug
  • Session Recovery: Fixed /stop-continuation to be one-time only and respect session recovery
  • Start Work Fix: Always switch to atlas in /start-work to fix Prometheus sessions
  • Test Stability: Added missing ToolContext fields to test mocks and consistent _resetForTesting() usage
  • Dependencies: Regenerated bun.lock to restore vscode-jsonrpc dependency

Refactoring

  • Removed orphaned compaction-context-injector hook
  • Consolidated duplicate patterns and simplified codebase (binary-downloader, model-resolution-pipeline, session-injected-paths)

Documentation

  • Added github-issue-triage skill with exhaustive pagination enforcement

Full Changelog: v3.1.10...v3.1.11

v3.1.10

31 Jan 03:52

Choose a tag to compare

No notable changes

v3.1.9

30 Jan 14:16

Choose a tag to compare

Hi Kimi! 👋

This release welcomes Kimi K2.5 to the oh-my-opencode family!

Personal Note: I've been testing Kimi K2.5 as an Atlas orchestrator, and it's been performing better than Claude Sonnet 4.5 in my workflows. Seriously impressive for a free model.


What's New in 3.1.9

Features

  • Kimi For Coding provider: New provider option in installer for Sisyphus/Prometheus/Atlas fallback
  • kimi-k2.5 fallback chains: Added to sisyphus, atlas, prometheus, metis, multimodal-looker agents
  • deep category: Goal-oriented autonomous problem-solving with thorough research before action
  • artistry category: Creative, unconventional approaches beyond standard patterns
  • requiresModel field: Conditional category activation based on model availability
  • model-suggestion-retry: Auto-retry with provider-suggested model on not found errors
  • isModelAvailable helper: Fuzzy match model availability checking

Fixes

  • Model resolution now falls back to client API when cache is empty/unknown
  • Atlas properly respects fallbackChain and refreshes provider-models cache
  • Fixed gh api command for starring repo
  • Subagents no longer affected by UI model selection override
  • npm OIDC publish fixes

Improvements

  • ultrabrain category revamped with deep work mindset and code style requirements
  • Replaced console.log/warn/error with file-based log() for silent logging
  • Replaced big-pickle with glm-4.7-free for librarian fallback
  • Oracle fallback prioritizes gemini-3-pro over opus
  • momus opus fallback now includes variant max

Test Improvements

  • Optimized test suite with FakeTimers and race condition fixes