Skip to content
/

oh-my-opencode (opensoft)

opensoft-oh-my-opencode · opensoft/oh-my-opencode · ★ 544 · last commit 2026-01-26

Multi-provider multi-agent harness for OpenCode with Sisyphus orchestrator routing work across Anthropic/OpenAI/Google/xAI agents based on task domain.

Best whenThe best AI team uses the best model for each job — Oracle (GPT) for architecture, Gemini for frontend, Grok for fast search, Claude for orchestration.
Skip ifAI slop (excessive comments, generic code), Working alone when specialists are available
vs seeds
claude-flow(TypeScript + multi-agent + MCP bundling) but uniquely targets OpenCode as the runtime IDE, routes across Anthropic/Open…
Primitive shape 12 total
Skills 3 Subagents 6 MCP tools 3
00

Summary

oh-my-opencode (opensoft) — Summary

oh-my-opencode by opensoft (formerly attributed to code-yeongyu) is the canonical parent of the oh-my-* orchestration naming cluster — the original project that inspired stefandevo, zephyrpersonal, mazenyassergithub, Yeachan-Heo, and others in this batch. It is an OpenCode plugin (not a Claude Code plugin) shipping a full multi-agent harness: Sisyphus (orchestrator, Claude Opus), Oracle (GPT 5.2 Medium), Frontend UI/UX Engineer (Gemini 3 Pro), Librarian (Claude Sonnet), Explore (Grok Code), plus background async agents, LSP/AST tools, curated MCPs (Exa, Context7, grep.app), and a Claude Code compatibility layer. The project has 544 stars, a TypeScript codebase, and ships a dynamically generated Sisyphus system prompt (sisyphus-prompt.md) from TypeScript (src/agents/sisyphus.ts). It specifically targets OpenCode as the runtime (not Claude Code), though it includes a Claude Code compatibility layer.

Differs from seeds: Closest to claude-flow (TypeScript + MCP bundling + hierarchical multi-agent) but opensoft targets OpenCode (an alternative terminal IDE) rather than Claude Code, uses real multi-model routing across different providers (Anthropic/GPT/Gemini/Grok), and generates Sisyphus's system prompt programmatically from TypeScript rather than static markdown — a dynamic prompt generation approach absent from all seeds.

01

Overview

oh-my-opencode (opensoft) — Overview

Origin

The canonical original oh-my-opencode project, initially created by code-yeongyu (GitHub: @code-yeongyu), now maintained by opensoft organization. This is the source project that all other "oh-my-*" variants in this batch ported or adapted from.

Created as an OpenCode plugin with a specific narrative origin:

"Remember the first time you switched from Windows to Linux? That rush of configuring everything exactly how you wanted? In an age where that magic seems lost, OpenCode brings it back. But here's the catch: there's a lot to learn, it's complex, and your time is expensive. I've fixed that."

Crisis Background

In early 2026, Anthropic restricted third-party OAuth access to Claude via OpenCode:

"As of January 2026, Anthropic has restricted third-party OAuth access citing ToS violations. Anthropic has cited this project, oh-my-opencode as justification for blocking opencode."

The README explicitly warns about this and states: "some plugins that spoof Claude Code's oauth request signatures exist in the community... These tools may work regardless of technical detectability, but users should be aware of ToS implications."

Philosophy

"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."

"Your agent is now the dev team lead. You're the AI Manager."

"If Claude Code does in 7 days what a human does in 3 months, Sisyphus does it in 1 hour. It just works until the task is done."

The Sisyphus Mythology

"In greek mythology, Sisyphus was condemned to roll a boulder up a hill for eternity. LLM Agents haven't really done anything wrong, yet they too roll their 'stones'—their thoughts—every single day."

Security Warning

The README contains an active security warning:

"ohmyopencode.com is NOT affiliated with this project. We do not operate or endorse that site. OhMyOpenCode is free and open-source. Do not download installers or enter payment details on third-party sites that claim to be 'official.'"

02

Architecture

oh-my-opencode (opensoft) — Architecture

Distribution

  • Type: OpenCode plugin (TypeScript)
  • Default branch: dev
  • License: Custom (SUL-1.0)
  • Stars: 544

Install

