Tools Reference
Curated lookup of the tools DeepSeek Harness exposes to the model, grouped by what they do and when to use them
This page curates the model-facing tools users and plugin developers most often need to know about. The exhaustive source is the generated tool catalog, which boots each tool plugin on a real context and records the exact name, description, and JSON Schema the model receives.
This page describes purpose in plain language and deliberately does not reproduce signatures or schemas. A registered name can be a load-time config (for example @deepseek-ai/dsh-tool-subagent's toolName), so a deployment may expose a package under a different or additional name; where shipped aliases exist — subagent_fork is the fork backend's binding of subagent — they are listed here.
Which tools a session actually sees depends on its composition: an agent preset contributes its own tool rows, so a minimal preset exposes far fewer tools than the default web composition.
Tool lookup
| Tool | Purpose | Typical use |
|---|---|---|
skill | Load a skill's full instructions on demand | Read a reusable instruction pack before acting |
create_goal · get_goal · update_goal | Create, read, and advance one same-session completion goal | Keep a session driving a long objective across rounds |
todo_write | Maintain a structured task list | Track progress on multi-step work |
read | Read a UTF-8 text file with line numbers | Inspect a source or config file |
write | Create a file or fully replace its contents | Write a new file |
edit | Replace literal text in an existing file | Make a targeted change |
read_image | Read a PNG/JPEG/WebP/GIF image | Let the model view an image |
glob · grep | Find files by path pattern and search contents | Locate files and symbols quickly |
bash | Run a shell command in a fresh process | Run commands, tests, and git operations |
web_search | Search the web for current information | Discover facts and collect source URLs |
web_fetch | Fetch a web page's content | Read a page the search surfaced |
subagent | Delegate self-contained work to a continuable child agent | Fan out independent tasks in the background |
subagent_fork | Delegate work to a child that inherits this conversation | Continue a context-heavy subtask |
report | Report a self-contained result to the parent agent | A child hands back its conclusion |
send_message · list_agents · interrupt_agent | Manage continuable background subagents | Message, list, or stop a child |
workflow | Run a script that orchestrates many subagents | Fan out large batches of independent work |
ralph | Run a foreground fresh-agent loop toward one objective | Explicit Ralph / fresh-agent iteration |
ask_user_question | Ask the user a concise question | Confirm a choice or request missing information |
job_output · job_kill · job_list | Read, kill, and list background jobs | Manage background bash commands and subagents |
exit_plan_mode | Submit a plan for review and leave plan mode | Exit planning and proceed after approval |
cordis_define · cordis_run · cordis_stop · cordis_undefine | Define, run, stop, and delete dynamic Cordis plugins | Extend the running harness temporarily |
cordis_inspect_list · cordis_inspect_query · cordis_inspect_self | Read-only inspection of services, events, plugins, and diagnostics | Confirm capabilities before writing plugin code |
Generated from a booted runtime
The catalog is not a static source scan: it boots each tool plugin and reads ctx.tools.schemas(), because a tool's schema is not statically knowable (runtime-spread enums, config-driven names, raw MCP schemas). Treat this page's names as the shipped defaults.
How the groups fit together
The groups below overlap on purpose: report and the job_* tools are shared across delegation and command execution, and exit_plan_mode sits at the boundary between planning and interaction.
File operations
read, write, edit, read_image, glob, and grep form the file toolkit. A read-before-write/edit observation policy backs write and edit; glob and grep spawn the packaged ripgrep binary through the subprocess seam, so they never need a host rg install and never go through the shell layer.
Command execution
bash runs each call in a fresh process. Passing run_in_background: true registers the run with the job runtime, where the job_output/job_kill/job_list tools read, stop, and list it — the same three tools also govern background subagents and PTY sends.
Delegation & orchestration
subagent and subagent_fork delegate self-contained work to children; report, send_message, list_agents, and interrupt_agent manage those children; workflow and ralph orchestrate many agents at once. See Subagents & workflows.
Goals, todos & plans
create_goal/get_goal/update_goal drive a persisted same-session objective, todo_write tracks its steps, and exit_plan_mode hands a plan to the user for approval. See Skills & goals.
Plugin development
The cordis_* tools are an opt-in set: a running dynamic plugin reaches the real runtime, so none ship in a default tree until a composition mounts @deepseek-ai/dsh-cordis-host-runner. See Cordis primer.
Interaction, web & planning
ask_user_question pauses the tool call until a human answers through the UI; web_search and web_fetch keep provider selection behind the web seam so their schemas stay stable across backend swaps; exit_plan_mode presents the plan over the user-questions seam and rejects calls outside plan mode.
Also available, opt-in
Several shipped tools are not in the default surface but load on request — each needs a provider, a platform (Windows or a PTY backend), or a deliberate composition choice. They are catalogued in the tool catalog but sit outside this curated set:
- the six
terminal_*tools (terminal_open,terminal_send,terminal_read,terminal_signal,terminal_list,terminal_close) for persistent PTY sessions; lspfor language-server queries;- the five read-only
session_event_read,session_event_search,session_event_trace,session_search, andsession_tracetools for session-log inspection; - the
schedule_create,schedule_delete, andschedule_listreminder tools; - the code-mode transport
run_code, the standalonestr_replace_editor, and the Windowspwshcommand tool.
Everything in the lookup table above ships in the default surface; the opt-in tools here require an explicit composition addition.
Next steps
Configuration Reference
Curated lookup of the DeepSeek Harness settings, credentials, environment variables, model routes, sandbox modes, and persistence options users and plugin authors touch most
Developer Guide
Extend DeepSeek Harness with Cordis plugins: architecture, dynamic plugins, Host services & events, Slot UI and tools