docs(config): update command, skill, and fallback references
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
+198
-165
@@ -47,16 +47,19 @@ Priority order (project overrides user):
|
|||||||
1. `.opencode/oh-my-opencode.jsonc` / `.opencode/oh-my-opencode.json`
|
1. `.opencode/oh-my-opencode.jsonc` / `.opencode/oh-my-opencode.json`
|
||||||
2. User config (`.jsonc` preferred over `.json`):
|
2. User config (`.jsonc` preferred over `.json`):
|
||||||
|
|
||||||
| Platform | Path |
|
| Platform | Path |
|
||||||
|----------|------|
|
| ----------- | ----------------------------------------- |
|
||||||
| macOS/Linux | `~/.config/opencode/oh-my-opencode.jsonc` |
|
| macOS/Linux | `~/.config/opencode/oh-my-opencode.jsonc` |
|
||||||
| Windows | `%APPDATA%\opencode\oh-my-opencode.jsonc` |
|
| Windows | `%APPDATA%\opencode\oh-my-opencode.jsonc` |
|
||||||
|
|
||||||
JSONC supports `// line comments`, `/* block comments */`, and trailing commas.
|
JSONC supports `// line comments`, `/* block comments */`, and trailing commas.
|
||||||
|
|
||||||
Enable schema autocomplete:
|
Enable schema autocomplete:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{ "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/dev/assets/oh-my-opencode.schema.json" }
|
{
|
||||||
|
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/dev/assets/oh-my-opencode.schema.json"
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Run `bunx oh-my-opencode install` for guided setup. Run `opencode models` to list available models.
|
Run `bunx oh-my-opencode install` for guided setup. Run `opencode models` to list available models.
|
||||||
@@ -73,18 +76,20 @@ Here's a practical starting configuration:
|
|||||||
// Main orchestrator: Claude Opus or Kimi K2.5 work best
|
// Main orchestrator: Claude Opus or Kimi K2.5 work best
|
||||||
"sisyphus": {
|
"sisyphus": {
|
||||||
"model": "kimi-for-coding/k2p5",
|
"model": "kimi-for-coding/k2p5",
|
||||||
"ultrawork": { "model": "anthropic/claude-opus-4-6", "variant": "max" }
|
"ultrawork": { "model": "anthropic/claude-opus-4-6", "variant": "max" },
|
||||||
},
|
},
|
||||||
|
|
||||||
// Research agents: cheaper models are fine
|
// Research agents: cheap fast models are fine
|
||||||
"librarian": { "model": "zai-coding-plan/glm-4.7" },
|
"librarian": { "model": "google/gemini-3-flash" },
|
||||||
"explore": { "model": "github-copilot/grok-code-fast-1" },
|
"explore": { "model": "github-copilot/grok-code-fast-1" },
|
||||||
|
|
||||||
// Architecture consultation: GPT or Claude Opus
|
// Architecture consultation: GPT-5.2 or Claude Opus
|
||||||
"oracle": { "model": "openai/gpt-5.2", "variant": "high" },
|
"oracle": { "model": "openai/gpt-5.2", "variant": "high" },
|
||||||
|
|
||||||
// Prometheus inherits sisyphus model; just add prompt guidance
|
// Prometheus inherits sisyphus model; just add prompt guidance
|
||||||
"prometheus": { "prompt_append": "Leverage deep & quick agents heavily, always in parallel." }
|
"prometheus": {
|
||||||
|
"prompt_append": "Leverage deep & quick agents heavily, always in parallel.",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
"categories": {
|
"categories": {
|
||||||
@@ -92,33 +97,44 @@ Here's a practical starting configuration:
|
|||||||
"quick": { "model": "opencode/gpt-5-nano" },
|
"quick": { "model": "opencode/gpt-5-nano" },
|
||||||
|
|
||||||
// unspecified-low — moderate tasks
|
// unspecified-low — moderate tasks
|
||||||
"unspecified-low": { "model": "kimi-for-coding/k2p5" },
|
"unspecified-low": { "model": "anthropic/claude-sonnet-4-6" },
|
||||||
|
|
||||||
// unspecified-high — complex work
|
// unspecified-high — complex work
|
||||||
"unspecified-high": { "model": "anthropic/claude-sonnet-4-6", "variant": "max" },
|
"unspecified-high": { "model": "openai/gpt-5.4", "variant": "high" },
|
||||||
|
|
||||||
// writing — docs/prose
|
// writing — docs/prose
|
||||||
"writing": { "model": "kimi-for-coding/k2p5" },
|
"writing": { "model": "google/gemini-3-flash" },
|
||||||
|
|
||||||
// visual-engineering — Gemini dominates visual tasks
|
// visual-engineering — Gemini dominates visual tasks
|
||||||
"visual-engineering": { "model": "google/gemini-3-pro", "variant": "high" },
|
"visual-engineering": {
|
||||||
|
"model": "google/gemini-3.1-pro",
|
||||||
|
"variant": "high",
|
||||||
|
},
|
||||||
|
|
||||||
// Custom category for git operations
|
// Custom category for git operations
|
||||||
"git": {
|
"git": {
|
||||||
"model": "opencode/gpt-5-nano",
|
"model": "opencode/gpt-5-nano",
|
||||||
"description": "All git operations",
|
"description": "All git operations",
|
||||||
"prompt_append": "Focus on atomic commits, clear messages, and safe operations."
|
"prompt_append": "Focus on atomic commits, clear messages, and safe operations.",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
// Limit expensive providers; let cheap ones run freely
|
// Limit expensive providers; let cheap ones run freely
|
||||||
"background_task": {
|
"background_task": {
|
||||||
"providerConcurrency": { "anthropic": 3, "openai": 3, "opencode": 10, "zai-coding-plan": 10 },
|
"providerConcurrency": {
|
||||||
"modelConcurrency": { "anthropic/claude-opus-4-6": 2, "opencode/gpt-5-nano": 20 }
|
"anthropic": 3,
|
||||||
|
"openai": 3,
|
||||||
|
"opencode": 10,
|
||||||
|
"zai-coding-plan": 10,
|
||||||
|
},
|
||||||
|
"modelConcurrency": {
|
||||||
|
"anthropic/claude-opus-4-6": 2,
|
||||||
|
"opencode/gpt-5-nano": 20,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
"experimental": { "aggressive_truncation": true, "task_system": true },
|
"experimental": { "aggressive_truncation": true, "task_system": true },
|
||||||
"tmux": { "enabled": false }
|
"tmux": { "enabled": false },
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -143,26 +159,26 @@ Disable agents entirely: `{ "disabled_agents": ["oracle", "multimodal-looker"] }
|
|||||||
|
|
||||||
#### Agent Options
|
#### Agent Options
|
||||||
|
|
||||||
| Option | Type | Description |
|
| Option | Type | Description |
|
||||||
|--------|------|-------------|
|
| ----------------- | ------------- | ------------------------------------------------------ |
|
||||||
| `model` | string | Model override (`provider/model`) |
|
| `model` | string | Model override (`provider/model`) |
|
||||||
| `fallback_models` | string\|array | Fallback models on API errors |
|
| `fallback_models` | string\|array | Fallback models on API errors |
|
||||||
| `temperature` | number | Sampling temperature |
|
| `temperature` | number | Sampling temperature |
|
||||||
| `top_p` | number | Top-p sampling |
|
| `top_p` | number | Top-p sampling |
|
||||||
| `prompt` | string | Replace system prompt |
|
| `prompt` | string | Replace system prompt |
|
||||||
| `prompt_append` | string | Append to system prompt |
|
| `prompt_append` | string | Append to system prompt |
|
||||||
| `tools` | array | Allowed tools list |
|
| `tools` | array | Allowed tools list |
|
||||||
| `disable` | boolean | Disable this agent |
|
| `disable` | boolean | Disable this agent |
|
||||||
| `mode` | string | Agent mode |
|
| `mode` | string | Agent mode |
|
||||||
| `color` | string | UI color |
|
| `color` | string | UI color |
|
||||||
| `permission` | object | Per-tool permissions (see below) |
|
| `permission` | object | Per-tool permissions (see below) |
|
||||||
| `category` | string | Inherit model from category |
|
| `category` | string | Inherit model from category |
|
||||||
| `variant` | string | Model variant: `max`, `high`, `medium`, `low`, `xhigh` |
|
| `variant` | string | Model variant: `max`, `high`, `medium`, `low`, `xhigh` |
|
||||||
| `maxTokens` | number | Max response tokens |
|
| `maxTokens` | number | Max response tokens |
|
||||||
| `thinking` | object | Anthropic extended thinking |
|
| `thinking` | object | Anthropic extended thinking |
|
||||||
| `reasoningEffort` | string | OpenAI reasoning: `low`, `medium`, `high`, `xhigh` |
|
| `reasoningEffort` | string | OpenAI reasoning: `low`, `medium`, `high`, `xhigh` |
|
||||||
| `textVerbosity` | string | Text verbosity: `low`, `medium`, `high` |
|
| `textVerbosity` | string | Text verbosity: `low`, `medium`, `high` |
|
||||||
| `providerOptions` | object | Provider-specific options |
|
| `providerOptions` | object | Provider-specific options |
|
||||||
|
|
||||||
#### Anthropic Extended Thinking
|
#### Anthropic Extended Thinking
|
||||||
|
|
||||||
@@ -192,13 +208,13 @@ Control what tools an agent can use:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
| Permission | Values |
|
| Permission | Values |
|
||||||
|------------|--------|
|
| -------------------- | --------------------------------------------------------------------------- |
|
||||||
| `edit` | `ask` / `allow` / `deny` |
|
| `edit` | `ask` / `allow` / `deny` |
|
||||||
| `bash` | `ask` / `allow` / `deny` or per-command: `{ "git": "allow", "rm": "deny" }` |
|
| `bash` | `ask` / `allow` / `deny` or per-command: `{ "git": "allow", "rm": "deny" }` |
|
||||||
| `webfetch` | `ask` / `allow` / `deny` |
|
| `webfetch` | `ask` / `allow` / `deny` |
|
||||||
| `doom_loop` | `ask` / `allow` / `deny` |
|
| `doom_loop` | `ask` / `allow` / `deny` |
|
||||||
| `external_directory` | `ask` / `allow` / `deny` |
|
| `external_directory` | `ask` / `allow` / `deny` |
|
||||||
|
|
||||||
### Categories
|
### Categories
|
||||||
|
|
||||||
@@ -206,36 +222,36 @@ Domain-specific model delegation used by the `task()` tool. When Sisyphus delega
|
|||||||
|
|
||||||
#### Built-in Categories
|
#### Built-in Categories
|
||||||
|
|
||||||
| Category | Default Model | Description |
|
| Category | Default Model | Description |
|
||||||
|----------|---------------|-------------|
|
| -------------------- | ------------------------------- | ---------------------------------------------- |
|
||||||
| `visual-engineering` | `google/gemini-3-pro` (high) | Frontend, UI/UX, design, animation |
|
| `visual-engineering` | `google/gemini-3.1-pro` (high) | Frontend, UI/UX, design, animation |
|
||||||
| `ultrabrain` | `openai/gpt-5.3-codex` (xhigh) | Deep logical reasoning, complex architecture |
|
| `ultrabrain` | `openai/gpt-5.3-codex` (xhigh) | Deep logical reasoning, complex architecture |
|
||||||
| `deep` | `openai/gpt-5.3-codex` (medium) | Autonomous problem-solving, thorough research |
|
| `deep` | `openai/gpt-5.3-codex` (medium) | Autonomous problem-solving, thorough research |
|
||||||
| `artistry` | `google/gemini-3-pro` (high) | Creative/unconventional approaches |
|
| `artistry` | `google/gemini-3.1-pro` (high) | Creative/unconventional approaches |
|
||||||
| `quick` | `anthropic/claude-haiku-4-5` | Trivial tasks, typo fixes, single-file changes |
|
| `quick` | `anthropic/claude-haiku-4-5` | Trivial tasks, typo fixes, single-file changes |
|
||||||
| `unspecified-low` | `anthropic/claude-sonnet-4-6` | General tasks, low effort |
|
| `unspecified-low` | `anthropic/claude-sonnet-4-6` | General tasks, low effort |
|
||||||
| `unspecified-high` | `anthropic/claude-opus-4-6` (max) | General tasks, high effort |
|
| `unspecified-high` | `openai/gpt-5.4` (high) | General tasks, high effort |
|
||||||
| `writing` | `kimi-for-coding/k2p5` | Documentation, prose, technical writing |
|
| `writing` | `google/gemini-3-flash` | Documentation, prose, technical writing |
|
||||||
|
|
||||||
> **Note**: Built-in defaults only apply if the category is present in your config. Otherwise the system default model is used.
|
> **Note**: Built-in defaults only apply if the category is present in your config. Otherwise the system default model is used.
|
||||||
|
|
||||||
#### Category Options
|
#### Category Options
|
||||||
|
|
||||||
| Option | Type | Default | Description |
|
| Option | Type | Default | Description |
|
||||||
|--------|------|---------|-------------|
|
| ------------------- | ------------- | ------- | ------------------------------------------------------------------- |
|
||||||
| `model` | string | - | Model override |
|
| `model` | string | - | Model override |
|
||||||
| `fallback_models` | string\|array | - | Fallback models on API errors |
|
| `fallback_models` | string\|array | - | Fallback models on API errors |
|
||||||
| `temperature` | number | - | Sampling temperature |
|
| `temperature` | number | - | Sampling temperature |
|
||||||
| `top_p` | number | - | Top-p sampling |
|
| `top_p` | number | - | Top-p sampling |
|
||||||
| `maxTokens` | number | - | Max response tokens |
|
| `maxTokens` | number | - | Max response tokens |
|
||||||
| `thinking` | object | - | Anthropic extended thinking |
|
| `thinking` | object | - | Anthropic extended thinking |
|
||||||
| `reasoningEffort` | string | - | OpenAI reasoning effort |
|
| `reasoningEffort` | string | - | OpenAI reasoning effort |
|
||||||
| `textVerbosity` | string | - | Text verbosity |
|
| `textVerbosity` | string | - | Text verbosity |
|
||||||
| `tools` | array | - | Allowed tools |
|
| `tools` | array | - | Allowed tools |
|
||||||
| `prompt_append` | string | - | Append to system prompt |
|
| `prompt_append` | string | - | Append to system prompt |
|
||||||
| `variant` | string | - | Model variant |
|
| `variant` | string | - | Model variant |
|
||||||
| `description` | string | - | Shown in `task()` tool prompt |
|
| `description` | string | - | Shown in `task()` tool prompt |
|
||||||
| `is_unstable_agent` | boolean | `false` | Force background mode + monitoring. Auto-enabled for Gemini models. |
|
| `is_unstable_agent` | boolean | `false` | Force background mode + monitoring. Auto-enabled for Gemini models. |
|
||||||
|
|
||||||
Disable categories: `{ "disabled_categories": ["ultrabrain"] }`
|
Disable categories: `{ "disabled_categories": ["ultrabrain"] }`
|
||||||
|
|
||||||
@@ -249,31 +265,31 @@ Disable categories: `{ "disabled_categories": ["ultrabrain"] }`
|
|||||||
|
|
||||||
#### Agent Provider Chains
|
#### Agent Provider Chains
|
||||||
|
|
||||||
| Agent | Default Model | Provider Priority |
|
| Agent | Default Model | Provider Priority |
|
||||||
|-------|---------------|-------------------|
|
| --------------------- | ------------------- | ---------------------------------------------------------------------------- |
|
||||||
| **Sisyphus** | `claude-opus-4-6` | anthropic → github-copilot → opencode → kimi-for-coding → zai-coding-plan |
|
| **Sisyphus** | `claude-opus-4-6` | `claude-opus-4-6` → `glm-5` → `big-pickle` |
|
||||||
| **Hephaestus** | `gpt-5.3-codex` | openai → github-copilot → opencode |
|
| **Hephaestus** | `gpt-5.3-codex` | `gpt-5.3-codex` → `gpt-5.2` (GitHub Copilot fallback) |
|
||||||
| **oracle** | `gpt-5.2` | openai → google → anthropic (via github-copilot/opencode) |
|
| **oracle** | `gpt-5.2` | `gpt-5.2` → `gemini-3.1-pro` → `claude-opus-4-6` |
|
||||||
| **librarian** | `glm-4.7` | zai-coding-plan → opencode → anthropic |
|
| **librarian** | `gemini-3-flash` | `gemini-3-flash` → `minimax-m2.5-free` → `big-pickle` |
|
||||||
| **explore** | `grok-code-fast-1` | github-copilot → anthropic/opencode → opencode |
|
| **explore** | `grok-code-fast-1` | `grok-code-fast-1` → `minimax-m2.5-free` → `claude-haiku-4-5` → `gpt-5-nano` |
|
||||||
| **multimodal-looker** | `gemini-3-flash` | google → openai → zai-coding-plan → kimi-for-coding → opencode → anthropic |
|
| **multimodal-looker** | `gpt-5.3-codex` | `gpt-5.3-codex` → `k2p5` → `gemini-3-flash` → `glm-4.6v` → `gpt-5-nano` |
|
||||||
| **Prometheus** | `claude-opus-4-6` | anthropic → kimi-for-coding → opencode → openai → google |
|
| **Prometheus** | `claude-opus-4-6` | `claude-opus-4-6` → `gpt-5.4` → `gemini-3.1-pro` |
|
||||||
| **Metis** | `claude-opus-4-6` | anthropic → kimi-for-coding → opencode → openai → google |
|
| **Metis** | `claude-opus-4-6` | `claude-opus-4-6` → `gpt-5.2` → `gemini-3.1-pro` |
|
||||||
| **Momus** | `gpt-5.2` | openai → anthropic → google (via github-copilot/opencode) |
|
| **Momus** | `gpt-5.4` | `gpt-5.4` → `claude-opus-4-6` → `gemini-3.1-pro` |
|
||||||
| **Atlas** | `k2p5` | kimi-for-coding → opencode → anthropic → openai → google |
|
| **Atlas** | `claude-sonnet-4-6` | `claude-sonnet-4-6` → `gpt-5.4` |
|
||||||
|
|
||||||
#### Category Provider Chains
|
#### Category Provider Chains
|
||||||
|
|
||||||
| Category | Default Model | Provider Priority |
|
| Category | Default Model | Provider Priority |
|
||||||
|----------|---------------|-------------------|
|
| ---------------------- | ------------------- | -------------------------------------------------------------- |
|
||||||
| **visual-engineering** | `gemini-3-pro` | google → zai-coding-plan → anthropic → kimi-for-coding |
|
| **visual-engineering** | `gemini-3.1-pro` | `gemini-3.1-pro` → `glm-5` → `claude-opus-4-6` |
|
||||||
| **ultrabrain** | `gpt-5.3-codex` | openai → google → anthropic (via github-copilot/opencode) |
|
| **ultrabrain** | `gpt-5.3-codex` | `gpt-5.3-codex` → `gemini-3.1-pro` → `claude-opus-4-6` |
|
||||||
| **deep** | `gpt-5.3-codex` | openai → anthropic → google (via github-copilot/opencode) |
|
| **deep** | `gpt-5.3-codex` | `gpt-5.3-codex` → `claude-opus-4-6` → `gemini-3.1-pro` |
|
||||||
| **artistry** | `gemini-3-pro` | google → anthropic → openai (via github-copilot/opencode) |
|
| **artistry** | `gemini-3.1-pro` | `gemini-3.1-pro` → `claude-opus-4-6` → `gpt-5.2` |
|
||||||
| **quick** | `claude-haiku-4-5` | anthropic → google → opencode (via github-copilot/opencode) |
|
| **quick** | `claude-haiku-4-5` | `claude-haiku-4-5` → `gemini-3-flash` → `gpt-5-nano` |
|
||||||
| **unspecified-low** | `claude-sonnet-4-6` | anthropic → openai → google (via github-copilot/opencode) |
|
| **unspecified-low** | `claude-sonnet-4-6` | `claude-sonnet-4-6` → `gpt-5.3-codex` → `gemini-3-flash` |
|
||||||
| **unspecified-high** | `claude-opus-4-6` | anthropic → openai → google (via github-copilot/opencode) |
|
| **unspecified-high** | `gpt-5.4` | `gpt-5.4` → `claude-opus-4-6` → `glm-5` → `k2p5` → `kimi-k2.5` |
|
||||||
| **writing** | `k2p5` | kimi-for-coding → google → anthropic |
|
| **writing** | `gemini-3-flash` | `gemini-3-flash` → `claude-sonnet-4-6` |
|
||||||
|
|
||||||
Run `bunx oh-my-opencode doctor --verbose` to see effective model resolution for your config.
|
Run `bunx oh-my-opencode doctor --verbose` to see effective model resolution for your config.
|
||||||
|
|
||||||
@@ -296,12 +312,12 @@ Control parallel agent execution and concurrency limits.
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
| Option | Default | Description |
|
| Option | Default | Description |
|
||||||
|--------|---------|-------------|
|
| --------------------- | -------- | --------------------------------------------------------------------- |
|
||||||
| `defaultConcurrency` | - | Max concurrent tasks (all providers) |
|
| `defaultConcurrency` | - | Max concurrent tasks (all providers) |
|
||||||
| `staleTimeoutMs` | `180000` | Interrupt tasks with no activity (min: 60000) |
|
| `staleTimeoutMs` | `180000` | Interrupt tasks with no activity (min: 60000) |
|
||||||
| `providerConcurrency` | - | Per-provider limits (key = provider name) |
|
| `providerConcurrency` | - | Per-provider limits (key = provider name) |
|
||||||
| `modelConcurrency` | - | Per-model limits (key = `provider/model`). Overrides provider limits. |
|
| `modelConcurrency` | - | Per-model limits (key = `provider/model`). Overrides provider limits. |
|
||||||
|
|
||||||
Priority: `modelConcurrency` > `providerConcurrency` > `defaultConcurrency`
|
Priority: `modelConcurrency` > `providerConcurrency` > `defaultConcurrency`
|
||||||
|
|
||||||
@@ -320,12 +336,12 @@ Configure the main orchestration system.
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
| Option | Default | Description |
|
| Option | Default | Description |
|
||||||
|--------|---------|-------------|
|
| ------------------------- | ------- | --------------------------------------------------------------- |
|
||||||
| `disabled` | `false` | Disable all Sisyphus orchestration, restore original build/plan |
|
| `disabled` | `false` | Disable all Sisyphus orchestration, restore original build/plan |
|
||||||
| `default_builder_enabled` | `false` | Enable OpenCode-Builder agent (off by default) |
|
| `default_builder_enabled` | `false` | Enable OpenCode-Builder agent (off by default) |
|
||||||
| `planner_enabled` | `true` | Enable Prometheus (Planner) agent |
|
| `planner_enabled` | `true` | Enable Prometheus (Planner) agent |
|
||||||
| `replace_plan` | `true` | Demote default plan agent to subagent mode |
|
| `replace_plan` | `true` | Demote default plan agent to subagent mode |
|
||||||
|
|
||||||
Sisyphus agents can also be customized under `agents` using their names: `Sisyphus`, `OpenCode-Builder`, `Prometheus (Planner)`, `Metis (Plan Consultant)`.
|
Sisyphus agents can also be customized under `agents` using their names: `Sisyphus`, `OpenCode-Builder`, `Prometheus (Planner)`, `Metis (Plan Consultant)`.
|
||||||
|
|
||||||
@@ -345,11 +361,11 @@ Enable the Sisyphus Tasks system for cross-session task tracking.
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
| Option | Default | Description |
|
| Option | Default | Description |
|
||||||
|--------|---------|-------------|
|
| -------------------- | ----------------- | ------------------------------------------ |
|
||||||
| `enabled` | `false` | Enable Sisyphus Tasks system |
|
| `enabled` | `false` | Enable Sisyphus Tasks system |
|
||||||
| `storage_path` | `.sisyphus/tasks` | Storage path (relative to project root) |
|
| `storage_path` | `.sisyphus/tasks` | Storage path (relative to project root) |
|
||||||
| `claude_code_compat` | `false` | Enable Claude Code path compatibility mode |
|
| `claude_code_compat` | `false` | Enable Claude Code path compatibility mode |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -359,7 +375,7 @@ Enable the Sisyphus Tasks system for cross-session task tracking.
|
|||||||
|
|
||||||
Skills bring domain-specific expertise and embedded MCPs.
|
Skills bring domain-specific expertise and embedded MCPs.
|
||||||
|
|
||||||
Built-in skills: `playwright` (default), `agent-browser`, `git-master`
|
Built-in skills: `playwright`, `playwright-cli`, `agent-browser`, `dev-browser`, `git-master`, `frontend-ui-ux`
|
||||||
|
|
||||||
Disable built-in skills: `{ "disabled_skills": ["playwright"] }`
|
Disable built-in skills: `{ "disabled_skills": ["playwright"] }`
|
||||||
|
|
||||||
@@ -391,11 +407,11 @@ Disable built-in skills: `{ "disabled_skills": ["playwright"] }`
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
| `sources` option | Default | Description |
|
| `sources` option | Default | Description |
|
||||||
|------------------|---------|-------------|
|
| ---------------- | ------- | ------------------------------- |
|
||||||
| `path` | - | Local path or remote URL |
|
| `path` | - | Local path or remote URL |
|
||||||
| `recursive` | `false` | Recurse into subdirectories |
|
| `recursive` | `false` | Recurse into subdirectories |
|
||||||
| `glob` | - | Glob pattern for file selection |
|
| `glob` | - | Glob pattern for file selection |
|
||||||
|
|
||||||
### Hooks
|
### Hooks
|
||||||
|
|
||||||
@@ -408,8 +424,9 @@ Disable built-in hooks via `disabled_hooks`:
|
|||||||
Available hooks: `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`, `compaction-context-injector`, `thinking-block-validator`, `claude-code-hooks`, `ralph-loop`, `preemptive-compaction`, `auto-slash-command`, `sisyphus-junior-notepad`, `no-sisyphus-gpt`, `start-work`, `runtime-fallback`
|
Available hooks: `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`, `compaction-context-injector`, `thinking-block-validator`, `claude-code-hooks`, `ralph-loop`, `preemptive-compaction`, `auto-slash-command`, `sisyphus-junior-notepad`, `no-sisyphus-gpt`, `start-work`, `runtime-fallback`
|
||||||
|
|
||||||
**Notes:**
|
**Notes:**
|
||||||
|
|
||||||
- `directory-agents-injector` — auto-disabled on OpenCode 1.1.37+ (native AGENTS.md support)
|
- `directory-agents-injector` — auto-disabled on OpenCode 1.1.37+ (native AGENTS.md support)
|
||||||
- `no-sisyphus-gpt` — **do not disable**. Sisyphus is not optimized for GPT; this hook switches to Hephaestus automatically.
|
- `no-sisyphus-gpt` — **do not disable**. It blocks incompatible GPT models for Sisyphus while allowing the dedicated GPT-5.4 prompt path.
|
||||||
- `startup-toast` is a sub-feature of `auto-update-checker`. Disable just the toast by adding `startup-toast` to `disabled_hooks`.
|
- `startup-toast` is a sub-feature of `auto-update-checker`. Disable just the toast by adding `startup-toast` to `disabled_hooks`.
|
||||||
|
|
||||||
### Commands
|
### Commands
|
||||||
@@ -420,14 +437,14 @@ Disable built-in commands via `disabled_commands`:
|
|||||||
{ "disabled_commands": ["init-deep", "start-work"] }
|
{ "disabled_commands": ["init-deep", "start-work"] }
|
||||||
```
|
```
|
||||||
|
|
||||||
Available commands: `init-deep`, `start-work`
|
Available commands: `init-deep`, `ralph-loop`, `ulw-loop`, `cancel-ralph`, `refactor`, `start-work`, `stop-continuation`, `handoff`
|
||||||
|
|
||||||
### Browser Automation
|
### Browser Automation
|
||||||
|
|
||||||
| Provider | Interface | Installation |
|
| Provider | Interface | Installation |
|
||||||
|----------|-----------|--------------|
|
| ---------------------- | --------- | --------------------------------------------------- |
|
||||||
| `playwright` (default) | MCP tools | Auto-installed via npx |
|
| `playwright` (default) | MCP tools | Auto-installed via npx |
|
||||||
| `agent-browser` | Bash CLI | `bun add -g agent-browser && agent-browser install` |
|
| `agent-browser` | Bash CLI | `bun add -g agent-browser && agent-browser install` |
|
||||||
|
|
||||||
Switch provider:
|
Switch provider:
|
||||||
|
|
||||||
@@ -451,13 +468,13 @@ Run background subagents in separate tmux panes. Requires running inside tmux wi
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
| Option | Default | Description |
|
| Option | Default | Description |
|
||||||
|--------|---------|-------------|
|
| ---------------------- | --------------- | ----------------------------------------------------------------------------------- |
|
||||||
| `enabled` | `false` | Enable tmux pane spawning |
|
| `enabled` | `false` | Enable tmux pane spawning |
|
||||||
| `layout` | `main-vertical` | `main-vertical` / `main-horizontal` / `tiled` / `even-horizontal` / `even-vertical` |
|
| `layout` | `main-vertical` | `main-vertical` / `main-horizontal` / `tiled` / `even-horizontal` / `even-vertical` |
|
||||||
| `main_pane_size` | `60` | Main pane % (20–80) |
|
| `main_pane_size` | `60` | Main pane % (20–80) |
|
||||||
| `main_pane_min_width` | `120` | Min main pane columns |
|
| `main_pane_min_width` | `120` | Min main pane columns |
|
||||||
| `agent_pane_min_width` | `40` | Min agent pane columns |
|
| `agent_pane_min_width` | `40` | Min agent pane columns |
|
||||||
|
|
||||||
### Git Master
|
### Git Master
|
||||||
|
|
||||||
@@ -472,7 +489,11 @@ Configure git commit behavior:
|
|||||||
Customize the comment quality checker:
|
Customize the comment quality checker:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{ "comment_checker": { "custom_prompt": "Your message. Use {{comments}} placeholder." } }
|
{
|
||||||
|
"comment_checker": {
|
||||||
|
"custom_prompt": "Your message. Use {{comments}} placeholder."
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Notification
|
### Notification
|
||||||
@@ -505,21 +526,23 @@ Configure Language Server Protocol integration:
|
|||||||
"extensions": [".ts", ".tsx"],
|
"extensions": [".ts", ".tsx"],
|
||||||
"priority": 10,
|
"priority": 10,
|
||||||
"env": { "NODE_OPTIONS": "--max-old-space-size=4096" },
|
"env": { "NODE_OPTIONS": "--max-old-space-size=4096" },
|
||||||
"initialization": { "preferences": { "includeInlayParameterNameHints": "all" } }
|
"initialization": {
|
||||||
|
"preferences": { "includeInlayParameterNameHints": "all" }
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"pylsp": { "disabled": true }
|
"pylsp": { "disabled": true }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
| Option | Type | Description |
|
| Option | Type | Description |
|
||||||
|--------|------|-------------|
|
| ---------------- | ------- | ------------------------------------ |
|
||||||
| `command` | array | Command to start LSP server |
|
| `command` | array | Command to start LSP server |
|
||||||
| `extensions` | array | File extensions (e.g. `[".ts"]`) |
|
| `extensions` | array | File extensions (e.g. `[".ts"]`) |
|
||||||
| `priority` | number | Priority when multiple servers match |
|
| `priority` | number | Priority when multiple servers match |
|
||||||
| `env` | object | Environment variables |
|
| `env` | object | Environment variables |
|
||||||
| `initialization` | object | Init options passed to server |
|
| `initialization` | object | Init options passed to server |
|
||||||
| `disabled` | boolean | Disable this server |
|
| `disabled` | boolean | Disable this server |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -530,12 +553,14 @@ Configure Language Server Protocol integration:
|
|||||||
Auto-switches to backup models on API errors.
|
Auto-switches to backup models on API errors.
|
||||||
|
|
||||||
**Simple configuration** (enable/disable with defaults):
|
**Simple configuration** (enable/disable with defaults):
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{ "runtime_fallback": true }
|
{ "runtime_fallback": true }
|
||||||
{ "runtime_fallback": false }
|
{ "runtime_fallback": false }
|
||||||
```
|
```
|
||||||
|
|
||||||
**Advanced configuration** (full control):
|
**Advanced configuration** (full control):
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"runtime_fallback": {
|
"runtime_fallback": {
|
||||||
@@ -549,14 +574,14 @@ Auto-switches to backup models on API errors.
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
| Option | Default | Description |
|
| Option | Default | Description |
|
||||||
|--------|---------|-------------|
|
| ----------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
||||||
| `enabled` | `false` | Enable runtime fallback |
|
| `enabled` | `false` | Enable runtime fallback |
|
||||||
| `retry_on_errors` | `[400,429,503,529]` | HTTP codes that trigger fallback. Also handles classified provider key errors. |
|
| `retry_on_errors` | `[400,429,503,529]` | HTTP codes that trigger fallback. Also handles classified provider key errors. |
|
||||||
| `max_fallback_attempts` | `3` | Max fallback attempts per session (1–20) |
|
| `max_fallback_attempts` | `3` | Max fallback attempts per session (1–20) |
|
||||||
| `cooldown_seconds` | `60` | Seconds before retrying a failed model |
|
| `cooldown_seconds` | `60` | Seconds before retrying a failed model |
|
||||||
| `timeout_seconds` | `30` | Seconds before forcing next fallback. **Set to `0` to disable timeout-based escalation and provider retry message detection.** |
|
| `timeout_seconds` | `30` | Seconds before forcing next fallback. **Set to `0` to disable timeout-based escalation and provider retry message detection.** |
|
||||||
| `notify_on_fallback` | `true` | Toast notification on model switch |
|
| `notify_on_fallback` | `true` | Toast notification on model switch |
|
||||||
|
|
||||||
Define `fallback_models` per agent or category:
|
Define `fallback_models` per agent or category:
|
||||||
|
|
||||||
@@ -565,7 +590,7 @@ Define `fallback_models` per agent or category:
|
|||||||
"agents": {
|
"agents": {
|
||||||
"sisyphus": {
|
"sisyphus": {
|
||||||
"model": "anthropic/claude-opus-4-6",
|
"model": "anthropic/claude-opus-4-6",
|
||||||
"fallback_models": ["openai/gpt-5.2", "google/gemini-3-pro"]
|
"fallback_models": ["openai/gpt-5.4", "google/gemini-3.1-pro"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -595,7 +620,15 @@ When enabled, two companion hooks are active: `hashline-read-enhancer` (annotate
|
|||||||
"enabled": false,
|
"enabled": false,
|
||||||
"notification": "detailed",
|
"notification": "detailed",
|
||||||
"turn_protection": { "enabled": true, "turns": 3 },
|
"turn_protection": { "enabled": true, "turns": 3 },
|
||||||
"protected_tools": ["task", "todowrite", "todoread", "lsp_rename", "session_read", "session_write", "session_search"],
|
"protected_tools": [
|
||||||
|
"task",
|
||||||
|
"todowrite",
|
||||||
|
"todoread",
|
||||||
|
"lsp_rename",
|
||||||
|
"session_read",
|
||||||
|
"session_write",
|
||||||
|
"session_search"
|
||||||
|
],
|
||||||
"strategies": {
|
"strategies": {
|
||||||
"deduplication": { "enabled": true },
|
"deduplication": { "enabled": true },
|
||||||
"supersede_writes": { "enabled": true, "aggressive": false },
|
"supersede_writes": { "enabled": true, "aggressive": false },
|
||||||
@@ -606,20 +639,20 @@ When enabled, two companion hooks are active: `hashline-read-enhancer` (annotate
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
| Option | Default | Description |
|
| Option | Default | Description |
|
||||||
|--------|---------|-------------|
|
| ---------------------------------------- | ---------- | ------------------------------------------------------------------------------------ |
|
||||||
| `truncate_all_tool_outputs` | `false` | Truncate all tool outputs (not just whitelisted) |
|
| `truncate_all_tool_outputs` | `false` | Truncate all tool outputs (not just whitelisted) |
|
||||||
| `aggressive_truncation` | `false` | Aggressively truncate when token limit exceeded |
|
| `aggressive_truncation` | `false` | Aggressively truncate when token limit exceeded |
|
||||||
| `auto_resume` | `false` | Auto-resume after thinking block recovery |
|
| `auto_resume` | `false` | Auto-resume after thinking block recovery |
|
||||||
| `disable_omo_env` | `false` | Disable auto-injected `<omo-env>` block (date/time/locale). Improves cache hit rate. |
|
| `disable_omo_env` | `false` | Disable auto-injected `<omo-env>` block (date/time/locale). Improves cache hit rate. |
|
||||||
| `task_system` | `false` | Enable Sisyphus task system |
|
| `task_system` | `false` | Enable Sisyphus task system |
|
||||||
| `dynamic_context_pruning.enabled` | `false` | Auto-prune old tool outputs to manage context window |
|
| `dynamic_context_pruning.enabled` | `false` | Auto-prune old tool outputs to manage context window |
|
||||||
| `dynamic_context_pruning.notification` | `detailed` | Pruning notifications: `off` / `minimal` / `detailed` |
|
| `dynamic_context_pruning.notification` | `detailed` | Pruning notifications: `off` / `minimal` / `detailed` |
|
||||||
| `turn_protection.turns` | `3` | Recent turns protected from pruning (1–10) |
|
| `turn_protection.turns` | `3` | Recent turns protected from pruning (1–10) |
|
||||||
| `strategies.deduplication` | `true` | Remove duplicate tool calls |
|
| `strategies.deduplication` | `true` | Remove duplicate tool calls |
|
||||||
| `strategies.supersede_writes` | `true` | Prune write inputs when file later read |
|
| `strategies.supersede_writes` | `true` | Prune write inputs when file later read |
|
||||||
| `strategies.supersede_writes.aggressive` | `false` | Prune any write if ANY subsequent read exists |
|
| `strategies.supersede_writes.aggressive` | `false` | Prune any write if ANY subsequent read exists |
|
||||||
| `strategies.purge_errors.turns` | `5` | Turns before pruning errored tool inputs |
|
| `strategies.purge_errors.turns` | `5` | Turns before pruning errored tool inputs |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -627,8 +660,8 @@ When enabled, two companion hooks are active: `hashline-read-enhancer` (annotate
|
|||||||
|
|
||||||
### Environment Variables
|
### Environment Variables
|
||||||
|
|
||||||
| Variable | Description |
|
| Variable | Description |
|
||||||
|----------|-------------|
|
| --------------------- | ----------------------------------------------------------------- |
|
||||||
| `OPENCODE_CONFIG_DIR` | Override OpenCode config directory (useful for profile isolation) |
|
| `OPENCODE_CONFIG_DIR` | Override OpenCode config directory (useful for profile isolation) |
|
||||||
|
|
||||||
### Provider-Specific
|
### Provider-Specific
|
||||||
|
|||||||
Reference in New Issue
Block a user