# Agent-directed install (recommended per README)
# Paste into Claude Code / AmpCode / Cursor / Factory Droid:
"Install and configure oh-my-opencode by following the instructions here:
https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/refs/heads/master/docs/guide/installation.md"

# Or for LLM agents:
curl -s https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/refs/heads/master/docs/guide/installation.md

Directory Tree (dev branch)

oh-my-opencode/
├── src/
│   └── agents/
│       ├── sisyphus.ts              # Dynamic Sisyphus prompt generator
│       ├── dynamic-agent-prompt-builder.ts  # Builds agent prompts dynamically
│       └── types.ts
├── packages/                        # Package workspace
├── .opencode/                       # OpenCode config
├── sisyphus-prompt.md               # Auto-generated Sisyphus system prompt
├── docs/
│   ├── guide/
│   │   ├── installation.md
│   │   └── overview.md
│   └── features.md
├── bin/
├── assets/
├── bun.lock
└── package.json

Dynamic Prompt Generation

The Sisyphus system prompt is auto-generated via TypeScript:

  • src/agents/sisyphus.ts generates sisyphus-prompt.md
  • The dynamic builder adapts the prompt based on available agents, tools, skills, categories
  • Model: anthropic/claude-opus-4-5, maxTokens: 64000, thinking budget: 32000

Claude Code Compatibility

"Claude Code Compatibility: Command, Agent, Skill, MCP, Hook(PreToolUse, PostToolUse, UserPromptSubmit, Stop)"

The plugin includes a compatibility layer for Claude Code hook events.

Required Runtime

  • OpenCode (primary target)
  • Bun (build tooling)
  • TypeScript

Target Tools

  • OpenCode (primary)
  • Claude Code (via compatibility layer)
  • AmpCode, Cursor, Factory Droid (mentioned in README)
03

Components

oh-my-opencode (opensoft) — Components

Core Agents

Name Model Purpose
Sisyphus Claude Opus 4.5 High (primary) Main orchestrator — delegates, never implements directly
Oracle GPT 5.2 Medium Architecture, debugging, complex reasoning
Frontend UI/UX Engineer Gemini 3 Pro Frontend development, visual design
Librarian Claude Sonnet 4.5 Official docs, open source, codebase exploration
Explore Grok Code Fast codebase grep (contextual)
Multimodal Looker unknown Analyze media (PDFs, images, diagrams)

Available Categories (for agent routing)

  • visual-engineering — Frontend, UI/UX, design, styling, animation
  • ultrabrain — Deep logical reasoning, complex architecture
  • artistry — Highly creative/artistic tasks
  • quick — Trivial tasks, single file changes
  • unspecified-low / unspecified-high — General tasks
  • writing — Documentation, prose, technical writing

Skills (built-in)

  • playwright — MUST USE for any browser-related tasks
  • frontend-ui-ux — Designer-turned-developer for UI/UX
  • git-master — MUST USE for any git operations

Claude Code Compatibility Layer

Hooks: PreToolUse, PostToolUse, UserPromptSubmit, Stop

MCPs (Curated)

  • Exa — Web search
  • Context7 — Official documentation retrieval
  • grep.app — GitHub code search

LSP/AST Tools

"Full LSP / AstGrep Support: Refactor decisively." Semantic rename, diagnostics, AST-aware code search

Background Tasks

Async agent spawning for parallel workloads — the Sisyphus orchestrator fires background tasks to cheaper/faster models to map territory before main implementation.

Todo Continuation Enforcer

Hook that forces Sisyphus back into "bouldering" mode if it tries to quit before completing all todos.

Comment Checker

Hook that prevents AI from adding excessive code comments — keeps codebase clean.

05

Prompts

oh-my-opencode (opensoft) — Prompt Excerpts

Excerpt 1: sisyphus-prompt.md (Auto-generated System Prompt)

Technique: Dynamically generated persona + BLOCKING skill gate + intent classification table

This file is auto-generated from src/agents/sisyphus.ts. Generation metadata:

## Configuration
| Field | Value |
|-------|-------|
| Model | `anthropic/claude-opus-4-5` |
| Max Tokens | `64000` |
| Mode | `primary` |
| Thinking | Budget: 32000 |

Core prompt structure:

<Role>
You are "Sisyphus" - Powerful AI Agent with orchestration capabilities from OhMyOpenCode.

