mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-11-05 23:37:25 +00:00
feat(coding-agent): accept +name/-name entries in --tools
A --tools list of only +name/-name entries changes the default tool selection like the defaultTools setting, e.g. pi -t +codemode. Mixed lists and patterns in modifiers are rejected, and /reload keeps tools removed with -name removed.
This commit is contained in:
parent
23cf2b948d
commit
ddaa0a0341
9 changed files with 183 additions and 34 deletions
|
|
@ -117,7 +117,7 @@ pi --tools read,grep,find,ls --print "Review this project"
|
|||
See [Settings](settings.md#tools) for configuring the default tool selection.
|
||||
|
||||
- `-t`, `--tools <list>`<br>
|
||||
Replaces the default selection with a comma-separated allowlist of built-in, extension, or custom tools. Entries are tool names or patterns where `*` matches any characters. MCP tools are kept unless an entry starts with `mcp__` (see [MCP tools](#mcp-tools)).
|
||||
Replaces the default selection with a comma-separated allowlist of built-in, extension, or custom tools. Entries are tool names or patterns where `*` matches any characters. MCP tools are kept unless an entry starts with `mcp__` (see [MCP tools](#mcp-tools)). A list of only `+name` and `-name` entries is not an allowlist; it changes the default selection instead.
|
||||
- `-xt`, `--exclude-tools <list>`<br>
|
||||
Disables comma-separated tool names or patterns after all other selection options, MCP tools included.
|
||||
- `-nbt`, `--no-builtin-tools`<br>
|
||||
|
|
@ -125,7 +125,7 @@ See [Settings](settings.md#tools) for configuring the default tool selection.
|
|||
- `-nt`, `--no-tools`<br>
|
||||
Starts with all built-in, extension, custom, and MCP tools disabled.
|
||||
|
||||
Default enabled tools are `read`, `bash`, `edit`, and `write`, unless `defaultTools` changes them. `--tools` replaces the whole selection, so name every tool you want; `defaultTools` also accepts `+name` and `-name` to change the defaults instead.
|
||||
Default enabled tools are `read`, `bash`, `edit`, and `write`, unless `defaultTools` changes them. `--tools` with plain names replaces the whole selection, so name every tool you want. Like `defaultTools`, it also accepts a list of only `+name` and `-name` entries, which adds tools to or removes them from the default selection: `pi --tools +codemode,-write` keeps the other default tools, enables `codemode`, and disables `write`. These entries take exact tool names, not `*` patterns; use `--exclude-tools` to disable tools by pattern. Plain names and `+name`/`-name` entries cannot be mixed. `/reload` enables tools newly added to `defaultTools`, but a tool removed with `-name` stays removed.
|
||||
|
||||
<a id="mcp-tools"></a>
|
||||
|
||||
|
|
@ -165,10 +165,10 @@ To turn on `codemode` for every session, add it to the default tools in `~/.pi/a
|
|||
}
|
||||
```
|
||||
|
||||
This keeps `read`, `bash`, `edit`, and `write` and adds `codemode`. For one invocation, list every tool, since `--tools` replaces the selection:
|
||||
This keeps `read`, `bash`, `edit`, and `write` and adds `codemode`. For one invocation, add it with `--tools`:
|
||||
|
||||
```sh
|
||||
pi --tools read,bash,edit,write,codemode
|
||||
pi --tools +codemode
|
||||
```
|
||||
|
||||
Codemode is useful without MCP: scripts can run several tool calls in parallel, filter large output before it reaches the model, call classifier models such as TypeSafe's Jev through `models.classify()` (see [Classifier models](models.md#use-classifier-models)), and generate images through `models.generateImages()` (see [Image models](models.md#use-image-models)).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue