DeepSeek Harness Bluebook
User Guide

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

ToolPurposeTypical use
skillLoad a skill's full instructions on demandRead a reusable instruction pack before acting
create_goal · get_goal · update_goalCreate, read, and advance one same-session completion goalKeep a session driving a long objective across rounds
todo_writeMaintain a structured task listTrack progress on multi-step work
readRead a UTF-8 text file with line numbersInspect a source or config file
writeCreate a file or fully replace its contentsWrite a new file
editReplace literal text in an existing fileMake a targeted change
read_imageRead a PNG/JPEG/WebP/GIF imageLet the model view an image
glob · grepFind files by path pattern and search contentsLocate files and symbols quickly
bashRun a shell command in a fresh processRun commands, tests, and git operations
web_searchSearch the web for current informationDiscover facts and collect source URLs
web_fetchFetch a web page's contentRead a page the search surfaced
subagentDelegate self-contained work to a continuable child agentFan out independent tasks in the background
subagent_forkDelegate work to a child that inherits this conversationContinue a context-heavy subtask
reportReport a self-contained result to the parent agentA child hands back its conclusion
send_message · list_agents · interrupt_agentManage continuable background subagentsMessage, list, or stop a child
workflowRun a script that orchestrates many subagentsFan out large batches of independent work
ralphRun a foreground fresh-agent loop toward one objectiveExplicit Ralph / fresh-agent iteration
ask_user_questionAsk the user a concise questionConfirm a choice or request missing information
job_output · job_kill · job_listRead, kill, and list background jobsManage background bash commands and subagents
exit_plan_modeSubmit a plan for review and leave plan modeExit planning and proceed after approval
cordis_define · cordis_run · cordis_stop · cordis_undefineDefine, run, stop, and delete dynamic Cordis pluginsExtend the running harness temporarily
cordis_inspect_list · cordis_inspect_query · cordis_inspect_selfRead-only inspection of services, events, plugins, and diagnosticsConfirm 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;
  • lsp for language-server queries;
  • the five read-only session_event_read, session_event_search, session_event_trace, session_search, and session_trace tools for session-log inspection;
  • the schedule_create, schedule_delete, and schedule_list reminder tools;
  • the code-mode transport run_code, the standalone str_replace_editor, and the Windows pwsh command tool.

Everything in the lookup table above ships in the default surface; the opt-in tools here require an explicit composition addition.

Next steps

On this page