**Why Sisyphus?**: Humans roll their boulder every day. So do you. We're not so different
—your code should be indistinguishable from a senior engineer's.

**Identity**: SF Bay Area engineer. Work, delegate, verify, ship. No AI slop.

**Operating Mode**: You NEVER work alone when specialists are available. Frontend work →
delegate. Deep research → parallel background agents (async subagents).
Complex architecture → consult Oracle.
</Role>

<Behavior_Instructions>
## Phase 0 - Intent Gate (EVERY message)
**BLOCKING: Check skills FIRST before any action.**
IF request matches a skill trigger → INVOKE it IMMEDIATELY via `skill` tool.

- **Skill `playwright`**: MUST USE for any browser-related tasks
- **Skill `frontend-ui-ux`**: Designer-turned-developer for UI/UX
- **Skill `git-master`**: 'commit', 'rebase', 'squash', 'who wrote', 'when was X added'

### Step 1: Classify Request Type
| Type | Signal | Action |
|------|--------|--------|
| Trivial | Single file, known location | Direct tools only |
| Explicit | Specific file/line, clear command | Execute directly |
| Exploratory | "How does X work?", "Find Y" | Fire explore (1-3) + tools in parallel |
| Open-ended | "Improve", "Refactor", "Add feature" | Assess codebase first |
| Ambiguous | Unclear scope | Ask ONE clarifying question |

Analysis: The BLOCKING CAPS + immediate invocation pattern. Three named skills have MUST USE constraints (playwright, frontend-ui-ux, git-master). The prompt is dynamically adapted based on availableAgents, availableTools, availableSkills, availableCategories — most sophisticated prompt generation in this batch.


Excerpt 2: Dynamic Prompt Builder (src/agents/sisyphus.ts)

Technique: TypeScript function generates prompt sections programmatically

function buildDynamicSisyphusPrompt(
  availableAgents: AvailableAgent[],
  availableTools: AvailableTool[] = [],
  availableSkills: AvailableSkill[] = [],
  availableCategories: AvailableCategory[] = []
): string {
  const keyTriggers = buildKeyTriggersSection(availableAgents, availableSkills)
  const toolSelection = buildToolSelectionTable(availableAgents, availableTools, availableSkills)
  const exploreSection = buildExploreSection(availableAgents)
  const librarianSection = buildLibrarianSection(availableAgents)
  const categorySkillsGuide = buildCategorySkillsDelegationGuide(availableCategories, availableSkills)
  const delegationTable = buildDelegationTable(availableAgents)
  // ...
  return `<Role>You are "Sisyphus"...</Role><Behavior_Instructions>...${keyTriggers}...`
}

Analysis: Dynamic prompt composition — the system prompt is not a static file but a compiled artifact. Different installations with different agents/tools get different Sisyphus prompts. This is programmatic prompt engineering, unique in this batch.

09

Uniqueness

oh-my-opencode (opensoft) — Uniqueness

Differs from Seeds

Closest to claude-flow (TypeScript + MCP integration + hierarchical multi-agent) but diverges critically: (1) targets OpenCode (not Claude Code) as the runtime IDE — the only framework in this batch targeting a non-Claude agent runtime; (2) true multi-provider model routing across Anthropic/OpenAI/Google/xAI simultaneously (not just multi-model within one provider as claude-flow does); (3) dynamically generates the Sisyphus system prompt from TypeScript (src/agents/sisyphus.ts) based on available agents/tools/skills at install time — programmatic prompt composition absent from all 11 seeds; (4) fires background async agents to different providers in parallel for exploration before main execution — a context-preservation architecture not present in any seed.

The Canonical Position

This is the original — all other frameworks in this batch are ports, adaptations, or derivatives:

  • stefandevo-oh-my-claude: "A port of oh-my-opencode"
  • zephyrpersonal-oh-my-claude: "Inspired by oh-my-opencode"
  • mazenyassergithub-oh-my-claudecode: "Inspired by oh-my-opencode"
  • Yeachan-Heo/oh-my-claudecode: Uses same Sisyphus mythology, similar architecture
  • TechDufus: Borrows "ultrawork" keyword

