feat(cli): add takopi config subcommand (#153)
This commit is contained in:
@@ -68,17 +68,29 @@ Add a new optional `[claude]` section.
|
||||
|
||||
Recommended v1 schema:
|
||||
|
||||
```toml
|
||||
# ~/.takopi/takopi.toml
|
||||
=== "takopi config"
|
||||
|
||||
default_engine = "claude"
|
||||
```sh
|
||||
takopi config set default_engine "claude"
|
||||
takopi config set claude.model "claude-sonnet-4-5-20250929"
|
||||
takopi config set claude.allowed_tools '["Bash", "Read", "Edit", "Write"]'
|
||||
takopi config set claude.dangerously_skip_permissions false
|
||||
takopi config set claude.use_api_billing false
|
||||
```
|
||||
|
||||
[claude]
|
||||
model = "claude-sonnet-4-5-20250929" # optional (Claude Code supports model override in settings too)
|
||||
allowed_tools = ["Bash", "Read", "Edit", "Write"] # optional but strongly recommended for automation
|
||||
dangerously_skip_permissions = false # optional (high risk; prefer sandbox use only)
|
||||
use_api_billing = false # optional (keep ANTHROPIC_API_KEY for API billing)
|
||||
```
|
||||
=== "toml"
|
||||
|
||||
```toml
|
||||
# ~/.takopi/takopi.toml
|
||||
|
||||
default_engine = "claude"
|
||||
|
||||
[claude]
|
||||
model = "claude-sonnet-4-5-20250929" # optional (Claude Code supports model override in settings too)
|
||||
allowed_tools = ["Bash", "Read", "Edit", "Write"] # optional but strongly recommended for automation
|
||||
dangerously_skip_permissions = false # optional (high risk; prefer sandbox use only)
|
||||
use_api_billing = false # optional (keep ANTHROPIC_API_KEY for API billing)
|
||||
```
|
||||
|
||||
Notes:
|
||||
|
||||
|
||||
@@ -210,15 +210,26 @@ Claude runner implementation summary (no Takopi domain model changes):
|
||||
|
||||
A minimal TOML config for Claude:
|
||||
|
||||
```toml
|
||||
[claude]
|
||||
# model: opus | sonnet | haiku
|
||||
model = "sonnet"
|
||||
=== "takopi config"
|
||||
|
||||
allowed_tools = ["Bash", "Read", "Edit", "Write", "WebSearch"]
|
||||
dangerously_skip_permissions = false
|
||||
use_api_billing = false
|
||||
```
|
||||
```sh
|
||||
takopi config set claude.model "sonnet"
|
||||
takopi config set claude.allowed_tools '["Bash", "Read", "Edit", "Write", "WebSearch"]'
|
||||
takopi config set claude.dangerously_skip_permissions false
|
||||
takopi config set claude.use_api_billing false
|
||||
```
|
||||
|
||||
=== "toml"
|
||||
|
||||
```toml
|
||||
[claude]
|
||||
# model: opus | sonnet | haiku
|
||||
model = "sonnet"
|
||||
|
||||
allowed_tools = ["Bash", "Read", "Edit", "Write", "WebSearch"]
|
||||
dangerously_skip_permissions = false
|
||||
use_api_billing = false
|
||||
```
|
||||
|
||||
Takopi only maps these keys to Claude CLI flags; other options should be configured in Claude Code settings.
|
||||
If `allowed_tools` is omitted, Takopi defaults to `["Bash", "Read", "Edit", "Write"]`.
|
||||
|
||||
@@ -13,10 +13,18 @@ npm i -g opencode-ai@latest
|
||||
|
||||
Add to your `takopi.toml`:
|
||||
|
||||
```toml
|
||||
[opencode]
|
||||
model = "claude-sonnet" # optional
|
||||
```
|
||||
=== "takopi config"
|
||||
|
||||
```sh
|
||||
takopi config set opencode.model "claude-sonnet"
|
||||
```
|
||||
|
||||
=== "toml"
|
||||
|
||||
```toml
|
||||
[opencode]
|
||||
model = "claude-sonnet" # optional
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
|
||||
@@ -58,16 +58,27 @@ Add a new optional `[pi]` section.
|
||||
|
||||
Recommended schema:
|
||||
|
||||
```toml
|
||||
# ~/.takopi/takopi.toml
|
||||
=== "takopi config"
|
||||
|
||||
default_engine = "pi"
|
||||
```sh
|
||||
takopi config set default_engine "pi"
|
||||
takopi config set pi.model "..."
|
||||
takopi config set pi.provider "..."
|
||||
takopi config set pi.extra_args "[]"
|
||||
```
|
||||
|
||||
[pi]
|
||||
model = "..." # optional; passed as --model
|
||||
provider = "..." # optional; passed as --provider
|
||||
extra_args = [] # optional list of strings, appended verbatim
|
||||
```
|
||||
=== "toml"
|
||||
|
||||
```toml
|
||||
# ~/.takopi/takopi.toml
|
||||
|
||||
default_engine = "pi"
|
||||
|
||||
[pi]
|
||||
model = "..." # optional; passed as --model
|
||||
provider = "..." # optional; passed as --provider
|
||||
extra_args = [] # optional list of strings, appended verbatim
|
||||
```
|
||||
|
||||
Notes:
|
||||
|
||||
|
||||
@@ -144,11 +144,21 @@ transformation.
|
||||
|
||||
A minimal TOML config for Pi:
|
||||
|
||||
```toml
|
||||
[pi]
|
||||
model = "..."
|
||||
provider = "..."
|
||||
extra_args = []
|
||||
```
|
||||
=== "takopi config"
|
||||
|
||||
```sh
|
||||
takopi config set pi.model "..."
|
||||
takopi config set pi.provider "..."
|
||||
takopi config set pi.extra_args "[]"
|
||||
```
|
||||
|
||||
=== "toml"
|
||||
|
||||
```toml
|
||||
[pi]
|
||||
model = "..."
|
||||
provider = "..."
|
||||
extra_args = []
|
||||
```
|
||||
|
||||
Use `extra_args` for any Pi CLI flags not explicitly mapped.
|
||||
|
||||
Reference in New Issue
Block a user