* feat(background-agent): add ConcurrencyManager for model-based limits ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * fix(background-agent): set default concurrency to 5 ð€ Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(background-agent): support 0 as unlimited concurrency Setting concurrency to 0 means unlimited (Infinity). Works for defaultConcurrency, providerConcurrency, and modelConcurrency. ð€ Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(hooks): use auto flag for session resumption after compaction - executor.ts: Added `auto: true` to summarize body, removed subsequent prompt_async call - preemptive-compaction/index.ts: Added `auto: true` to summarize body, removed subsequent promptAsync call - executor.test.ts: Updated test expectation to include `auto: true` Instead of sending 'Continue' prompt after compaction, use SessionCompaction's `auto: true` feature which auto-resumes the session. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * refactor(agents): update sisyphus orchestrator Update Sisyphus agent orchestrator with latest changes. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * refactor(features): update background agent manager Update background agent manager with latest configuration changes. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * refactor(features): update init-deep template Update initialization template with latest configuration. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * refactor(hooks): update hook constants and configuration Update hook constants and configuration across agent-usage-reminder, keyword-detector, and claude-code-hooks. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * refactor(tools): remove background-task tool Remove background-task tool module completely: - src/tools/background-task/constants.ts - src/tools/background-task/index.ts - src/tools/background-task/tools.ts - src/tools/background-task/types.ts ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * refactor(tools): update tool exports and main plugin entry Update tool index exports and main plugin entry point after background-task tool removal. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(auth): update constants to match CLIProxyAPI (50min buffer, 2 endpoints) - Changed ANTIGRAVITY_TOKEN_REFRESH_BUFFER_MS from 60,000ms (1min) to 3,000,000ms (50min) - Removed autopush endpoint from ANTIGRAVITY_ENDPOINT_FALLBACKS (now 2 endpoints: daily â prod) - Added comprehensive test suite with 6 tests covering all updated constants - Updated comments to reflect CLIProxyAPI parity ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(auth): remove PKCE to match CLIProxyAPI Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * feat(auth): implement port 51121 with OS fallback Add port fallback logic to OAuth callback server: - Try port 51121 (ANTIGRAVITY_CALLBACK_PORT) first - Fallback to OS-assigned port on EADDRINUSE - Add redirectUri property to CallbackServerHandle - Return actual bound port in handle.port Add comprehensive port handling tests (5 new tests): - Should prefer port 51121 - Should return actual bound port - Should fallback when port occupied - Should cleanup and release port on close - Should provide redirect URI with actual port All 16 tests passing (11 existing + 5 new). ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * test(auth): add token expiry tests for 50-min buffer Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * feat(agents): add Prometheus system prompt and planner methodology Add prometheus-prompt.ts with comprehensive planner agent system prompt. Update plan-prompt.ts with streamlined Prometheus workflow including: - Context gathering via explore/librarian agents - Metis integration for AI slop guardrails - Structured plan output format ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(agents): add Metis plan consultant agent Add Metis agent for pre-planning analysis that identifies: - Hidden requirements and implicit constraints - AI failure points and common mistakes - Clarifying questions before planning begins ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(agents): add Momus plan reviewer agent Add Momus agent for rigorous plan review against: - Clarity and verifiability standards - Completeness checks - AI slop detection ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(agents): add Sisyphus-Junior focused executor agent Add Sisyphus-Junior agent for focused task execution: - Same discipline as Sisyphus, no delegation capability - Used for category-based task spawning via sisyphus_task tool ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(agents): add orchestrator-sisyphus agent Add orchestrator-sisyphus agent for complex workflow orchestration: - Manages multi-agent workflows - Coordinates between specialized agents - Handles start-work command execution ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(skill-loader): add skill-content resolver for agent skills Add resolveMultipleSkills() for resolving skill content to prepend to agent prompts. Includes test coverage for resolution logic. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(agents): add category and skills support to buildAgent Extend buildAgent() to support: - category: inherit model/temperature from DEFAULT_CATEGORIES - skills: prepend resolved skill content to agent prompt Includes comprehensive test coverage for new functionality. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(agents): register new agents in index and types - Export Metis, Momus, orchestrator-sisyphus in builtinAgents - Add new agent names to BuiltinAgentName type - Update AGENTS.md documentation with new agents ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(features): add boulder-state persistence Add boulder-state feature for persisting workflow state: - storage.ts: File I/O operations for state persistence - types.ts: State interfaces - Includes test coverage ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(skills): add frontend-ui-ux builtin skill Add frontend-ui-ux skill for designer-turned-developer UI work: - SKILL.md with comprehensive design principles - skills.ts updated with skill template ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(tools): add sisyphus_task tool for category-based delegation Add sisyphus_task tool supporting: - Category-based task delegation (visual, business-logic, etc.) - Direct agent targeting - Background execution with resume capability - DEFAULT_CATEGORIES configuration Includes test coverage. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(background-agent): add resume capability and model field - Add resume() method for continuing existing agent sessions - Add model field to BackgroundTask and LaunchInput types - Update launch() to pass model to session.prompt() - Comprehensive test coverage for resume functionality ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(hooks): add task-resume-info hook Add hook for injecting task resume information into tool outputs. Enables seamless continuation of background agent sessions. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(hooks): add prometheus-md-only write restriction hook Add hook that restricts Prometheus planner to writing only .md files in the .sisyphus/ directory. Prevents planners from implementing. Includes test coverage. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(hooks): add start-work hook for Sisyphus workflow Add hook for detecting /start-work command and triggering orchestrator-sisyphus agent for plan execution. Includes test coverage. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(hooks): add sisyphus-orchestrator hook Add hook for orchestrating Sisyphus agent workflows: - Coordinates task execution between agents - Manages workflow state persistence - Handles agent handoffs Includes comprehensive test coverage. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(hooks): export new hooks in index Export new hooks: - createPrometheusMdOnlyHook - createTaskResumeInfoHook - createStartWorkHook - createSisyphusOrchestratorHook ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(todo-enforcer): add skipAgents option and improve permission check - Add skipAgents option to skip continuation for specified agents - Default skip: Prometheus (Planner) - Improve tool permission check to handle 'allow'/'deny' string values - Add agent name detection from session messages ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(config): add categories, new agents and hooks to schema Update Zod schema with: - CategoryConfigSchema for task delegation categories - CategoriesConfigSchema for user category overrides - New agents: Metis (Plan Consultant) - New hooks: prometheus-md-only, start-work, sisyphus-orchestrator - New commands: start-work - Agent category and skills fields Includes schema test coverage. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(commands): add start-work command Add /start-work command for executing Prometheus plans: - start-work.ts: Command template for orchestrator-sisyphus - commands.ts: Register command with agent binding - types.ts: Add command name to type union ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * refactor(migration): add backup creation and category migration - Create timestamped backup before migration writes - Add migrateAgentConfigToCategory() for modelâcategory migration - Add shouldDeleteAgentConfig() for cleanup when matching defaults - Add Prometheus and Metis to agent name map - Comprehensive test coverage for new functionality ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(config-handler): add Sisyphus-Junior and orchestrator support - Add Sisyphus-Junior agent creation - Add orchestrator-sisyphus tool restrictions - Rename Planner-Sisyphus to Prometheus (Planner) - Use PROMETHEUS_SYSTEM_PROMPT and PROMETHEUS_PERMISSION ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(cli): add categories config for Antigravity auth Add category model overrides for Gemini Antigravity authentication: - visual: gemini-3-pro-high - artistry: gemini-3-pro-high - writing: gemini-3-pro-high ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * refactor(sisyphus): update to use sisyphus_task and add resume docs - Update example code from background_task to sisyphus_task - Add 'Resume Previous Agent' documentation section - Remove model name from Oracle section heading - Disable call_omo_agent tool for Sisyphus ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * refactor: update tool references from background_task to sisyphus_task Update all references across: - agent-usage-reminder: Update AGENT_TOOLS and REMINDER_MESSAGE - claude-code-hooks: Update comment - call-omo-agent: Update constants and tool restrictions - init-deep template: Update example code - tools/index.ts: Export sisyphus_task, remove background_task ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(hook-message-injector): add ToolPermission type support Add ToolPermission type union: boolean | 'allow' | 'deny' | 'ask' Update StoredMessage and related interfaces for new permission format. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(main): wire up new tools, hooks and agents Wire up in main plugin entry: - Import and create sisyphus_task tool - Import and wire taskResumeInfo, startWork, sisyphusOrchestrator hooks - Update tool restrictions from background_task to sisyphus_task - Pass userCategories to createSisyphusTask ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * docs: update documentation for Prometheus and new features Update documentation across all language versions: - Rename Planner-Sisyphus to Prometheus (Planner) - Add Metis (Plan Consultant) agent documentation - Add Categories section with usage examples - Add sisyphus_task tool documentation - Update AGENTS.md with new structure and complexity hotspots - Update src/tools/AGENTS.md with sisyphus_task category ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * build: regenerate schema.json with new types Update JSON schema with: - New agents: Prometheus (Planner), Metis (Plan Consultant) - New hooks: prometheus-md-only, start-work, sisyphus-orchestrator - New commands: start-work - New skills: frontend-ui-ux - CategoryConfigSchema for task delegation - Agent category and skills fields ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * skill * feat: add toast notifications for task execution - Display toast when background task starts in BackgroundManager - Display toast when sisyphus_task sync task starts - Wire up prometheus-md-only hook initialization in main plugin This provides user feedback in OpenCode TUI where task TUI is not visible. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(hooks): add read-only warning injection for Prometheus task delegation When Prometheus (Planner) spawns subagents via task tools (sisyphus_task, task, call_omo_agent), a system directive is injected into the prompt to ensure subagents understand they are in a planning consultation context and must NOT modify files. ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(hooks): add mandatory hands-on verification enforcement for orchestrated tasks - sisyphus-orchestrator: Add verification reminder with tool matrix (playwright/interactive_bash/curl) - start-work: Inject detailed verification workflow with deliverable-specific guidance ð€ Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) assistance * docs(agents): clarify oracle and metis agent descriptions emphasizing read-only consultation roles - Oracle: high-IQ reasoning specialist for debugging and architecture (read-only) - Metis: updated description to align with oracle's consultation-only model - Updated AGENTS.md with clarified agent responsibilities * docs(orchestrator): emphasize oracle as read-only consultation agent - Updated orchestrator-sisyphus agent descriptions - Updated sisyphus-prompt-builder to highlight oracle's read-only consultation role - Clarified that oracle provides high-IQ reasoning without write operations * docs(refactor,root): update oracle consultation model in feature templates and root docs - Updated refactor command template to emphasize oracle's read-only role - Updated root AGENTS.md with oracle agent description emphasizing high-IQ debugging and architecture consultation - Clarified oracle as non-write agent for design and debugging support * feat(features): add TaskToastManager for consolidated task notifications - Create task-toast-manager feature with singleton pattern - Show running task list (newest first) when new task starts - Track queued tasks status from ConcurrencyManager - Integrate with BackgroundManager and sisyphus-task tool ð€ Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) assistance * feat(hooks): add resume session_id to verification reminders for orchestrator subagent work When subagent work fails verification, show exact sisyphus_task(resume="...") command with session_id for immediate retry. Consolidates verification workflow across boulder and standalone modes. * refactor(hooks): remove duplicate verification enforcement from start-work hook Verification reminders are now centralized in sisyphus-orchestrator hook, eliminating redundant code in start-work. The orchestrator hook handles all verification messaging across both boulder and standalone modes. * test(hooks): update prometheus-md-only test assertions and formatting Updated test structure and assertions to match current output format. Improved test clarity while maintaining complete coverage of markdown validation and write restriction behavior. * orchestrator * feat(skills): add git-master skill for atomic commits and history management - Add comprehensive git-master skill for commit, rebase, and history operations - Implements atomic commit strategy with multi-file splitting rules - Includes style detection, branch analysis, and history search capabilities - Provides three modes: COMMIT, REBASE, HISTORY_SEARCH ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * docs(agents): add pre-delegation planning section to Sisyphus prompt - Add SISYPHUS_PRE_DELEGATION_PLANNING section with mandatory declaration rules - Implements 3-step decision tree: Identify â Select â Declare - Forces explicit category/agent/skill declaration before every sisyphus_task call - Includes mandatory 4-part format: Category/Agent, Reason, Skills, Expected Outcome - Provides examples (CORRECT vs WRONG) and enforcement rules - Follows prompt engineering best practices: Clear, CoT, Structured, Examples ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * refactor(tools): rename agent parameter to subagent_type in sisyphus_task - Update parameter name from 'agent' to 'subagent_type' for consistency with call_omo_agent - Update all references and error messages - Remove deprecated 'agent' field from SisyphusTaskArgs interface - Update git-master skill documentation to reflect parameter name change ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(agents): change orchestrator-sisyphus default model to claude-sonnet-4-5 - Update orchestrator-sisyphus model from opus-4-5 to sonnet-4-5 for better cost efficiency - Keep Prometheus using opus-4-5 for planning tasks ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * refactor(config): make Prometheus model independent from plan agent config - Prometheus no longer inherits model from plan agent configuration - Fallback chain: session default model -> claude-opus-4-5 - Removes coupling between Prometheus and legacy plan agent settings ð€ GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * fix(momus): allow system directives in input validation System directives (XML tags like <system-reminder>) are automatically injected and should be ignored during input validation. Only reject when there's actual user text besides the file path. ð€ Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(prometheus): enhance high accuracy mode with mandatory Momus loop When user requests high accuracy: - Momus review loop is now mandatory until 'OKAY' - No excuses allowed - must fix ALL issues - No maximum retry limit - keep looping until approved - Added clear explanation of what 'OKAY' means ð€ Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(prometheus): enhance reference section with detailed guidance References now include: - Pattern references (existing code to follow) - API/Type references (contracts to implement) - Test references (testing patterns) - Documentation references (specs and requirements) - External references (libraries and frameworks) - Explanation of WHY each reference matters The executor has no interview context - references are their only guide. ð€ Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(git-master): add configurable commit footer and co-author options Add git_master config with commit_footer and include_co_authored_by flags. Users can disable Sisyphus attribution in commits via oh-my-opencode.json. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * feat(hooks): add single-task directive and system-reminder tags to orchestrator Inject SINGLE_TASK_DIRECTIVE when orchestrator calls sisyphus_task to enforce atomic task delegation. Wrap verification reminders in <system-reminder> tags for better LLM attention. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * refactor: use ContextCollector for hook injection and remove unused background tools Split changes: - Replace injectHookMessage with ContextCollector.register() pattern for improved hook content injection - Remove unused background task tools infrastructure (createBackgroundOutput, createBackgroundCancel) ð€ Generated with assistance of OhMyOpenCode (https://github.com/code-yeongyu/oh-my-opencode) * chore(context-injector): add debug logging for context injection tracing Add DEBUG log statements to trace context injection flow: - Log message transform hook invocations - Log sessionID extraction from message info - Log hasPending checks for context collector - Log hook content registration to contextCollector ð€ Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) assistance * fix(context-injector): prepend to user message instead of separate synthetic message - Change from creating separate synthetic user message to prepending context directly to last user message's text part - Separate synthetic messages were ignored by model (treated as previous turn) - Prepending to clone ensures: UI shows original, model receives prepended content - Update tests to reflect new behavior * feat(prometheus): enforce mandatory todo registration on plan generation trigger * fix(sisyphus-task): add proper error handling for sync mode and implement BackgroundManager.resume() - Add try-catch for session.prompt() in sync mode with detailed error messages - Sort assistant messages by time to get the most recent response - Add 'No assistant response found' error handling - Implement BackgroundManager.resume() method for task resumption - Fix ConcurrencyManager type mismatch (model â concurrencyKey) * docs(sisyphus-task): clarify resume usage with session_id and add when-to-use guidance - Fix terminology: 'Task ID' â 'Session ID' in resume parameter docs - Add clear 'WHEN TO USE resume' section with concrete scenarios - Add example usage pattern in Sisyphus agent prompt - Emphasize token savings and context preservation benefits * fix(agents): block task/sisyphus_task/call_omo_agent from explore and librarian Exploration agents should not spawn other agents - they are leaf nodes in the agent hierarchy for codebase search only. * refactor(oracle): change default model from GPT-5.2 to Claude Opus 4.5 * feat(oracle): change default model to claude-opus-4-5 * fix(sisyphus-orchestrator): check boulder session_ids before filtering sessions Bug: continuation was not triggered even when boulder.json existed with session_ids because the session filter ran BEFORE reading boulder state. Fix: Read boulder state first, then include boulder sessions in the allowed sessions for continuation. * feat(task-toast): display skills and concurrency info in toast - Add skills field to TrackedTask and LaunchInput types - Show skills in task list message as [skill1, skill2] - Add concurrency slot info [running/limit] in Running header - Pass skills from sisyphus_task to toast manager (sync & background) - Add unit tests for new toast features * refactor(categories): rename high-iq to ultrabrain * feat(sisyphus-task): add skillContent support to background agent launching - Add optional skillContent field to LaunchInput type - Implement buildSystemContent utility to combine skill and category prompts - Update BackgroundManager to pass skillContent as system parameter - Add comprehensive tests for skillContent optionality and buildSystemContent logic ð€ Generated with assistance of oh-my-opencode * Revert "refactor(tools): remove background-task tool" This reverts commit 6dbc4c095badd400e024510554a42a0dc018ae42. * refactor(sisyphus-task): rename background to run_in_background * fix(oracle): use gpt-5.2 as default model * test(sisyphus-task): add resume with background parameter tests * feat(start-work): auto-select single incomplete plan and use system-reminder format - Auto-select when only one incomplete plan exists among multiple - Wrap multiple plans message in <system-reminder> tag - Change prompt to 'ask user' style for agent guidance - Add 'All Plans Complete' state handling * feat(sisyphus-task): make skills parameter required - Add validation for skills parameter (must be provided, use [] if empty) - Update schema to remove .optional() - Update type definition to make skills non-optional - Fix existing tests to include skills parameter * fix: prevent session model change when sending notifications - background-agent: use only parentModel, remove prevMessage fallback - todo-continuation: don't pass model to preserve session's lastModel - Remove unused imports (findNearestMessageWithFields, fs, path) Root cause: session.prompt with model param changes session's lastModel * fix(sisyphus-orchestrator): register handler in event loop for boulder continuation * fix(sisyphus_task): use promptAsync for sync mode to preserve main session - session.prompt() changes the active session, causing UI model switch - Switch to promptAsync + polling to avoid main session state change - Matches background-agent pattern for consistency * fix(sisyphus-orchestrator): only trigger boulder continuation for orchestrator-sisyphus agent * feat(background-agent): add parentAgent tracking to preserve agent context in background tasks - Add parentAgent field to BackgroundTask, LaunchInput, and ResumeInput interfaces - Pass parentAgent through background task manager to preserve agent identity - Update sisyphus-orchestrator to set orchestrator-sisyphus agent context - Add session tracking for background agents to prevent context loss - Propagate agent context in background-task and sisyphus-task tools This ensures background/subagent spawned tasks maintain proper agent context for notifications and continuity. ð€ Generated with assistance of oh-my-opencode * fix(antigravity): sync plugin.ts with PKCE-removed oauth.ts API Remove decodeState import and update OAuth flow to use simple state string comparison for CSRF protection instead of PKCE verifier. Update exchangeCode calls to match new signature (code, redirectUri, clientId, clientSecret). * fix(hook-message-injector): preserve agent info with two-pass message lookup findNearestMessageWithFields now has a fallback pass that returns messages with ANY useful field (agent OR model) instead of requiring ALL fields. This prevents parentAgent from being lost when stored messages don't have complete model info. * fix(sisyphus-task): use SDK session.messages API for parent agent lookup Background task notifications were showing 'build' agent instead of the actual parent agent (e.g., 'Sisyphus'). The hook-injected message storage only contains limited info; the actual agent name is in the SDK session. Changes: - Add getParentAgentFromSdk() to query SDK messages API - Look up agent from SDK first, fallback to hook-injected messages - Ensures background tasks correctly preserve parent agent context * fix(sisyphus-task): use ctx.agent directly for parentAgent The tool context already provides the agent name via ctx.agent. The previous SDK session.messages lookup was completely wrong - SDK messages don't store agent info per message. Removes useless getParentAgentFromSdk function. * feat(prometheus-md-only): allow .md files anywhere, only block code files Prometheus (Planner) can now write .md files anywhere, not just .sisyphus/. Still blocks non-.md files (code) to enforce read-only planning for code. This allows planners to write commentary and analysis in markdown format. * Revert "feat(prometheus-md-only): allow .md files anywhere, only block code files" This reverts commit c600111597591e1862696ee0b92051e587aa1a6b. * fix(momus): accept bracket-style system directives in input validation Momus was rejecting inputs with bracket-style directives like [analyze-mode] and [SYSTEM DIRECTIVE...] because it only recognized XML-style tags. Now accepts: - XML tags: <system-reminder>, <context>, etc. - Bracket blocks: [analyze-mode], [SYSTEM DIRECTIVE...], [SYSTEM REMINDER...], etc. * fix(sisyphus-orchestrator): inject delegation warning before Write/Edit outside .sisyphus - Add ORCHESTRATOR_DELEGATION_REQUIRED strong warning in tool.execute.before - Fix tool.execute.after filePath detection using pendingFilePaths Map - before stores filePath by callID, after retrieves and deletes it - Fixes bug where output.metadata.filePath was undefined * docs: add orchestration, category-skill, and CLI guides * fix(cli): correct category names in Antigravity migration (visual â visual-engineering) * fix(sisyphus-task): prevent infinite polling when session removed from status * fix(tests): update outdated test expectations - constants.test.ts: Update endpoint count (2â3) and token buffer (50minâ60sec) - token.test.ts: Update expiry tests to use 60-second buffer - sisyphus-orchestrator: Add fallback to output.metadata.filePath when callID missing --------- Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
68 KiB
Note
ãç§ã¯ãšãŒãžã§ã³ããçæããã³ãŒããšäººéãæžããã³ãŒããåºå¥ã§ããªãããããã¯ããã«å€ãã®ããšãéæã§ããäžçãäœãããœãããŠã§ã¢é©åœãèµ·ããããšãç®æããŠããŸããç§ã¯ãã®æ ã«å人çãªæéãæ ç±ããããŠè³éãæ³šã蟌ãã§ããŸããããããããããããç¶ããŸããã
ãªãŒã±ã¹ãã¬ãŒã¿ãŒãæ¥ãŸããä»é±äžã«ãXã§éç¥ãåãåã
äžç·ã«æ©ã¿ãŸãããïŒ
Discordã³ãã¥ããã£ã«åå ããŠãã³ã³ããªãã¥ãŒã¿ãŒã oh-my-opencode仲éãšã€ãªãããŸããããoh-my-opencodeã«é¢ãããã¥ãŒã¹ã¯ç§ã®Xã¢ã«ãŠã³ãã§æçš¿ããŠããŸããããç¡å®ã®çœªã§åçµãããããã
@justsisyphusã代ããã«æŽæ°ãæçš¿ããŠããŸããGitHubã§@code-yeongyuããã©ããŒããŠãä»ã®ãããžã§ã¯ãããã§ãã¯ããŠãã ããã
oh-my-opencodeãã€ã³ã¹ããŒã«ããŠãããŒãã³ã°ãããã®ããã«ã³ãŒãã£ã³ã°ããŸããããããã¯ã°ã©ãŠã³ãã§ãšãŒãžã§ã³ããèµ°ãããoracleãlibrarianãfrontend engineer ã®ãããªå°éãšãŒãžã§ã³ããåŒã³åºããŠãã ããã䞹粟蟌ããŠäœããã LSP/AST ããŒã«ãå³éžããã MCPããããŠå®å šãª Claude Code äºæã¬ã€ã€ãŒãããã£ãäžè¡ã§æã«å ¥ããŸãããã
ä»ããå§ããŸããããChatGPTãClaudeãGemini ã®ãµãã¹ã¯ãªãã·ã§ã³ã§äœ¿ããŸãã
ãŠãŒã¶ãŒã¬ãã¥ãŒ
"Cursorã®ãµãã¹ã¯ãªãã·ã§ã³ãè§£çŽããŸããããªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã§ä¿¡ããããªãããšãèµ·ããŠããŸãã" - Arthur Guiot
"人éã3ã¶æãããä»äºãClaude Codeã7æ¥ã§ãããªããSisyphusã¯1æéã§ãããŸããã¿ã¹ã¯ãå®äºãããŸã§ãã åãç¶ãããIt is a discipline agent." â B, Quant Researcher
"Oh My Opencodeã䜿ã£ãŠããã£ã1æ¥ã§8000åã®eslintèŠåãè§£æ¶ããŸãã" â Jacob Ferrari
"Ohmyopencodeãšralph loopã䜿ã£ãŠãäžæ©ã§45,000è¡ã®tauriã¢ããªãSaaSãŠã§ãã¢ããªã«å€æããŸãããã€ã³ã¿ãã¥ãŒããã³ããããå§ããŠã質åã«å¯Ÿããè©äŸ¡ãšæšå¥šãæ±ããŸãããäœæ¥ããæ§åãèŠãŠããã®ã¯é©ãã§ããããæèµ·ãããã»ãŒå®æãããŠã§ããµã€ãããããŸããïŒ" - James Hargis
"oh-my-opencodeã䜿ã£ãŠãã ãããããæ»ããŸããã" â d0t3ch
"äœã©ããããã®ãããŸãèšèªåã§ããŠãªããã©ãéçºäœéšãç°æ¬¡å ã«äžãã£ãã" - è硯:ããããã
"ä»é±æ«ã¯open codeãoh my opencodeãsupermemoryã§ãã€ã³ã¯ã©ãã/ãœãŠã«ã©ã€ã¯ãªäœããäœãå®éšãããŠããŸãã" "æŒé£åŸã®æ£æ©ã«è¡ãéã«ããããã¿ã¢ãã¡ãŒã·ã§ã³ã远å ããããé Œã¿ãŸããã[åç»]" - MagiMetal
"ãããã³ã¢ã«åãå ¥ããŠåœŒãæ¡çšãã¹ãã§ããããžã§ãæ¬åœã«ãæ¬åœã«ãæ¬åœã«è¯ãã§ã" â Henning Kilset
"@yeon_gyu_kimã説åŸã§ãããªãéãã¹ãã§ãã圌ã¯opencodeã«é©åœãèµ·ãããŸãã" â mysticaltech
"Oh My OpenCode Is Actually Insane" - YouTube - Darren Builds AI
ç®æ¬¡
- Oh My OpenCode
- ãã® Readme ã¯èªãŸãªããŠããã§ã
- ã€ã³ã¹ããŒã«
- 人éã®æ¹ãž
- LLM ãšãŒãžã§ã³ãã®æ¹ãž
- ã¹ããã 0: ãµãã¹ã¯ãªãã·ã§ã³æ å ±ã確èª
- ã¹ããã 1: OpenCode ã€ã³ã¹ããŒã«ç¢ºèª
- ã¹ããã 2: ã€ã³ã¹ããŒã©ãŒãå®è¡
- ã¹ããã 3: èšå®ç¢ºèª
- ã¹ããã 4: èªèšŒæ å ±ã®èšå®
- â ïž æ³šæ
- ã»ããã¢ããã®ç¢ºèª
- ãŠãŒã¶ãŒã«ãããã§ãšãããããŸãïŒðããšäŒãã
- è€éãããŸããïŒ
- ã¢ã³ã€ã³ã¹ããŒã«
- æ©èœ
- Agents: ããªãã®æ°ããããŒã ã¡ã€ã
- ããã¯ã°ã©ãŠã³ããšãŒãžã§ã³ã: æ¬åœã®ããŒã ã®ããã«åã
- ããŒã«: ååã«ã¯ãã£ãšè¯ãéå ·ã
- Claude Code äºææ§: ããã° Claude Codeããããã OpenCode
- ãšãŒãžã§ã³ãã®ããã ãã§ãªããããªãã®ããã«
- èšå®
- äœè ã®ããŒã
- 泚æ
Oh My OpenCode
oMoMoMoMoMo···
Claude Code ã¯çŽ æŽãããã§ãããã ã§ããããããªããããã«ãŒãªããOpenCode ãšæã«èœã¡ãããšã«ãªãã§ãããã ä»ããå§ããŸããããChatGPTãClaudeãGemini ã®ãµãã¹ã¯ãªãã·ã§ã³ã§ããã«äœ¿ããŸãã
- ç¡éã«æ¡åŒµå¯èœã§ãç¡éã«ã«ã¹ã¿ãã€ãºå¯èœã§ãã
- ç»é¢ã®ãã©ã€ãïŒããªãã«ãŒïŒããããŸããã
- ç·šéãããã¡ã€ã«ã«åãã㊠LSPãLinterãFormatter ãèªåçã«æå¹åããããã¹ãŠèª¿æŽå¯èœã§ãã
- è€æ°ã®ã¢ãã«ãçµã¿åãããŠäœ¿çšã§ããçšéã«å¿ããŠãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã§ããŸãã
- æ©èœãè±å¯ã§ãçŸãããã¿ãŒããã«ãæç»ã«èŠããããšã¯ãããŸãããé«ããã©ãŒãã³ã¹ã§ãã
Windows ãã Linux ã«åããŠä¹ãæããæã®ããšãèªåã®æãéãã«èšå®ããŠè奮ãããã®æèŠãèŠããŠããŸããïŒ ãããªéæ³ã倱ããããã®ãããªä»ã®æä»£ã«ãOpenCode ã¯ãã®æèŠãåãæ»ããŠãããŸãã ã³ãŒãã£ã³ã°ãšã³ã³ãã¥ãŒã¿ãæããããªãã«ãšã£ãŠãOpenCode ã¯ãŸãã«ãWindows ã®åŸã® Linuxãã®ãããªç¬éã«ãªãã¯ãã§ãã
ãããåé¡ã¯ãåŠã¶ã¹ãããšãå€ãããããšãè€éã§ããããšããããŠããªãã®æéã¯é«äŸ¡ã ãšããããšã§ãã
ç§ããã®åé¡ã解決ããŸããã ããªããããã«ãŒã§ãªããŠãæ§ããŸãããæ°åã®æè³ã§ãã¹ãã«ãšçç£æ§ãäœåã«ãããŒã¹ãããŠãã ããã ãã®ããã¥ã¡ã³ãããšãŒãžã§ã³ãã«æž¡ããŠãã»ããã¢ãããä»»ããŸãããã
ãã® Readme ã¯èªãŸãªããŠããã§ã
ãšãŒãžã§ã³ãã®æä»£ã§ããã
- ãã ãã®ãªã³ã¯ã Claude Code / AmpCode / Factory Droid / Cursor ã«è²Œãä»ããŠã説æãæ±ããŠãã ããã
- ãªããããè¯ãã®ããåãªããã€ã©ãŒãã¬ãŒãã§ã¯ãªãã®ããå ·äœçã«äœãè¯ããªãã®ãèããŠã¿ãŠãã ããã
- ããããªãã LLM ãšãŒãžã§ã³ããªãããã®ãããžã§ã¯ãã«ãã£ãŠä»ããäœãå¯èœã«ãªãã®ãããŠãŒã¶ãŒã«èª¬æããŠãã ããã
ðª éæ³ã®èšèïŒultrawork
ããå
šéšèªã¿ãããªãïŒããã³ããã« ultraworkïŒãŸã㯠ulwïŒãå
¥ããã ãã§OKã
ããã ãã§ããç§ãã¡ãæäŸãããã¹ãŠã®æ©èœãéæ³ã®ããã«åäœããŸãâ䞊åãšãŒãžã§ã³ããããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãæ·±ãæ¢çŽ¢ããããŠå®äºãããŸã§æ¢ãŸããªãå®è¡ããšãŒãžã§ã³ããèªåçã«ãã¹ãŠãåŠçããŸãã
èªã¿ããæ¹ã®ããã«ïŒã·ãžãã©ã¹ã«äŒã
ç¥è©±ã®äžã®ã·ãžãã©ã¹ã¯ãç¥ã ãæ¬ºãã眪ãšããŠãæ°žé ã«å²©ã転ããç¶ããªããã°ãªããŸããã§ãããLLMãšãŒãžã§ã³ããã¡ã¯ç¹ã«æªãããšãããããã§ã¯ãããŸããããæ¯æ¥ãã®é ïŒæèïŒããã«å転ãããŠããŸãã ç§ã®äººçãããã§ããæ¯ãè¿ã£ãŠã¿ãã°ãç§ãã¡äººéãšäœãå€ãããããŸããã ã¯ãïŒLLMãšãŒãžã§ã³ããã¡ã¯ç§ãã¡ãšå€ãããŸãããåªããããŒã«ãšæé«ã®ä»²éãããã°ã圌ããç§ãã¡ãšåããããåªããã³ãŒããæžããç«æŽŸã«ä»äºãããªãããšãã§ããŸãã
ç§ãã¡ã®ã¡ã€ã³ãšãŒãžã§ã³ããSisyphusïŒOpus 4.5 HighïŒã玹ä»ããŸãã以äžã¯ãã·ãžãã©ã¹ã岩ã転ããããã«äœ¿çšããããŒã«ã§ãã
以äžã®å 容ã¯ãã¹ãŠã«ã¹ã¿ãã€ãºå¯èœã§ããå¿ èŠãªãã®ã ãã䜿ã£ãŠãã ãããããã©ã«ãã§ã¯ãã¹ãŠã®æ©èœãæå¹ã«ãªã£ãŠããŸããäœãããªããŠã倧äžå€«ã§ãã
- ã·ãžãã©ã¹ã®ããŒã ã¡ã€ã (Curated Agents)
- Oracle: èšèšããããã° (GPT 5.2 Medium)
- Frontend UI/UX Engineer: ããã³ããšã³ãéçº (Gemini 3 Pro)
- Librarian: å ¬åŒããã¥ã¡ã³ãããªãŒãã³ãœãŒã¹å®è£ ãã³ãŒãããŒã¹æ¢çŽ¢ (Claude Sonnet 4.5)
- Explore: è¶ é«éã³ãŒãããŒã¹æ¢çŽ¢ (Contextual Grep) (Grok Code)
- Full LSP / AstGrep Support: 決å®çã«ãªãã¡ã¯ã¿ãªã³ã°ããŸãããã
- Todo Continuation Enforcer: éäžã§è«Šããããç¶è¡ã匷å¶ããŸãããããã·ãžãã©ã¹ã«å²©ã転ããç¶ããããç§èš£ã§ãã
- Comment Checker: AIãéå°ãªã³ã¡ã³ããä»ããªãããã«ããŸããã·ãžãã©ã¹ãçæããã³ãŒãã¯ã人éãæžãããã®ãšåºå¥ãã€ããªãã¹ãã§ãã
- Claude Code Compatibility: Command, Agent, Skill, MCP, Hook(PreToolUse, PostToolUse, UserPromptSubmit, Stop)
- Curated MCPs:
- Exa (Web Search)
- Context7 (Official Documentation)
- Grep.app (GitHub Code Search)
- Interactive Terminal Supported - Tmux Integration
- Async Agents
- ...
ã€ã³ã¹ããŒã«ããã ãã§ã
ã€ã³ã¹ããŒã«ããã ãã§ããšãŒãžã§ã³ãã¯ä»¥äžã®ãããªã¯ãŒã¯ãããŒã§åããããã«ãªããŸãïŒ
- Sisyphusã¯èªåèªèº«ã§ãã¡ã€ã«ãæ¢ãåããããªæéã®ç¡é§ã¯ããŸãããã¡ã€ã³ãšãŒãžã§ã³ãã®ã³ã³ããã¹ãã軜éã«ä¿ã€ãããããé«éã§å®äŸ¡ãªã¢ãã«ãžäžŠåã§ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãé£ã°ããèªèº«ã®ä»£ããã«é åã®èª¿æ»ãå®äºãããŸãã
- Sisyphusã¯ãªãã¡ã¯ã¿ãªã³ã°ã«LSPãæŽ»çšããŸãããã®æ¹ã確å®ã§ãå®å šããã€ç確ã ããã§ãã
- UIã«é¢ããéãäœæ¥ãå¿ èŠãªå ŽåãSisyphusã¯ããã³ããšã³ãã®ã¿ã¹ã¯ãGemini 3 Proã«çŽæ¥ããªã²ãŒãããŸãã
- ããSisyphusãã«ãŒãã«é¥ã£ããå£ã«ã¶ã€ãã£ããããŠããç¡é§ã«æ©ã¿ç¶ããããšã¯ãããŸãããé«IQãªæŠç¥çããã¯ã¢ãããšããŠGPT 5.2ãåŒã³åºããŸãã
- è€éãªãªãŒãã³ãœãŒã¹ãã¬ãŒã ã¯ãŒã¯ãæ±ã£ãŠããŸããïŒSisyphusã¯ãµããšãŒãžã§ã³ããçæããçã®ãœãŒã¹ã³ãŒããããã¥ã¡ã³ãããªã¢ã«ã¿ã€ã ã§æ¶åããŸãã圌ã¯å®å šãªã³ã³ããã¹ãèªèãæã£ãŠåäœããŸãã
- Sisyphusãã³ã¡ã³ãã«è§Šãããšãããã®ååšæçŸ©ã蚌æãããããããªãã°åé€ããŸããããªãã®ã³ãŒãããŒã¹ãåžžã«ã¯ãªãŒã³ã«ä¿ã¡ãŸãã
- Sisyphusã¯èªèº«ã®TODOãªã¹ãã«çžãããŠããŸããããå§ããããšãçµããããããªããã°ãã·ã¹ãã ã¯åœŒã匷å¶çã«ãboulderingãã¢ãŒãã«æ»ããŸããããªãã®ã¿ã¹ã¯ã¯ãäœãããããšå®äºããŸãã
- æ£çŽãããã¥ã¡ã³ããªããŠèªãå¿ èŠã¯ãããŸããããã ããã³ãããæžããŠãã ããããultraworkããšããããŒã¯ãŒããå«ããã ãã§ååã§ããSisyphusãæ§é ãåæããã³ã³ããã¹ããéããå€éšã®ãœãŒã¹ã³ãŒããŸã§æãäžããä»äºã100%å®äºãããŸã§boulderingãç¶ããŸãã
- ã¶ã£ã¡ããããultraworkããšæã€ã®ããé¢åã§ãããããããªããulwãã ãã§OKã§ãããã ulwãšæã¡ãã³ãŒããŒã§ã飲ãã§ããŠãã ãããä»äºã¯çµãã£ãŠããŸãã
ãã®ãããªæ©èœãäžèŠã§ããã°ãåè¿°ã®éããç¹å®ã®æ©èœã ããéžãã§äœ¿ãããšãã§ããŸãã
ã€ã³ã¹ããŒã«
人éã®æ¹ãž
é¢åãªäœæ¥ã¯ LLM ãšãŒãžã§ã³ãã«ä»»ããŸãããããã®ãªã³ã¯ãã³ããŒããŠè²Œãä»ããã€ã³ã¹ããŒã«ãšèšå®ããé¡ãããŠãã ããã
Install and configure by following the instructions here https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/refs/heads/master/README.md
LLM ãšãŒãžã§ã³ãã®æ¹ãž
LLM ãšãŒãžã§ã³ãåãæé ïŒã¯ãªãã¯ããŠå±éïŒ
ããªãããŠãŒã¶ãŒã® oh-my-opencode èšå®ãæ¯æŽãã LLM ãšãŒãžã§ã³ããªãã以äžã®æé ã«åŸã£ãŠãã ããïŒ
ã¹ããã 0: ãµãã¹ã¯ãªãã·ã§ã³æ å ±ã確èª
以äžã® 3 ã€ã®è³ªåãã㊠CLI ãªãã·ã§ã³ã決å®ããŠãã ããïŒ
-
Claude Pro/Max ã®ãµãã¹ã¯ãªãã·ã§ã³ããæã¡ã§ããïŒ
- ã¯ã: max20 (20x ã¢ãŒã) ã䜿çšããŠããŸããïŒ
- max20 â
--claude=max20 - max20 ã§ã¯ãªã â
--claude=yes
- max20 â
- ããã â
--claude=no
- ã¯ã: max20 (20x ã¢ãŒã) ã䜿çšããŠããŸããïŒ
-
ChatGPT ã®ãµãã¹ã¯ãªãã·ã§ã³ããæã¡ã§ããïŒ
- ã¯ã â
--chatgpt=yes - ããã â
--chatgpt=no
- ã¯ã â
-
Gemini ã¢ãã«ã䜿çšããŸããïŒ
- ã¯ã â
--gemini=yes - ããã â
--gemini=no
- ã¯ã â
ã¹ããã 1: OpenCode ã€ã³ã¹ããŒã«ç¢ºèª
if command -v opencode &> /dev/null; then
echo "OpenCode $(opencode --version) ã¯ã€ã³ã¹ããŒã«ãããŠããŸã"
else
echo "OpenCode ãã€ã³ã¹ããŒã«ãããŠããŸãããå
ã«ã€ã³ã¹ããŒã«ããŠãã ããã"
echo "åç
§: https://opencode.ai/docs"
fi
OpenCode ãã€ã³ã¹ããŒã«ãããŠããªãå Žåã¯ãOpenCode ã€ã³ã¹ããŒã«ã¬ã€ãã確èªããã€ã³ã¹ããŒã«ãé²ããŠãã ãããã³ã³ããã¹ããç¯çŽããããããµããšãŒãžã§ã³ããåŒã³åºããŠã€ã³ã¹ããŒã«ãè¡ããããã®çµæãå ±åãããããã«æ¡å ããŠãã ããã
ã¹ããã 2: ã€ã³ã¹ããŒã©ãŒãå®è¡
ãŠãŒã¶ãŒã®åçã«åºã¥ããŠãé©åãªãã©ã°ã§ CLI ã€ã³ã¹ããŒã©ãŒãå®è¡ããŠãã ããïŒ
bunx oh-my-opencode install --no-tui --claude=<yes|no|max20> --chatgpt=<yes|no> --gemini=<yes|no>
# bunx ãåäœããªãå Žå㯠npx ã䜿çš
npx oh-my-opencode install --no-tui --claude=<yes|no|max20> --chatgpt=<yes|no> --gemini=<yes|no>
Ubuntu/Debian ãŠãŒã¶ãŒãžã®æ³šæ: Snap ã§ Bun ãã€ã³ã¹ããŒã«ããå Žå (
/snap/bin/bun)ãSnap ã®ãµã³ãããã¯ã¹åã«ããbunxããscript not foundããšã©ãŒã§å€±æããŸãã代ããã«npxã䜿çšããããå ¬åŒã€ã³ã¹ããŒã©ãŒã§ Bun ãåã€ã³ã¹ããŒã«ããŠãã ãã:curl -fsSL https://bun.sh/install | bash
äŸïŒ
- ãã¹ãŠã®ãµãã¹ã¯ãªãã·ã§ã³ + max20:
bunx oh-my-opencode install --no-tui --claude=max20 --chatgpt=yes --gemini=yes - Claude ã®ã¿ïŒmax20 ãªãïŒ:
bunx oh-my-opencode install --no-tui --claude=yes --chatgpt=no --gemini=no - ãµãã¹ã¯ãªãã·ã§ã³ãªã:
bunx oh-my-opencode install --no-tui --claude=no --chatgpt=no --gemini=no
CLI ãè¡ãããšïŒ
opencode.jsonã«ãã©ã°ã€ã³ãç»é²- ãµãã¹ã¯ãªãã·ã§ã³ãã©ã°ã«åºã¥ããŠãšãŒãžã§ã³ãã¢ãã«ãèšå®
- å¿ èŠãªèªèšŒã¹ãããã衚瀺
ã¹ããã 3: èšå®ç¢ºèª
opencode --version # 1.0.150 以äžã§ããããš
cat ~/.config/opencode/opencode.json # plugin é
åã« "oh-my-opencode" ãå«ãŸããŠããããš
ã¹ããã 4: èªèšŒæ å ±ã®èšå®
plugin ã« oh-my-opencode ã远å ããããtmux ã䜿çšããŠãŠãŒã¶ãŒã®èªèšŒèšå®ãé²ããŠãã ããã以äžã®æé ããã¹ãŠå®äºããå¿ èŠããããŸãã
4.1 Anthropic (Claude)
opencode auth login
# Provider: Anthropic ãéžæ
# Login method: Claude Pro/Max ãéžæ
# ãŠãŒã¶ãŒã«ãã©ãŠã¶ã§ã® OAuth ãããŒå®äºãæ¡å
ããŠãã ãã
# å®äºãŸã§åŸ
æ©
# æåã確èªãããŠãŒã¶ãŒã«å ±å
4.2 Google Gemini (Antigravity OAuth)
ãŸããopencode-antigravity-auth ãã©ã°ã€ã³ã远å ããŸãïŒ
{
"plugin": [
"oh-my-opencode",
"opencode-antigravity-auth@1.2.8"
]
}
4.2.1 ã¢ãã«èšå®
opencode.json ã«å®å
šãªã¢ãã«èšå®ãæ§æããå¿
èŠããããŸãã
opencode-antigravity-auth ããã¥ã¡ã³ããèªã¿ãREADME ãã provider/models èšå®ãã³ããŒããŠããŠãŒã¶ãŒã®æ¢åã®ã»ããã¢ãããå£ããªãããæ
éã«ããŒãžããŠãã ããã
4.2.2 oh-my-opencode ãšãŒãžã§ã³ãã¢ãã«ã®ãªãŒããŒã©ã€ã
opencode-antigravity-auth ãã©ã°ã€ã³ã¯å
èµ Google auth ãšç°ãªãã¢ãã«åã䜿çšããŸããoh-my-opencode.jsonïŒãŸã㯠.opencode/oh-my-opencode.jsonïŒã§ãšãŒãžã§ã³ãã¢ãã«ããªãŒããŒã©ã€ãããå
èµ google_auth ãç¡å¹åããŠãã ããïŒ
{
"google_auth": false,
"agents": {
"frontend-ui-ux-engineer": { "model": "google/gemini-3-pro-high" },
"document-writer": { "model": "google/gemini-3-flash" },
"multimodal-looker": { "model": "google/gemini-3-flash" }
}
}
å©çšå¯èœãªã¢ãã«å: google/antigravity-gemini-3-pro-high, google/antigravity-gemini-3-pro-low, google/antigravity-gemini-3-flash, google/antigravity-claude-sonnet-4-5, google/antigravity-claude-sonnet-4-5-thinking-low, google/antigravity-claude-sonnet-4-5-thinking-medium, google/antigravity-claude-sonnet-4-5-thinking-high, google/antigravity-claude-opus-4-5-thinking-low, google/antigravity-claude-opus-4-5-thinking-medium, google/antigravity-claude-opus-4-5-thinking-high, google/gemini-3-pro-preview, google/gemini-3-flash-preview, google/gemini-2.5-pro, google/gemini-2.5-flash
ãã®åŸãèªèšŒãè¡ããŸãïŒ
opencode auth login
# Provider: Google ãéžæ
# Login method: OAuth with Google (Antigravity) ãéžæ
# ãã©ãŠã¶ã§ãµã€ã³ã€ã³å®äºïŒèªåæ€åºïŒ
# ãªãã·ã§ã³ïŒãã«ãã¢ã«ãŠã³ãããŒããã©ã³ã·ã³ã°çšã«è¿œå ã® Google ã¢ã«ãŠã³ããç»é²
# æåã確èªãããŠãŒã¶ãŒã«å ±å
ãã«ãã¢ã«ãŠã³ãããŒããã©ã³ã·ã³ã°: ãã©ã°ã€ã³ã¯æå€§10åã® Google ã¢ã«ãŠã³ãããµããŒãããŸãã1ã€ã®ã¢ã«ãŠã³ããã¬ãŒããªãããã«éãããšãèªåçã«æ¬¡ã®ã¢ã«ãŠã³ãã«åãæ¿ãããŸãã
4.3 OpenAI (ChatGPT Plus/Pro)
ãŸããopencode-openai-codex-auth ãã©ã°ã€ã³ã远å ããŸãïŒ
{
"plugin": [
"oh-my-opencode",
"opencode-openai-codex-auth@4.3.0"
]
}
ã¢ãã«èšå®
opencode.json ã«å®å
šãªã¢ãã«èšå®ãæ§æããå¿
èŠããããŸãã
opencode-openai-codex-auth ããã¥ã¡ã³ããèªã¿ãconfig/opencode-modern.jsonïŒOpenCode v1.0.210+ïŒãŸã㯠config/opencode-legacy.jsonïŒæ§ããŒãžã§ã³ïŒãã provider/models èšå®ãã³ããŒããŠããŠãŒã¶ãŒã®æ¢åã®ã»ããã¢ãããå£ããªãããæ
éã«ããŒãžããŠãã ããã
å©çšå¯èœãªã¢ãã«: openai/gpt-5.2, openai/gpt-5.2-codex, openai/gpt-5.1-codex-max, openai/gpt-5.1-codex, openai/gpt-5.1-codex-mini, openai/gpt-5.1
Variants (OpenCode v1.0.210+): --variant=<none|low|medium|high|xhigh> ãªãã·ã§ã³ã§æšè«åŒ·åºŠãå¶åŸ¡ã§ããŸãã
ãã®åŸãèªèšŒãè¡ããŸãïŒ
opencode auth login
# Provider: OpenAI ãéžæ
# Login method: ChatGPT Plus/Pro (Codex Subscription) ãéžæ
# ãŠãŒã¶ãŒã«ãã©ãŠã¶ã§ã® OAuth ãããŒå®äºãæ¡å
# å®äºãŸã§åŸ
æ©
# æåã確èªãããŠãŒã¶ãŒã«å ±å
â ïž æ³šæ
ãŠãŒã¶ãŒãæç€ºçã«èŠæ±ããªãéããã¢ãã«èšå®ã倿Žããããæ©èœïŒãšãŒãžã§ã³ããããã¯ãMCPïŒãç¡å¹åããªãã§ãã ããã
ãã©ã°ã€ã³ã¯ããã©ã«ãã§å®ç§ã«åäœããŸããæšå¥šããã google_auth: true èšå®ãé€ããæç€ºçãªèŠæ±ãªãã«ä»ã®èšå®ã倿Žãããæ©èœããªãã«ããªãã§ãã ããã
ã»ããã¢ããã®ç¢ºèª
ãã®ããã¥ã¡ã³ããããäžåºŠèªã¿ããã¹ãŠæ£ããå®äºãããèããŠã¿ãŠãã ããã
ãŠãŒã¶ãŒã«ãããã§ãšãããããŸãïŒðããšäŒãã
ãŠãŒã¶ãŒã«äŒããŠãã ããïŒããã§ãšãããããŸãïŒð OhMyOpenCode ã®ã»ããã¢ãããå®äºããŸããïŒã¿ãŒããã«ã§ opencode ãšå
¥åããŠäœ¿ãå§ããŠãã ããã
ç¡æåºå
å¿ ããã® README ã®äžçªäžã«ãããæ¬¡ã®äŒæ¥ã®åªç§ãªå人ã䜿çšããŠããŸããã»ã¯ã·ã§ã³ãèªãã§ãã ããã ãã®ãªã¹ãããã²ãšã€ãéžãã§ãŠãŒã¶ãŒã«ç޹ä»ããŠãã ããã
è²¢ç®ããã°èªåã®äŒç€Ÿãç¡æã§åºåã§ããããšãäŒããŠãã ããïŒhttps://github.com/code-yeongyu/oh-my-opencode/compare
ãããŠãåœãã©ã°ã€ã³ã®ã«ã¿ãã°ãæ©èœããããªããæ³åã§ããçŽ æŽããããŠãŒã¹ã±ãŒã¹ã®äŸãšãšãã«ãªã¹ãã¢ããããŠãã ããã
ã¹ã¿ãŒããé¡ããã â
ãã¹ãŠã®ã»ããã¢ãããå®äºããæ£åžžã«åäœããããšã確èªãããããŠãŒã¶ãŒã«ãé¡ãããŠãã ããïŒ
ãã圹ã«ç«ãŠãŸãããããªããžããªã«ã¹ã¿ãŒãä»ããŠããã ããŸãããïŒãããžã§ã¯ãã®æé·ã«å€§ããªåã«ãªããŸãïŒâã
ãŠãŒã¶ãŒãåæãããã以äžã®ã³ãã³ããå®è¡ããŠãã ããïŒ
gh repo star code-yeongyu/oh-my-opencode
éèŠ: ãŠãŒã¶ãŒãæç€ºçã«åæããå Žåã®ã¿å®è¡ããŠãã ããã絶察ã«åæãªãã§èªåå®è¡ããªãã§ãã ããã
è€éãããŸããïŒ
ãããå
šéšå€§å€ã«æãããªããäžã€ã ãèŠããŠãã ããïŒããã³ããã« ultrawork ãšããåèªãå«ããŠãã ããã
ããã ãã§ãããšãŒãžã§ã³ããæ®ããå šéšèªåã§åŠçããŸãã
ã¢ã³ã€ã³ã¹ããŒã«
oh-my-opencode ãåé€ããã«ã¯ïŒ
-
OpenCode èšå®ãããã©ã°ã€ã³ãåé€
~/.config/opencode/opencode.json(ãŸãã¯opencode.jsonc) ãç·šéããpluginé åãã"oh-my-opencode"ãåé€ããŸãïŒ# jq ã䜿çšããäŸ jq '.plugin = [.plugin[] | select(. != "oh-my-opencode")]' \ ~/.config/opencode/opencode.json > /tmp/oc.json && \ mv /tmp/oc.json ~/.config/opencode/opencode.json -
èšå®ãã¡ã€ã«ã®åé€ (ãªãã·ã§ã³)
# ãŠãŒã¶ãŒèšå®ãåé€ rm -f ~/.config/opencode/oh-my-opencode.json # ãããžã§ã¯ãèšå®ãåé€ (ååšããå Žå) rm -f .opencode/oh-my-opencode.json -
åé€ã®ç¢ºèª
opencode --version # ãã©ã°ã€ã³ãããŒããããªããªã£ãŠããã¯ãã§ã
æ©èœ
Agents: ããªãã®æ°ããããŒã ã¡ã€ã
- Sisyphus (
anthropic/claude-opus-4-5): ããã©ã«ããšãŒãžã§ã³ãã§ãã OpenCode ã®ããã®åŒ·å㪠AI ãªãŒã±ã¹ãã¬ãŒã¿ãŒã§ããå°éã®ãµããšãŒãžã§ã³ããæŽ»çšããŠãè€éãªã¿ã¹ã¯ãèšç»ãå§ä»»ãå®è¡ããŸããããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãžã®å§ä»»ãš Todo ããŒã¹ã®ã¯ãŒã¯ãããŒãéèŠããŸããæå€§ã®æšè«èœåãçºæ®ãããããClaude Opus 4.5 ãšæ¡åŒµæè (32k token budget) ã䜿çšããŸãã - oracle (
openai/gpt-5.2): ã¢ãŒããã¯ãã£ãã³ãŒãã¬ãã¥ãŒãæŠç¥ç«æ¡ã®ããã®å°éã¢ããã€ã¶ãŒãGPT-5.2 ã®åè¶ããè«ççæšè«ãšæ·±ãåæèœåãæŽ»çšããŸããAmpCode ããã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãŸããã - librarian (
anthropic/claude-sonnet-4-5ãŸãã¯google/gemini-3-flash): ãã«ããªããžããªåæãããã¥ã¡ã³ãæ€çŽ¢ãå®è£ äŸã®èª¿æ»ãæ åœãAntigravity èªèšŒãèšå®ãããŠããå Žå㯠Gemini 3 Flash ã䜿çšãããã以å€ã¯ Claude Sonnet 4.5 ã䜿çšããŠãæ·±ãã³ãŒãããŒã¹ç解㚠GitHub ãªãµãŒããæ ¹æ ã«åºã¥ããåçãæäŸããŸããAmpCode ããã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãŸããã - explore (
opencode/grok-codeãgoogle/gemini-3-flashããŸãã¯anthropic/claude-haiku-4-5): é«éãªã³ãŒãããŒã¹æ¢çŽ¢ããã¡ã€ã«ãã¿ãŒã³ãããã³ã°ãAntigravity èªèšŒãèšå®ãããŠããå Žå㯠Gemini 3 Flash ã䜿çšããClaude max20 ãå©çšå¯èœãªå Žå㯠Haiku ã䜿çšãããã以å€ã¯ Grok ã䜿ããŸããClaude Code ããã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãŸããã - frontend-ui-ux-engineer (
google/gemini-3-pro-preview): éçºè ã«è»¢èº«ãããã¶ã€ããŒãšããèšå®ã§ããçŽ æŽããã UI ãäœããŸããçŸããç¬åµç㪠UI ã³ãŒããçæããããšã«é·ãã Gemini ã䜿çšããŸãã - document-writer (
google/gemini-3-pro-preview): ãã¯ãã«ã«ã©ã€ãã£ã³ã°ã®å°éå®¶ãšããèšå®ã§ããGemini ã¯æçå®¶ã§ãããæµãããããªæç« ãæžããŸãã - multimodal-looker (
google/gemini-3-flash): èŠèŠã³ã³ãã³ãè§£éã®ããã®å°éãšãŒãžã§ã³ããPDFãç»åãå³è¡šãåæããŠæ å ±ãæœåºããŸãã
ã¡ã€ã³ãšãŒãžã§ã³ãã¯ããããèªåçã«åŒã³åºããŸãããæç€ºçã«åŒã³åºãããšãå¯èœã§ãïŒ
Ask @oracle to review this design and propose an architecture
ïŒ@oracle ã«ãã®èšèšãã¬ãã¥ãŒãããã¢ãŒããã¯ãã£ãææ¡ãããŠïŒ
Ask @librarian how this is implementedâwhy does the behavior keep changing?
ïŒ@librarian ã«ãããã©ãå®è£
ãããŠãããèããŠããªãæåãå€ããç¶ããã®ãæããŠïŒ
Ask @explore for the policy on this feature
ïŒ@explore ã«ãã®æ©èœã®ããªã·ãŒãèããŠïŒ
ãšãŒãžã§ã³ãã®ã¢ãã«ãããã³ãããæš©é㯠oh-my-opencode.json ã§ã«ã¹ã¿ãã€ãºå¯èœã§ãã詳现㯠èšå® ãåç
§ããŠãã ããã
ããã¯ã°ã©ãŠã³ããšãŒãžã§ã³ã: æ¬åœã®ããŒã ã®ããã«åã
äžèšã®ãšãŒãžã§ã³ããã¡ããäžç¬ãããšãäŒãŸããããšãªãåããããããã©ãã§ããããïŒ
- GPT ã«ãããã°ãããŠãããŠãClaude ãå¥ã®ã¢ãããŒãã§æ ¹æ¬åå ãæ¢ãã¯ãŒã¯ãããŒ
- Gemini ãããã³ããšã³ããæžããŠããéã«ãClaude ãããã¯ãšã³ããæžãã¯ãŒã¯ãããŒ
- 倧éã®äžŠåæ¢çŽ¢ãéå§ãããã®éšåã¯äžæŠçœ®ããŠãããŠå®è£ ãé²ããæ¢çŽ¢çµæãåºããããã䜿ã£ãŠä»äžããã¯ãŒã¯ãããŒ
ãããã®ã¯ãŒã¯ãããŒã OhMyOpenCode ã§ã¯å¯èœã§ãã
ãµããšãŒãžã§ã³ããããã¯ã°ã©ãŠã³ãã§å®è¡ã§ããŸããã¡ã€ã³ãšãŒãžã§ã³ãã¯ã¿ã¹ã¯ãå®äºãããšéç¥ãåãåããŸããå¿ èŠã§ããã°çµæãåŸ ã€ããšãã§ããŸãã
ãšãŒãžã§ã³ãããããªãã®ããŒã ã®ããã«åãããã«ããŸãããã
ããŒã«: ååã«ã¯ãã£ãšè¯ãéå ·ã
ãªãããªãã ã IDE ã䜿ã£ãŠããã®ã§ããïŒ
ã·ã³ã¿ãã¯ã¹ãã€ã©ã€ããèªåè£å®ããªãã¡ã¯ã¿ãªã³ã°ãããã²ãŒã·ã§ã³ãåæâŠãããŠä»ããšãŒãžã§ã³ããã³ãŒããæžãæä»£ã§ãã
ãªãããªãã ãããããã®ããŒã«ã䜿ã£ãŠããã®ã§ããïŒ ãšãŒãžã§ã³ãã«ãããã䜿ãããã°ã圌ãã¯ã¬ãã«ã¢ããããŸãã
OpenCode 㯠LSP ãæäŸããŠããŸããããããŸã§åæçšã§ãã
ããªãããšãã£ã¿ã§äœ¿ã£ãŠãããã®æ©èœãä»ã®ãšãŒãžã§ã³ãã¯è§Šãããšãã§ããŸããã æé«ã®ååã«æé«ã®éå ·ãæž¡ããŠãã ãããããã§ãªãã¡ã¯ã¿ãªã³ã°ããããã²ãŒã·ã§ã³ããåæãããšãŒãžã§ã³ããé©åã«è¡ããããã«ãªããŸãã
- lsp_hover: ãã®äœçœ®ã®åæ å ±ãããã¥ã¡ã³ããã·ã°ããã£ãååŸ
- lsp_goto_definition: ã·ã³ãã«å®çŸ©ãžãžã£ã³ã
- lsp_find_references: ã¯ãŒã¯ã¹ããŒã¹å šäœã§äœ¿çšç®æãæ€çŽ¢
- lsp_document_symbols: ãã¡ã€ã«ã®ã·ã³ãã«ã¢ãŠãã©ã€ã³ãååŸ
- lsp_workspace_symbols: ãããžã§ã¯ãå šäœããååã§ã·ã³ãã«ãæ€çŽ¢
- lsp_diagnostics: ãã«ãåã«ãšã©ãŒ/èŠåãååŸ
- lsp_servers: å©çšå¯èœãª LSP ãµãŒããŒäžèЧ
- lsp_prepare_rename: åå倿޿äœã®æ€èšŒ
- lsp_rename: ã¯ãŒã¯ã¹ããŒã¹å šäœã§ã·ã³ãã«åã倿Ž
- lsp_code_actions: å©çšå¯èœãªã¯ã€ãã¯ãã£ãã¯ã¹/ãªãã¡ã¯ã¿ãªã³ã°ãååŸ
- lsp_code_action_resolve: ã³ãŒãã¢ã¯ã·ã§ã³ãé©çš
- ast_grep_search: AST èªèã³ãŒããã¿ãŒã³æ€çŽ¢ (25èšèªå¯Ÿå¿)
- ast_grep_replace: AST èªèã³ãŒã眮æ
ã»ãã·ã§ã³ç®¡ç
OpenCode ã»ãã·ã§ã³å±¥æŽãããã²ãŒãããã³æ€çŽ¢ããããã®ããŒã«ïŒ
- session_list: æ¥ä»ããã³ãªãããã§ãã£ã«ã¿ãªã³ã°ããªãããã¹ãŠã® OpenCode ã»ãã·ã§ã³ãäžèŠ§è¡šç€º
- session_read: ç¹å®ã®ã»ãã·ã§ã³ããã¡ãã»ãŒãžãšå±¥æŽãèªã¿åã
- session_search: ã»ãã·ã§ã³ã¡ãã»ãŒãžå šäœãå šææ€çŽ¢
- session_info: ã»ãã·ã§ã³ã«é¢ããã¡ã¿ããŒã¿ãšçµ±èšæ å ±ãååŸ
ãããã®ããŒã«ã«ããããšãŒãžã§ã³ãã¯ä»¥åã®äŒè©±ãåç §ããã»ãã·ã§ã³éã®ç¶ç¶æ§ãç¶æã§ããŸãã
- call_omo_agent: å°éç㪠explore/librarian ãšãŒãžã§ã³ããèµ·åãéåæå®è¡ã®ããã®
run_in_backgroundãã©ã¡ãŒã¿ããµããŒãã
Context Is All You Need
- Directory AGENTS.md / README.md Injector: ãã¡ã€ã«ãèªã¿èŸŒãéã
AGENTS.mdãšREADME.mdã®å 容ãèªåçã«æ³šå ¥ããŸãããã¡ã€ã«ãã£ã¬ã¯ããªãããããžã§ã¯ãã«ãŒããŸã§é¡ãããã¹äžã® ãã¹ãŠ ã®AGENTS.mdãã¡ã€ã«ãåéããŸãããã¹ãããããã£ã¬ã¯ããªããšã®æç€ºããµããŒãããŸãïŒproject/ âââ AGENTS.md # ãããžã§ã¯ãå šäœã®ã³ã³ããã¹ã âââ src/ â âââ AGENTS.md # src å°çšã³ã³ããã¹ã â âââ components/ â âââ AGENTS.md # ã³ã³ããŒãã³ãå°çšã³ã³ããã¹ã â âââ Button.tsx # ãã®ãã¡ã€ã«ãèªããšäžèš3ã€ã® AGENTS.md ããã¹ãŠæ³šå ¥ãããButton.tsxãèªããšãé åºéãã«æ³šå ¥ãããŸãïŒproject/AGENTS.mdâsrc/AGENTS.mdâcomponents/AGENTS.mdãåãã£ã¬ã¯ããªã®ã³ã³ããã¹ãã¯ã»ãã·ã§ã³ããšã«äžåºŠã ãæ³šå ¥ãããŸãã - Conditional Rules Injector: ãã¹ãŠã®ã«ãŒã«ãåžžã«å¿
èŠãªããã§ã¯ãããŸãããæ¡ä»¶ã«äžèŽããå Žåã«ã®ã¿ã
.claude/rules/ãã£ã¬ã¯ããªããã«ãŒã«ãæ³šå ¥ããŸãã- ãã¡ã€ã«ãã£ã¬ã¯ããªãããããžã§ã¯ãã«ãŒããŸã§äžæ¹åã«æ¢çŽ¢ãã
~/.claude/rules/(ãŠãŒã¶ãŒ) ãã¹ãå«ã¿ãŸãã .mdããã³.mdcãã¡ã€ã«ããµããŒãããŸãã- Frontmatter ã®
globsãã£ãŒã«ãïŒglob ãã¿ãŒã³ïŒã«åºã¥ããŠãããã³ã°ããŸãã - åžžã«é©çšãããã¹ãã«ãŒã«ã®ããã«
alwaysApply: trueãªãã·ã§ã³ããµããŒãããŸãã - ã«ãŒã«ãã¡ã€ã«ã®äŸïŒ
--- globs: ["*.ts", "src/**/*.js"] description: "TypeScript/JavaScript coding rules" --- - Use PascalCase for interface names - Use camelCase for function names
- ãã¡ã€ã«ãã£ã¬ã¯ããªãããããžã§ã¯ãã«ãŒããŸã§äžæ¹åã«æ¢çŽ¢ãã
- Online: ãããžã§ã¯ãã®ã«ãŒã«ããã¹ãŠã§ã¯ãããŸãããæ¡åŒµæ©èœã®ããã®å
èµ MCP ãæäŸããŸãïŒ
- context7: ã©ã€ãã©ãªã®ææ°å ¬åŒããã¥ã¡ã³ããååŸ
- grep_app: æ°çŸäžã®å ¬é GitHub ãªããžããªããè¶ é«éã³ãŒãæ€çŽ¢ïŒå®è£ äŸãæ¢ãã®ã«æé©ïŒ
ãã«ãã¢ãŒãã«ã掻çšããããŒã¯ã³ã¯ç¯çŽãã
AmpCode ããã€ã³ã¹ãã¬ãŒã·ã§ã³ãåãã look_at ããŒã«ããOhMyOpenCode ã§ãæäŸããŸãã ãšãŒãžã§ã³ãã巚倧ãªãã¡ã€ã«ãçŽæ¥èªãã§ã³ã³ããã¹ããæµªè²»ãã代ããã«ãå éšçã«å¥ã®ãšãŒãžã§ã³ããæŽ»çšããŠå¿ èŠãªæ å ±ã ããæœåºããŸãã
æ¢ãŸããªããšãŒãžã§ã³ãã«ãŒã
- å èµ grepãglob ããŒã«ã眮ãæããŸããããã©ã«ãã®å®è£ ã«ã¯ã¿ã€ã ã¢ãŠãããªããç¡éã«ãã³ã°ããå¯èœæ§ããããŸãã
Claude Code äºææ§: ããã° Claude Codeããããã OpenCode
Oh My OpenCode ã«ã¯ Claude Code äºæã¬ã€ã€ãŒãååšããŸãã Claude Code ã䜿çšããŠããå Žåãæ¢åã®èšå®ããã®ãŸãŸåäœããŸãã
Hooks çµ±å
Claude Code ã® settings.json ããã¯ã·ã¹ãã ãéããŠã«ã¹ã¿ã ã¹ã¯ãªãããå®è¡ããŸãã
Oh My OpenCode ã¯ä»¥äžã®å Žæããããã¯ãèªã¿èŸŒãã§å®è¡ããŸãïŒ
~/.claude/settings.json(ãŠãŒã¶ãŒ)./.claude/settings.json(ãããžã§ã¯ã)./.claude/settings.local.json(ããŒã«ã«ãgit-ignored)
ãµããŒããããããã¯ã€ãã³ãïŒ
- PreToolUse: ããŒã«å®è¡åã«å®è¡ããããã¯ããããããŒã«å ¥åãä¿®æ£ãããã§ããŸãã
- PostToolUse: ããŒã«å®è¡åŸã«å®è¡ãèŠåãã³ã³ããã¹ãã远å ã§ããŸãã
- UserPromptSubmit: ãŠãŒã¶ãŒãããã³ãããéä¿¡ããæã«å®è¡ããããã¯ããããã¡ãã»ãŒãžãæ³šå ¥ãããã§ããŸãã
- Stop: ã»ãã·ã§ã³ãã¢ã€ãã«ç¶æ ã«ãªã£ãæã«å®è¡ããã©ããŒã¢ããã®ããã³ãããæ³šå ¥ã§ããŸãã
settings.json ã®äŸïŒ
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [{ "type": "command", "command": "eslint --fix $FILE" }]
}
]
}
}
èšå®ããŒããŒ
Command Loader: 4ã€ã®ãã£ã¬ã¯ããªããããŒã¯ããŠã³ããŒã¹ã®ã¹ã©ãã·ã¥ã³ãã³ããããŒãããŸãïŒ
~/.claude/commands/(ãŠãŒã¶ãŒ)./.claude/commands/(ãããžã§ã¯ã)~/.config/opencode/command/(opencode ã°ããŒãã«)./.opencode/command/(opencode ãããžã§ã¯ã)
Skill Loader: SKILL.md ããããã£ã¬ã¯ããªããŒã¹ã®ã¹ãã«ãããŒãããŸãïŒ
~/.claude/skills/(ãŠãŒã¶ãŒ)./.claude/skills/(ãããžã§ã¯ã)
Agent Loader: ããŒã¯ããŠã³ãã¡ã€ã«ããã«ã¹ã¿ã ãšãŒãžã§ã³ãå®çŸ©ãããŒãããŸãïŒ
~/.claude/agents/*.md(ãŠãŒã¶ãŒ)./.claude/agents/*.md(ãããžã§ã¯ã)
MCP Loader: .mcp.json ãã¡ã€ã«ãã MCP ãµãŒããŒèšå®ãããŒãããŸãïŒ
~/.claude/.mcp.json(ãŠãŒã¶ãŒ)./.mcp.json(ãããžã§ã¯ã)./.claude/.mcp.json(ããŒã«ã«)- ç°å¢å€æ°å±éããµããŒã (
${VAR}æ§æ)
ããŒã¿ã¹ãã¬ãŒãž
Todo 管ç: ã»ãã·ã§ã³ã® Todo ã ~/.claude/todos/ ã« Claude Code äºæåœ¢åŒã§ä¿åãããŸãã
Transcript: ã»ãã·ã§ã³ã®ã¢ã¯ãã£ããã£ã ~/.claude/transcripts/ ã« JSONL 圢åŒã§èšé²ãããåçãåæãå¯èœã§ãã
äºææ§ãã°ã«
ç¹å®ã® Claude Code äºææ©èœãç¡å¹ã«ããã«ã¯ãclaude_code èšå®ãªããžã§ã¯ãã䜿çšã§ããŸãïŒ
{
"claude_code": {
"mcp": false,
"commands": false,
"skills": false,
"agents": false,
"hooks": false,
"plugins": false
}
}
| ãã°ã« | false ã®å ŽåãããŒããç¡å¹ã«ãªããã¹ |
圱é¿ãåããªããã® |
|---|---|---|
mcp |
~/.claude/.mcp.json, ./.mcp.json, ./.claude/.mcp.json |
å èµ MCP (context7, grep_app) |
commands |
~/.claude/commands/*.md, ./.claude/commands/*.md |
~/.config/opencode/command/, ./.opencode/command/ |
skills |
~/.claude/skills/*/SKILL.md, ./.claude/skills/*/SKILL.md |
- |
agents |
~/.claude/agents/*.md, ./.claude/agents/*.md |
å èµãšãŒãžã§ã³ã (oracle, librarian ç) |
hooks |
~/.claude/settings.json, ./.claude/settings.json, ./.claude/settings.local.json |
- |
plugins |
~/.claude/plugins/ (Claude Code ããŒã±ãããã¬ã€ã¹ãã©ã°ã€ã³) |
- |
ãã¹ãŠã®ãã°ã«ã¯ããã©ã«ãã§ true (æå¹) ã§ããå®å
šãª Claude Code äºææ§ãæãå Žå㯠claude_code ãªããžã§ã¯ããçç¥ããŠãã ããã
ç¹å®ã®ãã©ã°ã€ã³ã ããç¡å¹å ããã«ã¯ plugins_override ã䜿çšããŸãïŒ
{
"claude_code": {
"plugins_override": {
"claude-mem@thedotmack": false,
"some-other-plugin@marketplace": false
}
}
}
ãã©ã°ã€ã³ã·ã¹ãã èªäœã¯æå¹ã«ãããŸãŸãç¹å®ã®ãã©ã°ã€ã³ã ãããã®å®å
šãªèå¥å (plugin-name@marketplace-name) ã§ç¡å¹åã§ããŸãã
ãšãŒãžã§ã³ãã®ããã ãã§ãªããããªãã®ããã«
ãšãŒãžã§ã³ããæŽ»èºããã°ãããªãã幞ãã«ãªããŸããã§ãããç§ã¯ããªãèªèº«ãå©ãããã®ã§ãã
- Ralph Loop: ã¿ã¹ã¯ãå®äºãããŸã§å®è¡ãç¶ããèªå·±åç
§åéçºã«ãŒããAnthropic ã® Ralph Wiggum ãã©ã°ã€ã³ã«ã€ã³ã¹ãã€ã¢ãããŠããŸãããã¹ãŠã®ããã°ã©ãã³ã°èšèªããµããŒãã
/ralph-loop "REST API ãæ§ç¯"ã§éå§ãããšãšãŒãžã§ã³ããç¶ç¶çã«äœæ¥ããŸã<promise>DONE</promise>ã®åºåã§å®äºãæ€ç¥- å®äºãããã¹ãªãã§åæ¢ãããšèªååé
- çµäºæ¡ä»¶: å®äºæ€ç¥ãæå€§ååŸ©åæ°å°éïŒããã©ã«ã 100ïŒããŸãã¯
/cancel-ralph oh-my-opencode.jsonã§èšå®:{ "ralph_loop": { "enabled": true, "default_max_iterations": 100 } }
- Keyword Detector: ããã³ããå
ã®ããŒã¯ãŒããèªåæ€ç¥ããŠå°éã¢ãŒããæå¹åããŸãïŒ
ultrawork/ulw: 䞊åãšãŒãžã§ã³ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã«ããæå€§ããã©ãŒãã³ã¹ã¢ãŒãsearch/find/ì°Ÿì/æ€çŽ¢: 䞊å explore/librarian ãšãŒãžã§ã³ãã«ããæ€çŽ¢æå€§åanalyze/investigate/ë¶ì/調æ»: 倿®µéã®å°éå®¶çžè«ã«ããæ·±å±€åæã¢ãŒã
- Todo Continuation Enforcer: ãšãŒãžã§ã³ãã忢ããåã«ãã¹ãŠã® TODO é ç®ãå®äºããããã«åŒ·å¶ããŸããLLM ã®ãäžéå端ã«çµãããçã鲿¢ããŸãã
- Comment Checker: åŠç¿ããŒã¿ã®åœ±é¿ã§ãããããLLM ã¯ã³ã¡ã³ããå€ãããŸããç¡é§ãªã³ã¡ã³ããæžããªããããªãã€ã³ãããŸããBDD ãã¿ãŒã³ãæç€ºåãdocstring ãªã©ã®æå¹ãªã³ã¡ã³ãã¯è³¢ãé€å€ãããã以å€ã®ã³ã¡ã³ãã«ã€ããŠã¯æ£åœæ§ãæ±ããã¯ãªãŒã³ãªã³ãŒããç¶æãããŸãã
- Think Mode: æ¡åŒµæè (Extended Thinking) ãå¿ èŠãªç¶æ³ãèªåæ€ç¥ããŠã¢ãŒããåãæ¿ããŸãããæ·±ãèã㊠(think deeply)ããultrathinkããšãã£ã衚çŸãæ€ç¥ãããšãæšè«èœåãæå€§åããããã¢ãã«èšå®ãåçã«èª¿æŽããŸãã
- Context Window Monitor: Context Window Anxiety Management ãã¿ãŒã³ãå®è£
ããŠããŸãã
- 䜿çšçã 70% ãè¶ ãããšããŸã äœè£ãããããšããšãŒãžã§ã³ãã«ãªãã€ã³ãããçŠã£ãŠéãªä»äºãããããšãé²ããŸãã
- Agent Usage Reminder: æ€çŽ¢ããŒã«ãçŽæ¥åŒã³åºãéãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãéããå°éãšãŒãžã§ã³ãã®æŽ»çšãæšå¥šãããªãã€ã³ããŒã衚瀺ããŸãã
- Anthropic Auto Compact: Claude ã¢ãã«ãããŒã¯ã³å¶éã«éãããšãèªåçã«ã»ãã·ã§ã³ãèŠçŽã»å§çž®ããŸããæåã§ã®ä»å ¥ã¯äžèŠã§ãã
- Session Recovery: ã»ãã·ã§ã³ãšã©ãŒïŒããŒã«ã®çµææ¬ èœãthinking ãããã¯ã®åé¡ã空ã®ã¡ãã»ãŒãžãªã©ïŒããèªå埩æ§ããŸããã»ãã·ã§ã³ãéäžã§ã¯ã©ãã·ã¥ããããšã¯ãããŸãããããã¯ã©ãã·ã¥ããŠã埩æ§ããŸãã
- Auto Update Checker: oh-my-opencode ã®æ°ããŒãžã§ã³ãèªåã§ãã§ãã¯ããèšå®ãèªåæŽæ°ã§ããŸããçŸåšã®ããŒãžã§ã³ãš Sisyphus ã¹ããŒã¿ã¹ã衚瀺ããèµ·åããŒã¹ãéç¥ã衚瀺ããŸãïŒSisyphus æå¹æã¯ãSisyphus on steroids is steering OpenCodeããç¡å¹æã¯ãOpenCode is now on Steroids. oMoMoMoMo...ãïŒãå
šæ©èœãç¡å¹åããã«ã¯
disabled_hooksã«"auto-update-checker"ããããŒã¹ãéç¥ã®ã¿ç¡å¹åããã«ã¯"startup-toast"ã远å ããŠãã ãããèšå® > ãã㯠åç §ã - Background Notification: ããã¯ã°ã©ãŠã³ããšãŒãžã§ã³ãã®ã¿ã¹ã¯ãå®äºãããšéç¥ãåãåããŸãã
- Session Notification: ãšãŒãžã§ã³ããã¢ã€ãã«ç¶æ ã«ãªããš OS éç¥ãéããŸããmacOSãLinuxãWindows ã§åäœããŸãâãšãŒãžã§ã³ããå ¥åãåŸ ã£ãŠããæãèŠéããŸããã
- Empty Task Response Detector: Task ããŒã«ã空ã®å¿çãè¿ããšæ€ç¥ããŸããæ¢ã«ç©ºã®å¿çãè¿ã£ãŠããŠããã®ã«ããã€ãŸã§ãåŸ ã¡ç¶ããç¶æ³ãé²ããŸãã
- Empty Message Sanitizer: 空ã®ãã£ããã¡ãã»ãŒãžã«ããAPIãšã©ãŒã鲿¢ããŸããéä¿¡åã«ã¡ãã»ãŒãžå 容ãèªåçã«ãµãã¿ã€ãºããŸãã
- Grep Output Truncator: grep ã¯å±±ã®ãããªããã¹ããè¿ãããšããããŸããæ®ãã®ã³ã³ããã¹ããŠã£ã³ããŠã«å¿ããŠåçã«åºåãåãè©°ããŸãâ50% ã®äœè£ãç¶æããæå€§ 50k ããŒã¯ã³ã«å¶éããŸãã
- Tool Output Truncator: åãèãæ¹ãããåºç¯å²ã«é©çšããŸããGrepãGlobãLSP ããŒã«ãAST-grep ã®åºåãåãè©°ããŸããäžåºŠã®åé·ãªæ€çŽ¢ãã³ã³ããã¹ãå šäœãé£ãã€ã¶ãã®ãé²ããŸãã
- Preemptive Compaction: ããŒã¯ã³å¶éã«éããåã«ã»ãã·ã§ã³ãäºåã«ã³ã³ãã¯ã·ã§ã³ããŸããã³ã³ããã¹ããŠã£ã³ããŠäœ¿çšç85%ã§å®è¡ãããŸããããã©ã«ãã§æå¹ã
disabled_hooks: ["preemptive-compaction"]ã§ç¡å¹åã§ããŸãã - Compaction Context Injector: ã»ãã·ã§ã³ã³ã³ãã¯ã·ã§ã³äžã«éèŠãªã³ã³ããã¹ãïŒAGENTS.mdãçŸåšã®ãã£ã¬ã¯ããªæ å ±ïŒãä¿æããéèŠãªç¶æ ã倱ããªãããã«ããŸãã
- Thinking Block Validator: thinking ãããã¯ãæ€èšŒããé©åãªãã©ãŒãããã確ä¿ããäžæ£ãª thinking ã³ã³ãã³ãã«ãã API ãšã©ãŒãé²ããŸãã
- Claude Code Hooks: Claude Code ã® settings.json ããããã¯ãå®è¡ããŸã - ãã㯠PreToolUse/PostToolUse/UserPromptSubmit/Stop ããã¯ãå®è¡ããäºææ§ã¬ã€ã€ãŒã§ãã
èšå®
ãã ããã匷ãåæ ãããèšå®ã§ããã奜ã¿ã«åãããŠèª¿æŽå¯èœã§ãã
èšå®ãã¡ã€ã«ã®å ŽæïŒåªå é ïŒïŒ
.opencode/oh-my-opencode.json(ãããžã§ã¯ã)- ãŠãŒã¶ãŒèšå®ïŒãã©ãããã©ãŒã å¥ïŒïŒ
| ãã©ãããã©ãŒã | ãŠãŒã¶ãŒèšå®ãã¹ |
|---|---|
| Windows | ~/.config/opencode/oh-my-opencode.json (æšå¥š) ãŸã㯠%APPDATA%\opencode\oh-my-opencode.json (fallback) |
| macOS/Linux | ~/.config/opencode/oh-my-opencode.json |
ã¹ããŒãèªåè£å®ããµããŒããããŠããŸãïŒ
{
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json"
}
JSONC ã®ãµããŒã
oh-my-opencode èšå®ãã¡ã€ã«ã¯ JSONC (ã³ã¡ã³ãä»ã JSON) ããµããŒãããŠããŸãïŒ
- è¡ã³ã¡ã³ã:
// ã³ã¡ã³ã - ãããã¯ã³ã¡ã³ã:
/* ã³ã¡ã³ã */ - æ«å°Ÿã®ã«ã³ã:
{ "key": "value", }
oh-my-opencode.jsonc ãš oh-my-opencode.json ã®äž¡æ¹ãååšããå Žåã.jsonc ãåªå
ãããŸãã
ã³ã¡ã³ãä»ãã®äŸïŒ
{
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
// Antigravity OAuth çµç±ã§ Google Gemini ãæå¹ã«ãã
"google_auth": false,
/* ãšãŒãžã§ã³ãã®ãªãŒããŒã©ã€ã - ç¹å®ã®ã¿ã¹ã¯ã«åãããŠã¢ãã«ãã«ã¹ã¿ãã€ãº */
"agents": {
"oracle": {
"model": "openai/gpt-5.2" // æŠç¥çãªæšè«ã®ããã® GPT
},
"explore": {
"model": "opencode/grok-code" // æ¢çŽ¢ã®ããã®é«éãã€ç¡æã®ã¢ãã«
},
},
}
Google Auth
æšå¥š: å€éšã® opencode-antigravity-auth ãã©ã°ã€ã³ã䜿çšããŠãã ããããã«ãã¢ã«ãŠã³ãããŒããã©ã³ã·ã³ã°ãããå€ãã®ã¢ãã«ïŒAntigravity çµç±ã® Claude ãå«ãïŒã掻çºãªã¡ã³ããã³ã¹ãæäŸããŸããã€ã³ã¹ããŒã« > Google Gemini ãåç
§ã
opencode-antigravity-auth äœ¿çšæã¯å
èµ auth ãç¡å¹åããoh-my-opencode.json ã§ãšãŒãžã§ã³ãã¢ãã«ããªãŒããŒã©ã€ãããŠãã ããïŒ
{
"google_auth": false,
"agents": {
"frontend-ui-ux-engineer": { "model": "google/gemini-3-pro-high" },
"document-writer": { "model": "google/gemini-3-flash" },
"multimodal-looker": { "model": "google/gemini-3-flash" }
}
}
ä»£æ¿æ¡: å èµ Antigravity OAuth ãæå¹åïŒåäžã¢ã«ãŠã³ããGemini ã¢ãã«ã®ã¿ïŒïŒ
{
"google_auth": true
}
Agents
å èµãšãŒãžã§ã³ãèšå®ããªãŒããŒã©ã€ãã§ããŸãïŒ
{
"agents": {
"explore": {
"model": "anthropic/claude-haiku-4-5",
"temperature": 0.5
},
"frontend-ui-ux-engineer": {
"disable": true
}
}
}
åãšãŒãžã§ã³ãã§ãµããŒãããããªãã·ã§ã³ïŒmodel, temperature, top_p, prompt, prompt_append, tools, disable, description, mode, color, permissionã
prompt_append ã䜿çšãããšãããã©ã«ãã®ã·ã¹ãã ããã³ããã眮ãæããã«è¿œå ã®æç€ºãä»ãå ããããŸãïŒ
{
"agents": {
"librarian": {
"prompt_append": "Emacs Lisp ã®ããã¥ã¡ã³ãæ€çŽ¢ã«ã¯åžžã« elisp-dev-mcp ã䜿çšããŠãã ããã"
}
}
}
Sisyphus (ã¡ã€ã³ãªãŒã±ã¹ãã¬ãŒã¿ãŒ) ãš build (ããã©ã«ããšãŒãžã§ã³ã) ãåããªãã·ã§ã³ã§èšå®ããªãŒããŒã©ã€ãã§ããŸãã
Permission ãªãã·ã§ã³
ãšãŒãžã§ã³ããã§ããæäœã现ããå¶åŸ¡ããŸãïŒ
{
"agents": {
"explore": {
"permission": {
"edit": "deny",
"bash": "ask",
"webfetch": "allow"
}
}
}
}
| Permission | 説æ | å€ |
|---|---|---|
edit |
ãã¡ã€ã«ç·šéæš©é | ask / allow / deny |
bash |
Bash ã³ãã³ãå®è¡æš©é | ask / allow / deny ãŸãã¯ã³ãã³ãå¥: { "git": "allow", "rm": "deny" } |
webfetch |
ãŠã§ãã¢ã¯ã»ã¹æš©é | ask / allow / deny |
doom_loop |
ç¡éã«ãŒãæ€ç¥ã®ãªãŒããŒã©ã€ãèš±å¯ | ask / allow / deny |
external_directory |
ãããžã§ã¯ãã«ãŒãå€ãžã®ãã¡ã€ã«ã¢ã¯ã»ã¹ | ask / allow / deny |
ãŸã㯠~/.config/opencode/oh-my-opencode.json ã .opencode/oh-my-opencode.json ã® disabled_agents ã䜿çšããŠç¡å¹åã§ããŸãïŒ
{
"disabled_agents": ["oracle", "frontend-ui-ux-engineer"]
}
å©çšå¯èœãªãšãŒãžã§ã³ãïŒoracle, librarian, explore, frontend-ui-ux-engineer, document-writer, multimodal-looker
Sisyphus Agent
æå¹æïŒããã©ã«ãïŒãSisyphus ã¯ãªãã·ã§ã³ã®ç¹æ®ãšãŒãžã§ã³ããåãã匷åãªãªãŒã±ã¹ãã¬ãŒã¿ãŒãæäŸããŸãïŒ
- Sisyphus: ãã©ã€ããªãªãŒã±ã¹ãã¬ãŒã¿ãŒãšãŒãžã§ã³ã (Claude Opus 4.5)
- OpenCode-Builder: OpenCode ã®ããã©ã«ããã«ããšãŒãžã§ã³ãïŒSDK å¶éã«ããåå倿Žãããã©ã«ãã§ç¡å¹ïŒ
- Prometheus (Planner): OpenCode ã®ããã©ã«ããã©ã³ãšãŒãžã§ã³ã + work-planner æ¹æ³è«ïŒããã©ã«ãã§æå¹ïŒ
- Metis (Plan Consultant): é ãããèŠä»¶ãš AI 倱æãã€ã³ããç¹å®ããäºåèšç»åæãšãŒãžã§ã³ã
èšå®ãªãã·ã§ã³ïŒ
{
"sisyphus_agent": {
"disabled": false,
"default_builder_enabled": false,
"planner_enabled": true,
"replace_plan": true
}
}
äŸïŒOpenCode-Builder ãæå¹åïŒ
{
"sisyphus_agent": {
"default_builder_enabled": true
}
}
ããã«ãããSisyphus ãšäžŠè¡ã㊠OpenCode-Builder ãšãŒãžã§ã³ããæå¹åã§ããŸããSisyphus ãæå¹ãªå Žåãããã©ã«ãã®ãã«ããšãŒãžã§ã³ãã¯åžžã«ãµããšãŒãžã§ã³ãã¢ãŒãã«éæ ŒãããŸãã
äŸïŒãã¹ãŠã® Sisyphus ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãç¡å¹åïŒ
{
"sisyphus_agent": {
"disabled": true
}
}
ä»ã®ãšãŒãžã§ã³ãåæ§ãSisyphus ãšãŒãžã§ã³ããã«ã¹ã¿ãã€ãºå¯èœã§ãïŒ
{
"agents": {
"Sisyphus": {
"model": "anthropic/claude-sonnet-4",
"temperature": 0.3
},
"OpenCode-Builder": {
"model": "anthropic/claude-opus-4"
},
"Prometheus (Planner)": {
"model": "openai/gpt-5.2"
},
"Metis (Plan Consultant)": {
"model": "anthropic/claude-sonnet-4-5"
}
}
}
| ãªãã·ã§ã³ | ããã©ã«ã | 説æ |
|---|---|---|
disabled |
false |
true ã®å Žåããã¹ãŠã® Sisyphus ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãç¡å¹åããå
ã® build/plan ããã©ã€ããªãšããŠåŸ©å
ããŸãã |
default_builder_enabled |
false |
true ã®å ŽåãOpenCode-Builder ãšãŒãžã§ã³ããæå¹åããŸãïŒOpenCode build ãšåããSDK å¶éã«ããåå倿ŽïŒãããã©ã«ãã§ã¯ç¡å¹ã§ãã |
planner_enabled |
true |
true ã®å ŽåãPrometheus (Planner) ãšãŒãžã§ã³ããæå¹åããŸãïŒwork-planner æ¹æ³è«ãå«ãïŒãããã©ã«ãã§æå¹ã§ãã |
replace_plan |
true |
true ã®å Žåãããã©ã«ãã®ãã©ã³ãšãŒãžã§ã³ãããµããšãŒãžã§ã³ãã¢ãŒãã«éæ ŒãããŸããfalse ã«èšå®ãããšãPrometheus (Planner) ãšããã©ã«ãã®ãã©ã³ã®äž¡æ¹ãå©çšã§ããŸãã |
Background Tasks
ããã¯ã°ã©ãŠã³ããšãŒãžã§ã³ãã¿ã¹ã¯ã®åæå®è¡æ°ãèšå®ããŸãã䞊åã§å®è¡ã§ããããã¯ã°ã©ãŠã³ããšãŒãžã§ã³ãã®æ°ãå¶åŸ¡ããŸãã
{
"background_task": {
"defaultConcurrency": 5,
"providerConcurrency": {
"anthropic": 3,
"openai": 5,
"google": 10
},
"modelConcurrency": {
"anthropic/claude-opus-4-5": 2,
"google/gemini-3-flash": 10
}
}
}
| ãªãã·ã§ã³ | ããã©ã«ã | 説æ |
|---|---|---|
defaultConcurrency |
- | ãã¹ãŠã®ãããã€ããŒ/ã¢ãã«ã«å¯Ÿããããã©ã«ãã®æå€§åæããã¯ã°ã©ãŠã³ãã¿ã¹ã¯æ° |
providerConcurrency |
- | ãããã€ããŒããšã®åæå®è¡å¶éãããŒã¯ãããã€ããŒåïŒäŸïŒanthropicãopenaiãgoogleïŒ |
modelConcurrency |
- | ã¢ãã«ããšã®åæå®è¡å¶éãããŒã¯å®å
šãªã¢ãã«åïŒäŸïŒanthropic/claude-opus-4-5ïŒããããã€ããŒå¶éããåªå
ãããŸãã |
åªå
é äœ: modelConcurrency > providerConcurrency > defaultConcurrency
ãŠãŒã¹ã±ãŒã¹:
- é«äŸ¡ãªã¢ãã«ïŒäŸïŒOpusïŒãå¶éããŠã³ã¹ãã®æ¥å¢ãé²ã
- é«éã§å®äŸ¡ãªã¢ãã«ïŒäŸïŒGemini FlashïŒã«ããå€ãã®åæã¿ã¹ã¯ãèš±å¯ãã
- ãããã€ããŒã¬ãã«ã®äžéãèšå®ããŠãããã€ããŒã®ã¬ãŒããªããããéµå®ãã
Hooks
~/.config/opencode/oh-my-opencode.json ãŸã㯠.opencode/oh-my-opencode.json ã® disabled_hooks ãéããŠç¹å®ã®å
èµããã¯ãç¡å¹åã§ããŸãïŒ
{
"disabled_hooks": ["comment-checker", "agent-usage-reminder"]
}
å©çšå¯èœãªããã¯ïŒtodo-continuation-enforcer, context-window-monitor, session-recovery, session-notification, comment-checker, grep-output-truncator, tool-output-truncator, directory-agents-injector, directory-readme-injector, empty-task-response-detector, think-mode, anthropic-context-window-limit-recovery, rules-injector, background-notification, auto-update-checker, startup-toast, keyword-detector, agent-usage-reminder, non-interactive-env, interactive-bash-session, empty-message-sanitizer, compaction-context-injector, thinking-block-validator, claude-code-hooks, ralph-loop, preemptive-compaction
auto-update-checkerãšstartup-toastã«ã€ããŠ: startup-toast ããã¯ã¯ auto-update-checker ã®ãµãæ©èœã§ããã¢ããããŒããã§ãã¯ã¯æå¹ãªãŸãŸèµ·åããŒã¹ãéç¥ã®ã¿ãç¡å¹åããã«ã¯ãdisabled_hooks ã« "startup-toast" ã远å ããŠãã ããããã¹ãŠã®ã¢ããããŒããã§ãã¯æ©èœïŒããŒã¹ããå«ãïŒãç¡å¹åããã«ã¯ã"auto-update-checker" ã远å ããŠãã ããã
MCPs
Context7ãgrep.app MCP ãããã©ã«ãã§æå¹ã«ãªã£ãŠããŸãã
- context7: ã©ã€ãã©ãªã®ææ°å ¬åŒããã¥ã¡ã³ããååŸ
- grep_app: grep.app ãéããŠæ°çŸäžã®å ¬é GitHub ãªããžããªããè¶ é«éã³ãŒãæ€çŽ¢
äžèŠã§ããã°ã~/.config/opencode/oh-my-opencode.json ãŸã㯠.opencode/oh-my-opencode.json ã® disabled_mcps ã䜿çšããŠç¡å¹åã§ããŸãïŒ
{
"disabled_mcps": ["context7", "grep_app"]
}
LSP
OpenCode ã¯åæã®ããã« LSP ããŒã«ãæäŸããŠããŸãã Oh My OpenCode ã§ã¯ãLSP ã®ãªãã¡ã¯ã¿ãªã³ã°ïŒåå倿Žãã³ãŒãã¢ã¯ã·ã§ã³ïŒããŒã«ãæäŸããŸãã OpenCode ã§ãµããŒãããããã¹ãŠã® LSP æ§æããã³ã«ã¹ã¿ã èšå®ïŒopencode.json ã§èšå®ããããã®ïŒããã®ãŸãŸãµããŒãããOh My OpenCode å°çšã®è¿œå èšå®ã以äžã®ããã«å¯èœã§ãã
~/.config/opencode/oh-my-opencode.json ãŸã㯠.opencode/oh-my-opencode.json ã® lsp ãªãã·ã§ã³ãéã㊠LSP ãµãŒããŒã远å èšå®ã§ããŸãïŒ
{
"lsp": {
"typescript-language-server": {
"command": ["typescript-language-server", "--stdio"],
"extensions": [".ts", ".tsx"],
"priority": 10
},
"pylsp": {
"disabled": true
}
}
}
åãµãŒããŒã¯æ¬¡ããµããŒãããŸãïŒcommand, extensions, priority, env, initialization, disabledã
Experimental
å°æ¥ã®ããŒãžã§ã³ã§å€æŽãŸãã¯åé€ãããå¯èœæ§ã®ããå®éšçæ©èœã§ããæ³šæããŠäœ¿çšããŠãã ããã
{
"experimental": {
"preemptive_compaction_threshold": 0.85,
"truncate_all_tool_outputs": true,
"aggressive_truncation": true,
"auto_resume": true
}
}
| ãªãã·ã§ã³ | ããã©ã«ã | 説æ |
|---|---|---|
preemptive_compaction_threshold |
0.85 |
ããªãšã³ããã£ãã³ã³ãã¯ã·ã§ã³ãããªã¬ãŒããéŸå€ïŒ0.5-0.95ïŒãpreemptive-compaction ããã¯ã¯ããã©ã«ãã§æå¹ã§ãããã®ãªãã·ã§ã³ã§éŸå€ãã«ã¹ã¿ãã€ãºã§ããŸãã |
truncate_all_tool_outputs |
false |
ãã¯ã€ããªã¹ãã®ããŒã«ïŒGrepãGlobãLSPãAST-grepïŒã ãã§ãªãããã¹ãŠã®ããŒã«åºåãåãè©°ããŸããTool output truncator ã¯ããã©ã«ãã§æå¹ã§ã - disabled_hooksã§ç¡å¹åã§ããŸãã |
aggressive_truncation |
false |
ããŒã¯ã³å¶éãè¶ ããå ŽåãããŒã«åºåãç©æ¥µçã«åãè©°ããŠå¶éå ã«åããŸããããã©ã«ãã®åãè©°ãããç©æ¥µçã§ããäžååãªå Žåã¯èŠçŽ/埩å ã«ãã©ãŒã«ããã¯ããŸãã |
auto_resume |
false |
thinking block ãšã©ãŒã thinking disabled violation ããã®å埩æååŸãèªåçã«ã»ãã·ã§ã³ãåéããŸããæåŸã®ãŠãŒã¶ãŒã¡ãã»ãŒãžãæœåºããŠç¶è¡ããŸãã |
dcp_for_compaction |
false |
ã³ã³ãã¯ã·ã§ã³çšDCPïŒåçã³ã³ããã¹ãæŽçïŒãæå¹å - ããŒã¯ã³å¶éè¶ éæã«æåã«å®è¡ãããŸããã³ã³ãã¯ã·ã§ã³åã«éè€ããããŒã«åŒã³åºããšå€ãããŒã«åºåãæŽçããŸãã |
èŠåïŒãããã®æ©èœã¯å®éšçã§ãããäºæããªãåäœãåŒãèµ·ããå¯èœæ§ããããŸãã圱é¿ãçè§£ããå Žåã«ã®ã¿æå¹ã«ããŠãã ããã
äœè ã®ããŒã
Oh My OpenCode ãã€ã³ã¹ããŒã«ããŠãã ããã
ç§ã¯ãããŸã§ã$24,000 åã®ããŒã¯ã³ãçŽç²ã«å人ã®éçºç®çã§äœ¿çšããŠããŸããã ããããããŒã«ã詊ãã培åºçã«èšå®ããŸãããç§ã®éžæã¯ OpenCode ã§ããã
ç§ãã¶ã€ãã£ããã¹ãŠã®åé¡ãžã®çããããã®ãã©ã°ã€ã³ã«è©°ã蟌ã¿ãŸããããã ã€ã³ã¹ããŒã«ããŠäœ¿ã£ãŠãã ããã OpenCode ã Debian / ArchLinux ã ãšããããOh My OpenCode 㯠Ubuntu / Omarchy ã§ãã
AmpCode ã Claude Code ãã匷ã圱é¿ãšã€ã³ã¹ãã¬ãŒã·ã§ã³ãåãã圌ãã®æ©èœããã®ãŸãŸããããã¯ããè¯ããããã«ç§»æ€ããŸããããããŠä»ãäœãç¶ããŠããŸãã OpenCode ã§ããããã
ä»ã®ãšãŒãžã§ã³ãããŒãã¹ãçŽæããŠãããªããæäŸã§ããŠããªãããã«ãã¢ãã«ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãå®å®æ§ãè±å¯ãªæ©èœãããã OpenCode ã§äº«åããŠãã ããã ç§ããã¹ãããã¢ããããŒããç¶ããŸããç§ã¯ãã®ãããžã§ã¯ãã®æãç±å¿ãªãŠãŒã¶ãŒã§ãããã
- çŽç²ãªè«çåãäžçªéãã¢ãã«ã¯ã©ããïŒ
- ãããã°ã®ç¥ã¯èª°ãïŒ
- æç« ãæžãã®ãäžçªããŸãã®ã¯èª°ãïŒ
- ããã³ããšã³ããæ¯é ããã®ã¯èª°ãïŒ
- ããã¯ãšã³ããææ¡ããã®ã¯èª°ãïŒ
- æ¥åžžäœ¿ãã§æéã®ã¢ãã«ã¯äœãïŒ
- ä»ã®ããŒãã¹ãåºããŠããæ°æ©èœã¯äœãïŒ
ãã®ãã©ã°ã€ã³ã¯ããããã®çµéšã®çµæ¶ã§ããçããã¯ãã æé«ã®ãã®ãåãåã£ãŠãã ããããããã£ãšè¯ãã¢ã€ãã¢ãããã°ãPR ã¯ãã€ã§ãæè¿ã§ãã
Agent Harness éžã³ã§æ©ãã®ã¯ãããŸãããã ç§ããªãµãŒãããæé«ã®ãã®ãåãå ¥ããããã«ã¢ããããŒããåºãç¶ããŸãã
ãããã®æç« ã岿 ¢ã«èããããã£ãšè¯ãçãããæã¡ãªãããã²è²¢ç®ããŠãã ãããæè¿ããŸãã
ãããã§èšåãããã©ã®ãããžã§ã¯ããã¢ãã«ãšããç§ã«ã¯äžåé¢ä¿ããããŸãããããã¯çŽç²ã«å人çãªå®éšãšå¥œã¿ã«ãã£ãŠäœãããŸããã
ãã®ãããžã§ã¯ãã® 99% 㯠OpenCode ã䜿ã£ãŠæžãããŸãããæ©èœãäžå¿ã«ãã¹ãããŸããããç§ã¯ TypeScript ãæ£ããæžãæ¹æ³ãããŸãç¥ããŸããããããããã®ããã¥ã¡ã³ãã¯ç§ãçŽæ¥ã¬ãã¥ãŒãã倧éšåãæžãçŽããã®ã§ãå®å¿ããŠèªãã§ãã ããã
泚æ
- çç£æ§ãäžãããããå¯èœæ§ããããŸããé£ã®ååã«ãã¬ãªãããã«æ°ãã€ããŠãã ããã
- ãšã¯ãããç§ãèšããµãããŸããã©ãã誰ãåã€ãè³ããŸãããã
- 1.0.132 ãŸãã¯ãã以äžã®ããŒãžã§ã³ã䜿çšããŠããå ŽåãOpenCode ã®ãã°ã«ããèšå®ãæ£ããè¡ãããªãå¯èœæ§ããããŸãã
- ä¿®æ£ PR 㯠1.0.132 以éã«ããŒãžããããããæ°ããããŒãžã§ã³ã䜿çšããŠãã ããã
- äœè«ïŒãã® PR ããOhMyOpenCode ã® LibrarianãExploreãOracle ã»ããã¢ãããæŽ»çšããŠå¶ç¶çºèŠãããä¿®æ£ãããŸããã
- ä¿®æ£ PR 㯠1.0.132 以éã«ããŒãžããããããæ°ããããŒãžã§ã³ã䜿çšããŠãã ããã
ãã¡ãã®äŒæ¥ã®å°éå®¶ã«ãæçšããã ããŠããŸã
- Indent
- Making Spray - influencer marketing solution, vovushop - crossborder commerce platform, vreview - ai commerce review marketing solution
- Microsoft
ã¹ãã³ãµãŒ
- Numman Ali GitHub X
- æåã®ã¹ãã³ãµãŒ
- Aaron Iker GitHub X
- Suyeol Jeon (devxoul) GitHub
- ç§ã®ãã£ãªã¢ãã¹ã¿ãŒããããŠãã ãã£ãæ¹ã§ãããåªãããšãŒãžã§ã³ãã£ãã¯ã¯ãŒã¯ãããŒãã©ã®ããã«æ§ç¯ã§ãããã«ã€ããŠå€å€§ãªã€ã³ã¹ãã¬ãŒã·ã§ã³ãäžããŠãã ãã£ãæ¹ã§ããåªããããŒã ãäœãããã«åªããã·ã¹ãã ãã©ãèšèšãã¹ããå€ãã®ããšãåŠã³ããã®åŠã³ããã®harnessãäœãäžã§å€§ããªå©ããšãªããŸããã
- Hyerin Won (devwon) GitHub
çŽ æŽãããããŒããŒç»åãäœæããŠããã @junhoyeo ã«æè¬ããŸã



