Summary
Layer 3 of the Pluggable Tool Registry (#1802): runtime tool registration with config.toml overrides, auto-discovery of plugin scripts from ~/.deepseek/tools/, and an enterprise audit wrapper example.
Changes
Config.toml overrides ([tools.overrides])
Users can replace any built-in tool or disable it entirely — no fork, no recompile:
{ type = "script", path = "wrapper.sh" } — run a script as the implementation
{ type = "command", command = "bat", args = [...] } — run a command
{ type = "disabled" } — remove the tool from the model's catalog
Plugin tool auto-discovery
Scripts dropped in ~/.deepseek/tools/ with frontmatter headers are auto-registered:
- Supports
#, //, and -- comment prefixes
- Frontmatter:
name, description, schema, approval
- Script receives JSON on stdin, returns ToolResult JSON on stdout
- Shebang resolution routes through the correct interpreter
Enterprise audit wrapper example
An exec_shell override script that logs every command with a timestamp before executing.
Implementation
- ScriptPluginTool, CommandPluginTool — implement ToolSpec
- ToolRegistry: remove_tool(), apply_overrides(), load_plugins()
- Plugin tools are never deferred (immediately visible to the model)
- Shebang + extension-based interpreter resolution
Parent
Closes the Layer 3 portion of #1802
Summary
Layer 3 of the Pluggable Tool Registry (#1802): runtime tool registration with config.toml overrides, auto-discovery of plugin scripts from
~/.deepseek/tools/, and an enterprise audit wrapper example.Changes
Config.toml overrides (
[tools.overrides])Users can replace any built-in tool or disable it entirely — no fork, no recompile:
{ type = "script", path = "wrapper.sh" }— run a script as the implementation{ type = "command", command = "bat", args = [...] }— run a command{ type = "disabled" }— remove the tool from the model's catalogPlugin tool auto-discovery
Scripts dropped in
~/.deepseek/tools/with frontmatter headers are auto-registered:#,//, and--comment prefixesname,description,schema,approvalEnterprise audit wrapper example
An exec_shell override script that logs every command with a timestamp before executing.
Implementation
Parent
Closes the Layer 3 portion of #1802