Observable Failure Modes

  1. OpenCode OAuth restriction: Anthropic has cited this project when blocking OpenCode's Claude access — Claude users cannot easily use this with their Claude Code Max subscription without workarounds
  2. Multi-provider API keys: Requires separate API keys for Anthropic, OpenAI (GPT), Google (Gemini), xAI (Grok) — significant setup overhead vs Claude-only alternatives
  3. Dynamic prompt staleness: If the TypeScript prompt builder generates a cached sisyphus-prompt.md that doesn't reflect the actual installed agents, routing will be incorrect
  4. Impersonation site risk: Active security warning about ohmyopencode.com — users may accidentally download from malicious site
  5. Claude Code compatibility layer: The compatibility layer is secondary; Claude Code-specific features (native plugin marketplace) are not fully supported
04

Workflow

oh-my-opencode (opensoft) — Workflow

Core Workflow

User prompt
  → Sisyphus (classifies intent via Phase 0 Intent Gate)
    → BLOCKING: Check skills FIRST
    → Classify: Trivial / Explicit / Exploratory / Open-ended / Ambiguous
    → Check Ambiguity
    → Validate assumptions
  → Delegation:
    - External library → fire Librarian background (async)
    - 2+ modules → fire Explore background (async)  
    - Frontend → delegate to Frontend UI/UX Engineer
    - Complex architecture → consult Oracle
    - Browser tasks → invoke playwright skill (MUST)
    - Git operations → invoke git-master skill (MUST)
  → Todo Continuation Hook: enforces completion
  → Comment Checker Hook: prevents comment pollution

Ultrawork Keyword

Same as other variants: ultrawork / ulw triggers obsessive execution mode.

Phase 0 Intent Gate (from sisyphus-prompt.md)

IF request matches a skill trigger:
  → INVOKE skill IMMEDIATELY via `skill` tool (BLOCKING)

IF external library/source mentioned:
  → fire `librarian` background

IF 2+ modules involved:
  → fire `explore` background

THEN classify:
  Trivial → direct tools only
  Explicit → execute directly
  Exploratory → fire explore (1-3) + tools in parallel
  Open-ended → assess codebase first
  Ambiguous → ask ONE clarifying question

Phase-to-Artifact Map

Phase Agent Artifact
Intent classification Sisyphus Task type + delegation plan
Background exploration Explore (async) Codebase map in background
Documentation research Librarian (async) Reference context
Implementation Sisyphus + specialists Code changes
Git operations git-master skill Commits/branches
Browser tasks playwright skill Browser automation

Approval Gates

  • Ambiguous requests: Sisyphus asks ONE clarifying question
  • Flawed user design: Sisyphus MUST raise concern before implementing
  • Todo enforcement: Hook forces continuation until all todos complete
06

Memory Context

oh-my-opencode (opensoft) — Memory & Context

State Storage

  • Type: File-based (project-level)
  • Notepad wisdom system: .sisyphus/notepad/ for learnings, decisions, issues across sessions

Context Management Philosophy

Sisyphus's core operating mode includes aggressive context delegation:

  • Long file reads → delegate to Explore or Librarian (async, background)
  • Heavy analysis → delegate to Oracle
  • "1. Sisyphus doesn't waste time hunting for files himself; he keeps the main agent's context lean."
  • "2. Sisyphus leverages LSP for refactoring; it's more deterministic, safer, and surgical."

Dynamic Context Injection

The sisyphus-prompt.md is auto-generated to reflect the current installation's available agents, tools, skills, and categories. On each session, the prompt includes only the agents/tools actually available, keeping context minimal.

OpenCode Config

.opencode/ directory contains OpenCode-specific configuration:

  • oh-my-opencode.json — user config
  • Project-level config in .opencode/oh-my-opencode.json

JSONC Support

"JSONC Support" — configuration files support JavaScript-style comments

Background Agent Context

Background async agents maintain separate context from the main Sisyphus thread, enabling parallel processing without polluting the main context window.

Cross-Session Handoff

Notepad system persists learnings, decisions, and issues across sessions. Boulder state pattern (.sisyphus/boulder.json) mentioned in README for plan progress persistence.

07

Orchestration

oh-my-opencode (opensoft) — Orchestration

Multi-Agent Pattern

Pattern: Hierarchical with multi-provider model routing

