- Document object-style fallback_models with per-model settings - Add model-settings compatibility normalization docs - Document file:// URI support for prompt and prompt_append - Add deterministic core-agent order (Tab cycling) docs - Update rename compatibility notes (legacy plugin warning) - Document doctor legacy package name detection - Add models.dev-backed capability cache documentation - Update Hephaestus default to gpt-5.4 (medium) - Correct MiniMax M2.7/M2.5 usage across all docs - Update all agent/category provider chain tables - Fix stale CLI install/doctor options to match source - Add refresh-model-capabilities command to CLI reference Co-authored-by: Sisyphus <sisyphus@oh-my-opencode>
1042 lines
54 KiB
Markdown
1042 lines
54 KiB
Markdown
# Oh-My-OpenAgent Features Reference
|
|
|
|
## Agents
|
|
|
|
Oh-My-OpenAgent provides 11 specialized AI agents. Each has distinct expertise, optimized models, and tool permissions.
|
|
|
|
### Core Agents
|
|
|
|
Core-agent tab cycling is deterministic via injected runtime order field. The fixed priority order is Sisyphus (order: 1), Hephaestus (order: 2), Prometheus (order: 3), and Atlas (order: 4). Remaining agents follow after that stable core ordering.
|
|
|
|
| Agent | Model | Purpose |
|
|
| --------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| **Sisyphus** | `claude-opus-4-6` | The default orchestrator. Plans, delegates, and executes complex tasks using specialized subagents with aggressive parallel execution. Todo-driven workflow with extended thinking (32k budget). Fallback: `glm-5` → `big-pickle`. |
|
|
| **Hephaestus** | `gpt-5.4` | The Legitimate Craftsman. Autonomous deep worker inspired by AmpCode's deep mode. Goal-oriented execution with thorough research before action. Explores codebase patterns, completes tasks end-to-end without premature stopping. Named after the Greek god of forge and craftsmanship. Requires a GPT-capable provider. |
|
|
| **Oracle** | `gpt-5.4` | Architecture decisions, code review, debugging. Read-only consultation with stellar logical reasoning and deep analysis. Inspired by AmpCode. Fallback: `gemini-3.1-pro` → `claude-opus-4-6`. |
|
|
| **Librarian** | `minimax-m2.7` | Multi-repo analysis, documentation lookup, OSS implementation examples. Deep codebase understanding with evidence-based answers. Primary OpenCode Go path uses MiniMax M2.7. Other provider catalogs may still fall back to MiniMax M2.5, then `claude-haiku-4-5` and `gpt-5-nano`. |
|
|
| **Explore** | `grok-code-fast-1` | Fast codebase exploration and contextual grep. Primary path stays on Grok Code Fast 1. MiniMax M2.7 is now used where provider catalogs expose it, while some OpenCode fallback paths still use MiniMax M2.5 for catalog compatibility. |
|
|
| **Multimodal-Looker** | `gpt-5.4` | Visual content specialist. Analyzes PDFs, images, diagrams to extract information. Fallback: `k2p5` → `glm-4.6v` → `gpt-5-nano`. |
|
|
### Planning Agents
|
|
|
|
| Agent | Model | Purpose |
|
|
| -------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| **Prometheus** | `claude-opus-4-6` | Strategic planner with interview mode. Creates detailed work plans through iterative questioning. Fallback: `gpt-5.4` → `gemini-3.1-pro`. |
|
|
| **Metis** | `claude-opus-4-6` | Plan consultant — pre-planning analysis. Identifies hidden intentions, ambiguities, and AI failure points. Fallback: `gpt-5.4` → `gemini-3.1-pro`. |
|
|
| **Momus** | `gpt-5.4` | Plan reviewer — validates plans against clarity, verifiability, and completeness standards. Fallback: `claude-opus-4-6` → `gemini-3.1-pro`. |
|
|
|
|
### Orchestration Agents
|
|
|
|
| Agent | Model | Purpose |
|
|
| ------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| **Atlas** | `claude-sonnet-4-6` | Todo-list orchestrator. Executes planned tasks systematically, managing todo items and coordinating work. Fallback: `gpt-5.4` (medium). |
|
|
| **Sisyphus-Junior** | _(category-dependent)_ | Category-spawned executor. Model is selected automatically based on the task category (visual-engineering, quick, deep, etc.). Used when the main agent delegates work via the `task` tool. |
|
|
|
|
### Invoking Agents
|
|
|
|
The main agent invokes these automatically, but you can call them explicitly:
|
|
|
|
```
|
|
Ask @oracle to review this design and propose an architecture
|
|
Ask @librarian how this is implemented - why does the behavior keep changing?
|
|
Ask @explore for the policy on this feature
|
|
```
|
|
|
|
### Tool Restrictions
|
|
|
|
| Agent | Restrictions |
|
|
| ----------------- | --------------------------------------------------------------------------------------- |
|
|
| oracle | Read-only: cannot write, edit, or delegate (blocked: write, edit, task, call_omo_agent) |
|
|
| librarian | Cannot write, edit, or delegate (blocked: write, edit, task, call_omo_agent) |
|
|
| explore | Cannot write, edit, or delegate (blocked: write, edit, task, call_omo_agent) |
|
|
| multimodal-looker | Allowlist: `read` only |
|
|
| atlas | Cannot delegate (blocked: task, call_omo_agent) |
|
|
| momus | Cannot write, edit, or delegate (blocked: write, edit, task) |
|
|
|
|
### Background Agents
|
|
|
|
Run agents in the background and continue working:
|
|
|
|
- Have GPT debug while Claude tries different approaches
|
|
- Gemini writes frontend while Claude handles backend
|
|
- Fire massive parallel searches, continue implementation, use results when ready
|
|
|
|
```
|
|
# Launch in background
|
|
task(subagent_type="explore", load_skills=[], prompt="Find auth implementations", run_in_background=true)
|
|
|
|
# Continue working...
|
|
# System notifies on completion
|
|
|
|
# Retrieve results when needed
|
|
background_output(task_id="bg_abc123")
|
|
```
|
|
|
|
#### Visual Multi-Agent with Tmux
|
|
|
|
Enable `tmux.enabled` to see background agents in separate tmux panes:
|
|
|
|
```json
|
|
{
|
|
"tmux": {
|
|
"enabled": true,
|
|
"layout": "main-vertical"
|
|
}
|
|
}
|
|
```
|
|
|
|
When running inside tmux:
|
|
|
|
- Background agents spawn in new panes
|
|
- Watch multiple agents work in real-time
|
|
- Each pane shows agent output live
|
|
- Auto-cleanup when agents complete
|
|
- **Stable agent ordering**: core-agent tab cycling is deterministic via injected runtime order field (Sisyphus: 1, Hephaestus: 2, Prometheus: 3, Atlas: 4)
|
|
|
|
Customize agent models, prompts, and permissions in `oh-my-opencode.jsonc`.
|
|
|
|
## Category System
|
|
|
|
A Category is an agent configuration preset optimized for specific domains. Instead of delegating everything to a single AI agent, it is far more efficient to invoke specialists tailored to the nature of the task.
|
|
|
|
### What Categories Are and Why They Matter
|
|
|
|
- **Category**: "What kind of work is this?" (determines model, temperature, prompt mindset)
|
|
- **Skill**: "What tools and knowledge are needed?" (injects specialized knowledge, MCP tools, workflows)
|
|
|
|
By combining these two concepts, you can generate optimal agents through `task`.
|
|
|
|
### Built-in Categories
|
|
|
|
| Category | Default Model | Use Cases |
|
|
| -------------------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
| `visual-engineering` | `google/gemini-3.1-pro` | Frontend, UI/UX, design, styling, animation |
|
|
| `ultrabrain` | `openai/gpt-5.4` (xhigh) | Deep logical reasoning, complex architecture decisions requiring extensive analysis |
|
|
| `deep` | `openai/gpt-5.3-codex` (medium) | Goal-oriented autonomous problem-solving. Thorough research before action. For hairy problems requiring deep understanding. |
|
|
| `artistry` | `google/gemini-3.1-pro` (high) | Highly creative/artistic tasks, novel ideas |
|
|
| `quick` | `openai/gpt-5.4-mini` | Trivial tasks - single file changes, typo fixes, simple modifications |
|
|
| `unspecified-low` | `anthropic/claude-sonnet-4-6` | Tasks that don't fit other categories, low effort required |
|
|
| `unspecified-high` | `anthropic/claude-opus-4-6` (max) | Tasks that don't fit other categories, high effort required |
|
|
| `writing` | `google/gemini-3-flash` | Documentation, prose, technical writing |
|
|
|
|
### Usage
|
|
|
|
Specify the `category` parameter when invoking the `task` tool.
|
|
|
|
```typescript
|
|
task({
|
|
category: "visual-engineering",
|
|
prompt: "Add a responsive chart component to the dashboard page",
|
|
});
|
|
```
|
|
|
|
### Custom Categories
|
|
|
|
You can define custom categories in your plugin config file. During the rename transition, both `oh-my-openagent.json[c]` and legacy `oh-my-opencode.json[c]` basenames are recognized.
|
|
|
|
#### Category Configuration Schema
|
|
|
|
| Field | Type | Description |
|
|
| ------------------- | ------- | --------------------------------------------------------------------------- |
|
|
| `description` | string | Human-readable description of the category's purpose. Shown in task prompt. |
|
|
| `model` | string | AI model ID to use (e.g., `anthropic/claude-opus-4-6`) |
|
|
| `variant` | string | Model variant (e.g., `max`, `xhigh`) |
|
|
| `temperature` | number | Creativity level (0.0 ~ 2.0). Lower is more deterministic. |
|
|
| `top_p` | number | Nucleus sampling parameter (0.0 ~ 1.0) |
|
|
| `prompt_append` | string | Content to append to system prompt when this category is selected |
|
|
| `thinking` | object | Thinking model configuration (`{ type: "enabled", budgetTokens: 16000 }`) |
|
|
| `reasoningEffort` | string | Reasoning effort level (`low`, `medium`, `high`) |
|
|
| `textVerbosity` | string | Text verbosity level (`low`, `medium`, `high`) |
|
|
| `tools` | object | Tool usage control (disable with `{ "tool_name": false }`) |
|
|
| `maxTokens` | number | Maximum response token count |
|
|
| `is_unstable_agent` | boolean | Mark agent as unstable - forces background mode for monitoring |
|
|
|
|
#### Example Configuration
|
|
|
|
```jsonc
|
|
{
|
|
"categories": {
|
|
// 1. Define new custom category
|
|
"korean-writer": {
|
|
"model": "google/gemini-3-flash",
|
|
"temperature": 0.5,
|
|
"prompt_append": "You are a Korean technical writer. Maintain a friendly and clear tone.",
|
|
},
|
|
|
|
// 2. Override existing category (change model)
|
|
"visual-engineering": {
|
|
"model": "openai/gpt-5.4",
|
|
"temperature": 0.8,
|
|
},
|
|
|
|
// 3. Configure thinking model and restrict tools
|
|
"deep-reasoning": {
|
|
"model": "anthropic/claude-opus-4-6",
|
|
"thinking": {
|
|
"type": "enabled",
|
|
"budgetTokens": 32000,
|
|
},
|
|
"tools": {
|
|
"websearch_web_search_exa": false,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
```
|
|
|
|
### Sisyphus-Junior as Delegated Executor
|
|
|
|
When you use a Category, a special agent called **Sisyphus-Junior** performs the work.
|
|
|
|
- **Characteristic**: Cannot **re-delegate** tasks to other agents.
|
|
- **Purpose**: Prevents infinite delegation loops and ensures focus on the assigned task.
|
|
|
|
## Advanced Configuration
|
|
|
|
### Rename Compatibility
|
|
|
|
The published package and binary remain `oh-my-opencode`. Inside `opencode.json`, the compatibility layer now prefers the plugin entry `oh-my-openagent`, while legacy `oh-my-opencode` entries still load with a warning. Plugin config files (`oh-my-openagent.json[c]` or legacy `oh-my-opencode.json[c]`) are recognized during the transition. Run `bunx oh-my-opencode doctor` to check for legacy package name warnings.
|
|
|
|
### Fallback Models
|
|
|
|
Configure per-agent fallback chains with arrays that can mix plain model strings and per-model objects:
|
|
|
|
```jsonc
|
|
{
|
|
"agents": {
|
|
"sisyphus": {
|
|
"fallback_models": [
|
|
"opencode/glm-5",
|
|
{ "model": "openai/gpt-5.4", "variant": "high" },
|
|
{ "model": "anthropic/claude-sonnet-4-6", "thinking": { "type": "enabled", "budgetTokens": 64000 } }
|
|
]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
When a model errors, the runtime can move through the configured fallback array. Object entries let you tune the backup model itself instead of only swapping the model name.
|
|
|
|
### File-Based Prompts
|
|
|
|
Load agent system prompts from external files using `file://` URLs in the `prompt` field, or append additional content with `prompt_append`. The `prompt_append` field also works on categories.
|
|
|
|
```jsonc
|
|
{
|
|
"agents": {
|
|
"sisyphus": {
|
|
"prompt": "file:///path/to/custom-prompt.md"
|
|
},
|
|
"oracle": {
|
|
"prompt_append": "file:///path/to/additional-context.md"
|
|
}
|
|
},
|
|
"categories": {
|
|
"deep": {
|
|
"prompt_append": "file:///path/to/deep-category-append.md"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Supports `~` expansion for home directory and relative `file://` paths.
|
|
|
|
Useful for:
|
|
- Version controlling prompts separately from config
|
|
- Sharing prompts across projects
|
|
- Keeping configuration files concise
|
|
- Adding category-specific context without duplicating base prompts
|
|
|
|
The file content is loaded at runtime and injected into the agent's system prompt.
|
|
|
|
### Session Recovery
|
|
|
|
The system automatically recovers from common session failures without user intervention:
|
|
|
|
- **Missing tool results**: reconstructs recoverable tool state and skips invalid tool-part IDs instead of failing the whole recovery pass
|
|
- **Thinking block violations**: Recovers from API thinking block mismatches
|
|
- **Empty messages**: Reconstructs message history when content is missing
|
|
- **Context window limits**: Gracefully handles Claude context window exceeded errors with intelligent compaction
|
|
- **JSON parse errors**: Recovers from malformed tool outputs
|
|
|
|
Recovery happens transparently during agent execution. You see the result, not the failure.
|
|
## Skills
|
|
|
|
Skills provide specialized workflows with embedded MCP servers and detailed instructions. A Skill is a mechanism that injects **specialized knowledge (Context)** and **tools (MCP)** for specific domains into agents.
|
|
|
|
### Built-in Skills
|
|
|
|
| Skill | Trigger | Description |
|
|
| ------------------ | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| **git-master** | commit, rebase, squash, "who wrote", "when was X added" | Git expert. Detects commit styles, splits atomic commits, formulates rebase strategies. Three specializations: Commit Architect (atomic commits, dependency ordering, style detection), Rebase Surgeon (history rewriting, conflict resolution, branch cleanup), History Archaeologist (finding when/where specific changes were introduced). |
|
|
| **playwright** | Browser tasks, testing, screenshots | Browser automation via Playwright MCP. MUST USE for browser verification, browsing, web scraping, testing, and screenshots. |
|
|
| **playwright-cli** | Browser tasks on Playwright CLI | Browser automation through the Playwright CLI integration. Useful when direct CLI scripting is preferred over MCP. |
|
|
| **agent-browser** | Browser tasks on agent-browser | Browser automation via the `agent-browser` CLI. Covers navigation, snapshots, screenshots, network inspection, and scripted interactions. |
|
|
| **dev-browser** | Stateful browser scripting | Browser automation with persistent page state for iterative workflows and authenticated sessions. |
|
|
| **frontend-ui-ux** | UI/UX tasks, styling | Designer-turned-developer persona. Crafts stunning UI/UX even without design mockups. Emphasizes bold aesthetic direction, distinctive typography, cohesive color palettes. |
|
|
|
|
#### git-master Core Principles
|
|
|
|
**Multiple Commits by Default**:
|
|
|
|
```
|
|
3+ files -> MUST be 2+ commits
|
|
5+ files -> MUST be 3+ commits
|
|
10+ files -> MUST be 5+ commits
|
|
```
|
|
|
|
**Automatic Style Detection**:
|
|
|
|
- Analyzes last 30 commits for language (Korean/English) and style (semantic/plain/short)
|
|
- Matches your repo's commit conventions automatically
|
|
|
|
**Usage**:
|
|
|
|
```
|
|
/git-master commit these changes
|
|
/git-master rebase onto main
|
|
/git-master who wrote this authentication code?
|
|
```
|
|
|
|
#### frontend-ui-ux Design Process
|
|
|
|
- **Design Process**: Purpose, Tone, Constraints, Differentiation
|
|
- **Aesthetic Direction**: Choose extreme - brutalist, maximalist, retro-futuristic, luxury, playful
|
|
- **Typography**: Distinctive fonts, avoid generic (Inter, Roboto, Arial)
|
|
- **Color**: Cohesive palettes with sharp accents, avoid purple-on-white AI slop
|
|
- **Motion**: High-impact staggered reveals, scroll-triggering, surprising hover states
|
|
- **Anti-Patterns**: Generic fonts, predictable layouts, cookie-cutter design
|
|
|
|
### Browser Automation Options
|
|
|
|
Oh-My-OpenAgent provides two browser automation providers, configurable via `browser_automation_engine.provider`.
|
|
|
|
#### Option 1: Playwright MCP (Default)
|
|
|
|
```yaml
|
|
mcp:
|
|
playwright:
|
|
command: npx
|
|
args: ["@playwright/mcp@latest"]
|
|
```
|
|
|
|
**Usage**:
|
|
|
|
```
|
|
/playwright Navigate to example.com and take a screenshot
|
|
```
|
|
|
|
#### Option 2: Agent Browser CLI (Vercel)
|
|
|
|
```json
|
|
{
|
|
"browser_automation_engine": {
|
|
"provider": "agent-browser"
|
|
}
|
|
}
|
|
```
|
|
|
|
**Requires installation**:
|
|
|
|
```bash
|
|
bun add -g agent-browser
|
|
```
|
|
|
|
**Usage**:
|
|
|
|
```
|
|
Use agent-browser to navigate to example.com and extract the main heading
|
|
```
|
|
|
|
**Capabilities (Both Providers)**:
|
|
|
|
- Navigate and interact with web pages
|
|
- Take screenshots and PDFs
|
|
- Fill forms and click elements
|
|
- Wait for network requests
|
|
- Scrape content
|
|
|
|
### Custom Skill Creation (SKILL.md)
|
|
|
|
You can add custom skills directly to `.opencode/skills/` in your project root or `~/.claude/skills/` in your home directory.
|
|
|
|
**Example: `.opencode/skills/my-skill/SKILL.md`**
|
|
|
|
```markdown
|
|
---
|
|
name: my-skill
|
|
description: My special custom skill
|
|
mcp:
|
|
my-mcp:
|
|
command: npx
|
|
args: ["-y", "my-mcp-server"]
|
|
---
|
|
|
|
# My Skill Prompt
|
|
|
|
This content will be injected into the agent's system prompt.
|
|
...
|
|
```
|
|
|
|
**Skill Load Locations** (priority order, highest first):
|
|
|
|
- `.opencode/skills/*/SKILL.md` (project, OpenCode native)
|
|
- `~/.config/opencode/skills/*/SKILL.md` (user, OpenCode native)
|
|
- `.claude/skills/*/SKILL.md` (project, Claude Code compat)
|
|
- `.agents/skills/*/SKILL.md` (project, Agents convention)
|
|
- `~/.agents/skills/*/SKILL.md` (user, Agents convention)
|
|
|
|
Same-named skill at higher priority overrides lower.
|
|
|
|
Disable built-in skills via `disabled_skills: ["playwright"]` in config.
|
|
|
|
### Category + Skill Combo Strategies
|
|
|
|
You can create powerful specialized agents by combining Categories and Skills.
|
|
|
|
#### The Designer (UI Implementation)
|
|
|
|
- **Category**: `visual-engineering`
|
|
- **load_skills**: `["frontend-ui-ux", "playwright"]`
|
|
- **Effect**: Implements aesthetic UI and verifies rendering results directly in browser.
|
|
|
|
#### The Architect (Design Review)
|
|
|
|
- **Category**: `ultrabrain`
|
|
- **load_skills**: `[]` (pure reasoning)
|
|
- **Effect**: Leverages GPT-5.4 xhigh reasoning for in-depth system architecture analysis.
|
|
|
|
#### The Maintainer (Quick Fixes)
|
|
|
|
- **Category**: `quick`
|
|
- **load_skills**: `["git-master"]`
|
|
- **Effect**: Uses cost-effective models to quickly fix code and generate clean commits.
|
|
|
|
### task Prompt Guide
|
|
|
|
When delegating, **clear and specific** prompts are essential. Include these 7 elements:
|
|
|
|
1. **TASK**: What needs to be done? (single objective)
|
|
2. **EXPECTED OUTCOME**: What is the deliverable?
|
|
3. **REQUIRED SKILLS**: Which skills should be loaded via `load_skills`?
|
|
4. **REQUIRED TOOLS**: Which tools must be used? (whitelist)
|
|
5. **MUST DO**: What must be done (constraints)
|
|
6. **MUST NOT DO**: What must never be done
|
|
7. **CONTEXT**: File paths, existing patterns, reference materials
|
|
|
|
**Bad Example**:
|
|
|
|
> "Fix this"
|
|
|
|
**Good Example**:
|
|
|
|
> **TASK**: Fix mobile layout breaking issue in `LoginButton.tsx`
|
|
> **CONTEXT**: `src/components/LoginButton.tsx`, using Tailwind CSS
|
|
> **MUST DO**: Change flex-direction at `md:` breakpoint
|
|
> **MUST NOT DO**: Modify existing desktop layout
|
|
> **EXPECTED**: Buttons align vertically on mobile
|
|
|
|
## Commands
|
|
|
|
Commands are slash-triggered workflows that execute predefined templates.
|
|
|
|
### Built-in Commands
|
|
|
|
| Command | Description |
|
|
| -------------------- | ------------------------------------------------------------------------------------------ |
|
|
| `/init-deep` | Initialize hierarchical AGENTS.md knowledge base |
|
|
| `/ralph-loop` | Start self-referential development loop until completion |
|
|
| `/ulw-loop` | Start ultrawork loop - continues with ultrawork mode |
|
|
| `/cancel-ralph` | Cancel active Ralph Loop |
|
|
| `/refactor` | Intelligent refactoring with LSP, AST-grep, architecture analysis, and TDD verification |
|
|
| `/start-work` | Start Sisyphus work session from Prometheus plan |
|
|
| `/stop-continuation` | Stop all continuation mechanisms (ralph loop, todo continuation, boulder) for this session |
|
|
| `/handoff` | Create a detailed context summary for continuing work in a new session |
|
|
|
|
### /init-deep
|
|
|
|
**Purpose**: Generate hierarchical AGENTS.md files throughout your project
|
|
|
|
**Usage**:
|
|
|
|
```
|
|
/init-deep [--create-new] [--max-depth=N]
|
|
```
|
|
|
|
Creates directory-specific context files that agents automatically read:
|
|
|
|
```
|
|
project/
|
|
├── AGENTS.md # Project-wide context
|
|
├── src/
|
|
│ ├── AGENTS.md # src-specific context
|
|
│ └── components/
|
|
│ └── AGENTS.md # Component-specific context
|
|
```
|
|
|
|
### /ralph-loop
|
|
|
|
**Purpose**: Self-referential development loop that runs until task completion
|
|
|
|
**Named after**: Anthropic's Ralph Wiggum plugin
|
|
|
|
**Usage**:
|
|
|
|
```
|
|
/ralph-loop "Build a REST API with authentication"
|
|
/ralph-loop "Refactor the payment module" --max-iterations=50
|
|
```
|
|
|
|
**Behavior**:
|
|
|
|
- Agent works continuously toward the goal
|
|
- Detects `<promise>DONE</promise>` to know when complete
|
|
- Auto-continues if agent stops without completion
|
|
- Ends when: completion detected, max iterations reached (default 100), or `/cancel-ralph`
|
|
|
|
**Configure**: `{ "ralph_loop": { "enabled": true, "default_max_iterations": 100 } }`
|
|
|
|
### /ulw-loop
|
|
|
|
**Purpose**: Same as ralph-loop but with ultrawork mode active
|
|
|
|
Everything runs at maximum intensity - parallel agents, background tasks, aggressive exploration.
|
|
|
|
### /refactor
|
|
|
|
**Purpose**: Intelligent refactoring with full toolchain
|
|
|
|
**Usage**:
|
|
|
|
```
|
|
/refactor <target> [--scope=<file|module|project>] [--strategy=<safe|aggressive>]
|
|
```
|
|
|
|
**Features**:
|
|
|
|
- LSP-powered rename and navigation
|
|
- AST-grep for pattern matching
|
|
- Architecture analysis before changes
|
|
- TDD verification after changes
|
|
- Codemap generation
|
|
|
|
### /start-work
|
|
|
|
**Purpose**: Start execution from a Prometheus-generated plan
|
|
|
|
**Usage**:
|
|
|
|
```
|
|
/start-work [plan-name]
|
|
```
|
|
|
|
Uses atlas agent to execute planned tasks systematically.
|
|
|
|
### /stop-continuation
|
|
|
|
**Purpose**: Stop all continuation mechanisms for this session
|
|
|
|
Stops ralph loop, todo continuation, and boulder state. Use when you want the agent to stop its current multi-step workflow.
|
|
|
|
### /handoff
|
|
|
|
**Purpose**: Create a detailed context summary for continuing work in a new session
|
|
|
|
Generates a structured handoff document capturing the current state, what was done, what remains, and relevant file paths — enabling seamless continuation in a fresh session.
|
|
|
|
### Custom Commands
|
|
|
|
Load custom commands from:
|
|
|
|
- `.opencode/command/*.md` (project, OpenCode native)
|
|
- `~/.config/opencode/command/*.md` (user, OpenCode native)
|
|
- `.claude/commands/*.md` (project, Claude Code compat)
|
|
- `~/.config/opencode/commands/*.md` (user, Claude Code compat)
|
|
|
|
## Tools
|
|
|
|
### Code Search Tools
|
|
|
|
| Tool | Description |
|
|
| -------- | ----------------------------------------------------------------- |
|
|
| **grep** | Content search using regular expressions. Filter by file pattern. |
|
|
| **glob** | Fast file pattern matching. Find files by name patterns. |
|
|
|
|
### Edit Tools
|
|
|
|
| Tool | Description |
|
|
| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| **edit** | Hash-anchored edit tool. Uses `LINE#ID` format for precise, safe modifications. Validates content hashes before applying changes — zero stale-line errors. |
|
|
|
|
### LSP Tools (IDE Features for Agents)
|
|
|
|
| Tool | Description |
|
|
| ----------------------- | ------------------------------------------- |
|
|
| **lsp_diagnostics** | Get errors/warnings before build |
|
|
| **lsp_prepare_rename** | Validate rename operation |
|
|
| **lsp_rename** | Rename symbol across workspace |
|
|
| **lsp_goto_definition** | Jump to symbol definition |
|
|
| **lsp_find_references** | Find all usages across workspace |
|
|
| **lsp_symbols** | Get file outline or workspace symbol search |
|
|
|
|
### AST-Grep Tools
|
|
|
|
| Tool | Description |
|
|
| -------------------- | -------------------------------------------- |
|
|
| **ast_grep_search** | AST-aware code pattern search (25 languages) |
|
|
| **ast_grep_replace** | AST-aware code replacement |
|
|
|
|
### Delegation Tools
|
|
|
|
| Tool | Description |
|
|
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| **call_omo_agent** | Spawn explore/librarian agents. Supports `run_in_background`. |
|
|
| **task** | Category-based task delegation. Supports built-in categories like `visual-engineering`, `ultrabrain`, `deep`, `artistry`, `quick`, `unspecified-low`, `unspecified-high`, and `writing`, or direct agent targeting via `subagent_type`. |
|
|
| **background_output** | Retrieve background task results |
|
|
| **background_cancel** | Cancel running background tasks |
|
|
|
|
### Visual Analysis Tools
|
|
|
|
| Tool | Description |
|
|
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| **look_at** | Analyze media files (PDFs, images, diagrams) via Multimodal-Looker agent. Extracts specific information or summaries from documents, describes visual content. |
|
|
|
|
### Skill Tools
|
|
|
|
| Tool | Description |
|
|
| ------------- | ------------------------------------------------------------------------------------------------------ |
|
|
| **skill** | Load and execute a skill or slash command by name. Returns detailed instructions with context applied. |
|
|
| **skill_mcp** | Invoke MCP server operations from skill-embedded MCPs. |
|
|
|
|
### Session Tools
|
|
|
|
| Tool | Description |
|
|
| ------------------ | ---------------------------------------- |
|
|
| **session_list** | List all OpenCode sessions |
|
|
| **session_read** | Read messages and history from a session |
|
|
| **session_search** | Full-text search across session messages |
|
|
| **session_info** | Get session metadata and statistics |
|
|
|
|
### Task Management Tools
|
|
|
|
Requires `experimental.task_system: true` in config.
|
|
|
|
| Tool | Description |
|
|
| --------------- | ---------------------------------------- |
|
|
| **task_create** | Create a new task with auto-generated ID |
|
|
| **task_get** | Retrieve a task by ID |
|
|
| **task_list** | List all active tasks |
|
|
| **task_update** | Update an existing task |
|
|
|
|
#### Task System Details
|
|
|
|
**Note on Claude Code Alignment**: This implementation follows Claude Code's internal Task tool signatures (`TaskCreate`, `TaskUpdate`, `TaskList`, `TaskGet`) and field naming conventions (`subject`, `blockedBy`, `blocks`, etc.). However, Anthropic has not published official documentation for these tools. This is Oh My OpenAgent's own implementation based on observed Claude Code behavior and internal specifications.
|
|
|
|
**Task Schema**:
|
|
|
|
```ts
|
|
interface Task {
|
|
id: string; // T-{uuid}
|
|
subject: string; // Imperative: "Run tests"
|
|
description: string;
|
|
status: "pending" | "in_progress" | "completed" | "deleted";
|
|
activeForm?: string; // Present continuous: "Running tests"
|
|
blocks: string[]; // Tasks this blocks
|
|
blockedBy: string[]; // Tasks blocking this
|
|
owner?: string; // Agent name
|
|
metadata?: Record<string, unknown>;
|
|
threadID: string; // Session ID (auto-set)
|
|
}
|
|
```
|
|
|
|
**Dependencies and Parallel Execution**:
|
|
|
|
```
|
|
[Build Frontend] ──┐
|
|
├──→ [Integration Tests] ──→ [Deploy]
|
|
[Build Backend] ──┘
|
|
```
|
|
|
|
- Tasks with empty `blockedBy` run in parallel
|
|
- Dependent tasks wait until blockers complete
|
|
|
|
**Example Workflow**:
|
|
|
|
```ts
|
|
TaskCreate({ subject: "Build frontend" }); // T-001
|
|
TaskCreate({ subject: "Build backend" }); // T-002
|
|
TaskCreate({ subject: "Run integration tests", blockedBy: ["T-001", "T-002"] }); // T-003
|
|
|
|
TaskList();
|
|
// T-001 [pending] Build frontend blockedBy: []
|
|
// T-002 [pending] Build backend blockedBy: []
|
|
// T-003 [pending] Integration tests blockedBy: [T-001, T-002]
|
|
|
|
TaskUpdate({ id: "T-001", status: "completed" });
|
|
TaskUpdate({ id: "T-002", status: "completed" });
|
|
// T-003 now unblocked
|
|
```
|
|
|
|
**Storage**: Tasks are stored as JSON files in `.sisyphus/tasks/`.
|
|
|
|
**Difference from TodoWrite**:
|
|
|
|
| Feature | TodoWrite | Task System |
|
|
| ------------------ | -------------- | -------------------------- |
|
|
| Storage | Session memory | File system |
|
|
| Persistence | Lost on close | Survives restart |
|
|
| Dependencies | None | Full support (`blockedBy`) |
|
|
| Parallel execution | Manual | Automatic optimization |
|
|
|
|
**When to Use**: Use Tasks when work has multiple steps with dependencies, multiple subagents will collaborate, or progress should persist across sessions.
|
|
|
|
### Interactive Terminal Tools
|
|
|
|
| Tool | Description |
|
|
| -------------------- | -------------------------------------------------------------------------------------------------- |
|
|
| **interactive_bash** | Tmux-based terminal for TUI apps (vim, htop, pudb). Pass tmux subcommands directly without prefix. |
|
|
|
|
**Usage Examples**:
|
|
|
|
```bash
|
|
# Create a new session
|
|
interactive_bash(tmux_command="new-session -d -s dev-app")
|
|
|
|
# Send keystrokes to a session
|
|
interactive_bash(tmux_command="send-keys -t dev-app 'vim main.py' Enter")
|
|
|
|
# Capture pane output
|
|
interactive_bash(tmux_command="capture-pane -p -t dev-app")
|
|
```
|
|
|
|
**Key Points**:
|
|
|
|
- Commands are tmux subcommands (no `tmux` prefix)
|
|
- Use for interactive apps that need persistent sessions
|
|
- One-shot commands should use regular `Bash` tool with `&`
|
|
|
|
## Hooks
|
|
|
|
Hooks intercept and modify behavior at key points in the agent lifecycle across the full session, message, tool, and parameter pipeline.
|
|
|
|
### Hook Events
|
|
|
|
| Event | When | Can |
|
|
| --------------- | ----------------------------- | -------------------------------------------------- |
|
|
| **PreToolUse** | Before tool execution | Block, modify input, inject context |
|
|
| **PostToolUse** | After tool execution | Add warnings, modify output, inject messages |
|
|
| **Message** | During message processing | Transform content, detect keywords, activate modes |
|
|
| **Event** | On session lifecycle changes | Recovery, fallback, notifications |
|
|
| **Transform** | During context transformation | Inject context, validate blocks |
|
|
| **Params** | When setting API parameters | Adjust model settings, effort level |
|
|
|
|
### Built-in Hooks
|
|
|
|
#### Context & Injection
|
|
|
|
| Hook | Event | Description |
|
|
| ------------------------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| **directory-agents-injector** | PreToolUse + PostToolUse | Auto-injects AGENTS.md when reading files. Walks from file to project root, collecting all AGENTS.md files. Deprecated for OpenCode 1.1.37+ — Auto-disabled when native AGENTS.md injection is available. |
|
|
| **directory-readme-injector** | PreToolUse + PostToolUse | Auto-injects README.md for directory context. |
|
|
| **rules-injector** | PreToolUse + PostToolUse | Injects rules from `.claude/rules/` when conditions match. Supports globs and alwaysApply. |
|
|
| **compaction-context-injector** | Event | Preserves critical context during session compaction. |
|
|
| **context-window-monitor** | Event | Monitors context window usage and tracks token consumption. |
|
|
| **preemptive-compaction** | Event | Proactively compacts sessions before hitting token limits. |
|
|
|
|
#### Productivity & Control
|
|
|
|
| Hook | Event | Description |
|
|
| --------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| **keyword-detector** | Message + Transform | Detects keywords and activates modes: `ultrawork`/`ulw` (max performance), `search`/`find` (parallel exploration), `analyze`/`investigate` (deep analysis). |
|
|
| **think-mode** | Params | Auto-detects extended thinking needs. Catches "think deeply", "ultrathink" and adjusts model settings. |
|
|
| **ralph-loop** | Event + Message | Manages self-referential loop continuation. |
|
|
| **start-work** | Message | Handles /start-work command execution. |
|
|
| **auto-slash-command** | Message | Automatically executes slash commands from prompts. |
|
|
| **stop-continuation-guard** | Event + Message | Guards the stop-continuation mechanism. |
|
|
| **category-skill-reminder** | Event + PostToolUse | Reminds agents about available category skills for delegation. |
|
|
| **anthropic-effort** | Params | Adjusts Anthropic API effort level based on context. |
|
|
|
|
#### Quality & Safety
|
|
|
|
| Hook | Event | Description |
|
|
| ------------------------------- | ------------------------ | ----------------------------------------------------------------------------------------- |
|
|
| **comment-checker** | PostToolUse | Reminds agents to reduce excessive comments. Smartly ignores BDD, directives, docstrings. |
|
|
| **thinking-block-validator** | Transform | Validates thinking blocks to prevent API errors. |
|
|
| **edit-error-recovery** | PostToolUse + Event | Recovers from edit tool failures. |
|
|
| **write-existing-file-guard** | PreToolUse | Prevents accidental overwrites of existing files without reading them first. |
|
|
| **hashline-read-enhancer** | PostToolUse | Enhances read output with hash-anchored line markers for the hashline edit tool. |
|
|
| **hashline-edit-diff-enhancer** | PreToolUse + PostToolUse | Enhances edit operations with diff markers for the hashline edit tool. |
|
|
|
|
#### Recovery & Stability
|
|
|
|
| Hook | Event | Description |
|
|
| ------------------------------------------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| **session-recovery** | Event | Recovers from session errors — missing tool results, thinking block issues, empty messages. |
|
|
| **anthropic-context-window-limit-recovery** | Event | Handles Claude context window limits gracefully. |
|
|
| **runtime-fallback** | Event + Message | Automatically switches to backup models on retryable API errors (e.g., 429, 503, 529), provider key misconfiguration errors (e.g., missing API key), and auto-retry signals (when `timeout_seconds > 0`). Configurable retry logic with per-model cooldown. |
|
|
| **model-fallback** | Event + Message | Manages model fallback chain when primary model is unavailable. |
|
|
| **json-error-recovery** | PostToolUse | Recovers from JSON parse errors in tool outputs. |
|
|
|
|
#### Truncation & Context Management
|
|
|
|
| Hook | Event | Description |
|
|
| ------------------------- | ----------- | --------------------------------------------------------------------------------------------------- |
|
|
| **tool-output-truncator** | PostToolUse | Truncates output from Grep, Glob, LSP, AST-grep tools. Dynamically adjusts based on context window. |
|
|
|
|
#### Notifications & UX
|
|
|
|
| Hook | Event | Description |
|
|
| ---------------------------- | ------------------- | -------------------------------------------------------------------------------------------------- |
|
|
| **auto-update-checker** | Event | Checks for new versions on session creation, shows startup toast with version and Sisyphus status. |
|
|
| **background-notification** | Event | Notifies when background agent tasks complete. |
|
|
| **session-notification** | Event | OS notifications when agents go idle. Works on macOS, Linux, Windows. |
|
|
| **agent-usage-reminder** | PostToolUse + Event | Reminds you to leverage specialized agents for better results. |
|
|
| **question-label-truncator** | PreToolUse | Truncates long question labels in the Question tool UI. |
|
|
|
|
#### Task Management
|
|
|
|
| Hook | Event | Description |
|
|
| -------------------------------- | ------------------- | --------------------------------------------------- |
|
|
| **task-resume-info** | PostToolUse | Provides task resume information for continuity. |
|
|
| **delegate-task-retry** | PostToolUse + Event | Retries failed task delegation calls. |
|
|
| **empty-task-response-detector** | PostToolUse | Detects empty responses from delegated tasks. |
|
|
| **tasks-todowrite-disabler** | PreToolUse | Disables TodoWrite tool when task system is active. |
|
|
|
|
#### Continuation
|
|
|
|
| Hook | Event | Description |
|
|
| ------------------------------ | ----- | ---------------------------------------------------------- |
|
|
| **todo-continuation-enforcer** | Event | Enforces todo completion — yanks idle agents back to work. |
|
|
| **compaction-todo-preserver** | Event | Preserves todo state during session compaction. |
|
|
| **unstable-agent-babysitter** | Event | Handles unstable agent behavior with recovery strategies. |
|
|
|
|
#### Integration
|
|
|
|
| Hook | Event | Description |
|
|
| ---------------------------- | ------------------- | ------------------------------------------------------- |
|
|
| **claude-code-hooks** | All | Executes hooks from Claude Code's settings.json. |
|
|
| **atlas** | Multiple | Main orchestration logic for todo-driven work sessions. |
|
|
| **interactive-bash-session** | PostToolUse + Event | Manages tmux sessions for interactive CLI. |
|
|
| **non-interactive-env** | PreToolUse | Handles non-interactive environment constraints. |
|
|
|
|
#### Specialized
|
|
|
|
| Hook | Event | Description |
|
|
| --------------------------- | ---------- | ---------------------------------------------------------- |
|
|
| **prometheus-md-only** | PreToolUse | Enforces markdown-only output for Prometheus planner. |
|
|
| **no-sisyphus-gpt** | Message | Prevents Sisyphus from running on incompatible GPT models. |
|
|
| **no-hephaestus-non-gpt** | Message | Prevents Hephaestus from running on non-GPT models. |
|
|
| **sisyphus-junior-notepad** | PreToolUse | Manages notepad state for Sisyphus-Junior agents. |
|
|
|
|
### Claude Code Hooks Integration
|
|
|
|
Run custom scripts via Claude Code's `settings.json`:
|
|
|
|
```json
|
|
{
|
|
"hooks": {
|
|
"PostToolUse": [
|
|
{
|
|
"matcher": "Write|Edit",
|
|
"hooks": [{ "type": "command", "command": "eslint --fix $FILE" }]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
**Hook locations**:
|
|
|
|
- `~/.claude/settings.json` (user)
|
|
- `./.claude/settings.json` (project)
|
|
- `./.claude/settings.local.json` (local, git-ignored)
|
|
|
|
### Disabling Hooks
|
|
|
|
Disable specific hooks in config:
|
|
|
|
```json
|
|
{
|
|
"disabled_hooks": ["comment-checker"]
|
|
}
|
|
```
|
|
|
|
## MCPs
|
|
|
|
### Built-in MCPs
|
|
|
|
| MCP | Description |
|
|
| ------------- | --------------------------------------------------------------------------------------------- |
|
|
| **websearch** | Real-time web search powered by Exa AI |
|
|
| **context7** | Official documentation lookup for any library/framework |
|
|
| **grep_app** | Ultra-fast code search across public GitHub repos. Great for finding implementation examples. |
|
|
|
|
### Skill-Embedded MCPs
|
|
|
|
Skills can bring their own MCP servers:
|
|
|
|
```yaml
|
|
---
|
|
description: Browser automation skill
|
|
mcp:
|
|
playwright:
|
|
command: npx
|
|
args: ["-y", "@anthropic-ai/mcp-playwright"]
|
|
---
|
|
```
|
|
|
|
The `skill_mcp` tool invokes these operations with full schema discovery.
|
|
|
|
#### OAuth-Enabled MCPs
|
|
|
|
Skills can define OAuth-protected remote MCP servers. OAuth 2.1 with full RFC compliance (RFC 9728, 8414, 8707, 7591) is supported:
|
|
|
|
```yaml
|
|
---
|
|
description: My API skill
|
|
mcp:
|
|
my-api:
|
|
url: https://api.example.com/mcp
|
|
oauth:
|
|
clientId: ${CLIENT_ID}
|
|
scopes: ["read", "write"]
|
|
---
|
|
```
|
|
|
|
When a skill MCP has `oauth` configured:
|
|
|
|
- **Auto-discovery**: Fetches `/.well-known/oauth-protected-resource` (RFC 9728), falls back to `/.well-known/oauth-authorization-server` (RFC 8414)
|
|
- **Dynamic Client Registration**: Auto-registers with servers supporting RFC 7591 (clientId becomes optional)
|
|
- **PKCE**: Mandatory for all flows
|
|
- **Resource Indicators**: Auto-generated from MCP URL per RFC 8707
|
|
- **Token Storage**: Persisted in `~/.config/opencode/mcp-oauth.json` (chmod 0600)
|
|
- **Auto-refresh**: Tokens refresh on 401; step-up authorization on 403 with `WWW-Authenticate`
|
|
- **Dynamic Port**: OAuth callback server uses an auto-discovered available port
|
|
|
|
Pre-authenticate via CLI:
|
|
|
|
```bash
|
|
bunx oh-my-opencode mcp oauth login <server-name> --server-url https://api.example.com
|
|
```
|
|
|
|
## Model Capabilities
|
|
|
|
Model capabilities are models.dev-backed, with a refreshable cache and compatibility diagnostics. The system combines bundled models.dev snapshot data, optional refreshed cache data, provider runtime metadata, and heuristics when exact metadata is unavailable.
|
|
|
|
### Refreshing Capabilities
|
|
|
|
Update the local cache with the latest model information:
|
|
|
|
```bash
|
|
bunx oh-my-opencode refresh-model-capabilities
|
|
```
|
|
|
|
Configure automatic refresh at startup:
|
|
|
|
```jsonc
|
|
{
|
|
"model_capabilities": {
|
|
"enabled": true,
|
|
"auto_refresh_on_start": true,
|
|
"refresh_timeout_ms": 5000,
|
|
"source_url": "https://models.dev/api.json"
|
|
}
|
|
}
|
|
```
|
|
|
|
### Capability Diagnostics
|
|
|
|
Run `bunx oh-my-opencode doctor` to see capability diagnostics including:
|
|
- effective model resolution for agents and categories
|
|
- warnings when configured models rely on compatibility fallback
|
|
- override compatibility details alongside model resolution output
|
|
|
|
## Context Injection
|
|
|
|
### Directory AGENTS.md
|
|
|
|
Auto-injects AGENTS.md when reading files. Walks from file directory to project root:
|
|
|
|
```
|
|
project/
|
|
├── AGENTS.md # Injected first
|
|
├── src/
|
|
│ ├── AGENTS.md # Injected second
|
|
│ └── components/
|
|
│ ├── AGENTS.md # Injected third
|
|
│ └── Button.tsx # Reading this injects all 3
|
|
```
|
|
|
|
### Conditional Rules
|
|
|
|
Inject rules from `.claude/rules/` when conditions match:
|
|
|
|
```markdown
|
|
---
|
|
globs: ["*.ts", "src/**/*.js"]
|
|
description: "TypeScript/JavaScript coding rules"
|
|
---
|
|
|
|
- Use PascalCase for interface names
|
|
- Use camelCase for function names
|
|
```
|
|
|
|
Supports:
|
|
|
|
- `.md` and `.mdc` files
|
|
- `globs` field for pattern matching
|
|
- `alwaysApply: true` for unconditional rules
|
|
- Walks upward from file to project root, plus `~/.claude/rules/`
|
|
|
|
## Claude Code Compatibility
|
|
|
|
Full compatibility layer for Claude Code configurations.
|
|
|
|
### Config Loaders
|
|
|
|
| Type | Locations |
|
|
| ------------ | ---------------------------------------------------------------------------------- |
|
|
| **Commands** | `~/.config/opencode/commands/`, `.claude/commands/` |
|
|
| **Skills** | `~/.config/opencode/skills/*/SKILL.md`, `.claude/skills/*/SKILL.md` |
|
|
| **Agents** | `~/.config/opencode/agents/*.md`, `.claude/agents/*.md` |
|
|
| **MCPs** | `~/.claude.json`, `~/.config/opencode/.mcp.json`, `.mcp.json`, `.claude/.mcp.json` |
|
|
|
|
MCP configs support environment variable expansion: `${VAR}`.
|
|
|
|
### Compatibility Toggles
|
|
|
|
Disable specific features:
|
|
|
|
```json
|
|
{
|
|
"claude_code": {
|
|
"mcp": false,
|
|
"commands": false,
|
|
"skills": false,
|
|
"agents": false,
|
|
"hooks": false,
|
|
"plugins": false
|
|
}
|
|
}
|
|
```
|
|
|
|
| Toggle | Disables |
|
|
| ---------- | ------------------------------------------------------------ |
|
|
| `mcp` | `.mcp.json` files (keeps built-in MCPs) |
|
|
| `commands` | Command loading from Claude Code paths |
|
|
| `skills` | Skill loading from Claude Code paths |
|
|
| `agents` | Agent loading from Claude Code paths (keeps built-in agents) |
|
|
| `hooks` | settings.json hooks |
|
|
| `plugins` | Claude Code marketplace plugins |
|
|
|
|
Disable specific plugins:
|
|
|
|
```json
|
|
{
|
|
"claude_code": {
|
|
"plugins_override": {
|
|
"claude-mem@thedotmack": false
|
|
}
|
|
}
|
|
}
|
|
```
|