@khalilgharbaoui/opencode-claude-code-plugin 0.24.0 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -5
- package/dist/index.d.ts +226 -1
- package/dist/index.js +716 -45
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/skills/claude-code-plugin/SKILL.md +21 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@khalilgharbaoui/opencode-claude-code-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "Claude Code CLI provider plugin for opencode",
|
|
5
5
|
"author": "Khalil Gharbaoui",
|
|
6
6
|
"type": "module",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"build": "tsup",
|
|
22
22
|
"dev": "tsup --watch",
|
|
23
23
|
"typecheck": "tsc --noEmit",
|
|
24
|
-
"test": "tsx --test test-bridge.ts test-broker.ts test-proxy-mcp.ts test-proxy-task.ts test-auto-continue.ts test-has-new-user-content.ts test-get-claude-user-message.ts test-logger.ts test-cli-args.ts test-session-manager.ts test-compaction-model.ts test-tool-mapping.ts test-cwd-resolution.ts test-todo-ledger.ts test-session-affinity.ts test-config-models.ts test-ask-user-question.ts test-claude-session-wrapper.ts test-spawn-env.ts test-respawn.ts test-startup-diagnostics.ts test-subagent-hint.ts test-exit-plan-mode-question.ts test-compress-tool.ts test-agent-models.ts test-side-question.ts test-btw-command.ts test-effort-sessions.ts test-tool-block-index.ts test-skill-bridge.ts test-turn-stats.ts test-cli-events.ts test-cli-events-stream.ts test-result-fallback.ts test-doctor.ts test-configure-skill.ts test-unattended-replay.ts test-process-lifecycle.ts test-account-failover.ts"
|
|
24
|
+
"test": "OPENCODE_CLAUDE_CODE_LOG_FILE=0 tsx --test test-bridge.ts test-broker.ts test-proxy-mcp.ts test-proxy-task.ts test-auto-continue.ts test-has-new-user-content.ts test-get-claude-user-message.ts test-logger.ts test-cli-args.ts test-session-manager.ts test-compaction-model.ts test-tool-mapping.ts test-cwd-resolution.ts test-todo-ledger.ts test-session-affinity.ts test-config-models.ts test-ask-user-question.ts test-claude-session-wrapper.ts test-spawn-env.ts test-respawn.ts test-startup-diagnostics.ts test-subagent-hint.ts test-exit-plan-mode-question.ts test-compress-tool.ts test-agent-models.ts test-side-question.ts test-btw-command.ts test-effort-sessions.ts test-tool-block-index.ts test-skill-bridge.ts test-turn-stats.ts test-cli-events.ts test-cli-events-stream.ts test-result-fallback.ts test-doctor.ts test-configure-skill.ts test-unattended-replay.ts test-process-lifecycle.ts test-account-failover.ts test-host-tools.ts test-v2-entrypoint.ts test-v2-client.ts"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@ai-sdk/provider": "^3.0.8",
|
|
@@ -115,6 +115,7 @@ Defaults below describe normal headless opencode use when the key is absent.
|
|
|
115
115
|
| `logging` | object | see below | File and TUI logging policy. |
|
|
116
116
|
| `name` | string | unset | Low-level `createClaudeCode()` provider identity fallback after `providerID`, not the opencode display-name setting. Display name lives at `provider.<id>.name`; account expansion supplies its own label. Leave this option unset. |
|
|
117
117
|
| `providerID` | string | derived | Config hook writes the actual provider id (`claude-code` or `claude-code-work`). Do not override manually. |
|
|
118
|
+
| `hostApi` | `"v1"` \| `"v2"` | derived | Which opencode major created the model, which decides the tool names its stream uses (`bash` on 1.x, `shell` on 2.x). Set only by the opencode 2 entrypoint. Do not set it: forcing `"v2"` under opencode 1.x makes every proxied tool call fail as an unavailable tool. |
|
|
118
119
|
| `account` | string | unset/derived | Account expansion supplies this to generate its runtime wrapper. Prefer `accounts` over hand-wiring it. |
|
|
119
120
|
| `configDir` | string | unset/derived | Generated account directory, also used for interactive env/transcript lookup. Not a standalone headless auth switch: headless account selection comes from the wrapper's env. Do not hand-wire it. |
|
|
120
121
|
|
|
@@ -176,6 +177,19 @@ their secret values. Arbitrary MCP `{env:NAME}` placeholders are outside this li
|
|
|
176
177
|
|
|
177
178
|
Everything else is optional. Models appear in the picker without extra config.
|
|
178
179
|
|
|
180
|
+
### opencode 2
|
|
181
|
+
|
|
182
|
+
Same package, same config. 2.x's native key is `plugins` (plural), but it still reads 1.x's `plugin` key, so an existing install needs no edit:
|
|
183
|
+
|
|
184
|
+
```json
|
|
185
|
+
{ "plugins": ["@khalilgharbaoui/opencode-claude-code-plugin"] }
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
- Check the major first with `opencode --version`. `plugin` works on both majors (measured: 2.0.11 loaded a plugin listed under `plugin`); `plugins` is read by 2.x only.
|
|
189
|
+
- `provider.claude-code.options` still works on 2.x; `provider.claude-code.settings` is the native spelling and wins where both are set. `accounts` may also sit in the plugin entry's own `options`.
|
|
190
|
+
- A local checkout is loaded by pointing `plugins` at its **`dist`** directory, never the repository root.
|
|
191
|
+
- Known 2.x differences: `/btw` is answered after the running turn rather than inside it, and there is no todo panel (2.x has no `todowrite` tool). Do not set `hostApi`; the 2.x entrypoint sets it, and forcing it on 1.x breaks every proxied tool call.
|
|
192
|
+
|
|
179
193
|
### Two accounts
|
|
180
194
|
|
|
181
195
|
```json
|
|
@@ -423,12 +437,14 @@ No manual skill copy/update is needed. Do not publish or release as part of conf
|
|
|
423
437
|
Registered ids: `claude-haiku-4-5`, `claude-sonnet-4-5`, `claude-sonnet-4-6`,
|
|
424
438
|
`claude-sonnet-5`, `claude-opus-4-5`, `claude-opus-4-6`, `claude-opus-4-7`,
|
|
425
439
|
`claude-opus-4-8`, `claude-opus-4-8-fast`, `claude-opus-5`, `claude-opus-5-fast`,
|
|
426
|
-
`claude-
|
|
440
|
+
`claude-opus-5-5`, `claude-opus-5-5-fast`, `claude-fable-5`, `claude-fable-5-1`,
|
|
441
|
+
`claude-mythos-5`, `claude-mythos-5-1`.
|
|
427
442
|
|
|
428
443
|
### Variants and costs
|
|
429
444
|
|
|
430
445
|
- Display names end in a `(N×)` list-price multiplier relative to Haiku: 1× haiku,
|
|
431
|
-
3× sonnet,
|
|
446
|
+
3× sonnet, 4× opus 5.5, 5× other opus, 8× fast-mode opus 5.5, 10× fable, mythos
|
|
447
|
+
and fast-mode opus 5 / 4.8. It is display only.
|
|
432
448
|
- Every model except Haiku has reasoning variants `low`, `medium`, `high`, `xhigh`,
|
|
433
449
|
`max`, picked in opencode's model selector. A variant becomes
|
|
434
450
|
`CLAUDE_CODE_EFFORT_LEVEL` on the spawned CLI unless an agent effort wins. For direct
|
|
@@ -477,7 +493,9 @@ Useful log lines to search for (redact payloads): `spawning new claude process`,
|
|
|
477
493
|
`evicting idle claude process`, `fast mode` warnings.
|
|
478
494
|
|
|
479
495
|
Version requirements: Claude Code CLI 2.1.142+ recommended (thinking summaries),
|
|
480
|
-
2.1.220+ for fast mode, 2.1.258+ for `/btw
|
|
496
|
+
2.1.220+ for fast mode, 2.1.258+ for `/btw`, 2.1.280+ for `claude-opus-5-5` (the
|
|
497
|
+
API rejects it from an older CLI with a 400 naming that floor). Check with
|
|
498
|
+
`claude --version`.
|
|
481
499
|
|
|
482
500
|
Only if a proxy security check is specifically requested: identify the exact local
|
|
483
501
|
proxy port first, not every opencode listener. An unauthenticated `initialize` with
|