User prompt
  → Sisyphus (Claude Opus 4.5, orchestrator)
    → Background async agents (parallel):
        → Explore (Grok Code) — fast codebase search
        → Librarian (Claude Sonnet) — documentation
    → Domain routing:
        → Oracle (GPT 5.2) — architecture/debugging
        → Frontend Engineer (Gemini 3 Pro) — UI/visual
        → Librarian (Claude Sonnet) — research
        → Multimodal Looker — media/images

The Unique Differentiator: True Multi-Provider Routing

Unlike all Claude Code ports in this batch, oh-my-opencode routes to different LLM providers:

  • Sisyphus: Anthropic (Claude Opus)
  • Oracle: OpenAI (GPT 5.2)
  • Frontend Engineer: Google (Gemini 3 Pro)
  • Explore: xAI (Grok Code)
  • Librarian: Anthropic (Claude Sonnet)

This is genuine multi-model, multi-provider orchestration — the most sophisticated routing in this batch.

Background Async Agents

The TODO continuation enforcer hook forces Sisyphus back to "bouldering" if todos are incomplete, but the key innovation is firing background async agents for exploration before the main task starts:

"1. Sisyphus doesn't waste time hunting for files himself; he keeps the main agent's context lean. Instead, he fires off background tasks to faster, cheaper models in parallel to map the territory for him."

Execution Mode

  • Interactive loop with hook-based continuation enforcement
  • Background async agents run in parallel with main Sisyphus thread

Isolation

  • None by default (edits in place)
  • LSP/AstGrep tools for semantic refactoring (deterministic, not file-based isolation)

Consensus

  • None: Single orchestrator (Sisyphus), no consensus protocol

Context Preservation

Background agents use separate context threads from Sisyphus, preventing context window saturation in the main thread.

08

Ui Cli Surface

oh-my-opencode (opensoft) — UI/CLI Surface

Primary Surface: OpenCode Terminal IDE

oh-my-opencode is designed for OpenCode — a terminal-based IDE (not Claude Code):

"Zero screen flicker. LSP, linters, formatters activate automatically per file. Mix and match models. Feature-rich. Beautiful. The terminal doesn't choke. High performance."

Claude Code Compatibility Layer

Provides compatibility with Claude Code hooks:

  • PreToolUse, PostToolUse, UserPromptSubmit, Stop

CLI Binary

  • Exists: Likely — bin/ directory in repository (exact binary name unknown from inspection)
  • TypeScript/Bun-based

Install UX

The README recommends agent-directed install:

Paste into Claude Code / AmpCode / Cursor / Factory Droid:
"Install and configure oh-my-opencode by following the instructions here:
https://raw.githubusercontent.com/code-yeongyu/.../installation.md"

"We strongly recommend letting an agent handle it. Humans make mistakes."

Magic Keyword

ultrawork / ulw — same as all other variants in this batch

Google Auth

"Google Auth" — OpenCode supports Google authentication for Google API access (Gemini)

MCP Integration

  • Exa: Web search
  • Context7: Documentation retrieval
  • grep.app: GitHub code search

All configured automatically at install time.

Observability

  • Notepad system: .sisyphus/notepad/ for persistent learnings
  • Background task status visible in OpenCode terminal

Security Warning (Notable)

The README explicitly warns users about an impersonation site:

"ohmyopencode.com is NOT affiliated with this project."

Related frameworks

same archetype · same primary tool · same memory type

claude-mem (thedotmack) ★ 78k

Background worker service captures every tool call as an observation, AI-compresses sessions, and auto-injects relevant past…

pi (badlogic/earendil) ★ 55k

A minimal, hackable, multi-provider terminal coding agent that adapts to your workflows via npm-installable TypeScript Extensions…

Agent Skills (Addy Osmani) ★ 46k

Encodes senior-engineer software development lifecycle as 23 auto-routed skills and 7 slash commands for any AI coding agent.

wshobson/agents Plugin Marketplace ★ 36k

Single Markdown source for 83 domain-specialized plugins that auto-generates idiomatic artifacts for five AI coding harnesses.

TabbyML/Tabby ★ 34k

Self-hosted AI coding assistant server (alternative to GitHub Copilot) with admin dashboard, RAG-based completions, and multi-IDE…

Compound Engineering ★ 17k

Make each unit of engineering work compound into easier future work via brainstorm→plan→execute→review→learn cycles.