Blog

DeepSeek Harness Tool Catalog: bash, Files, Subagents, Web Search | TeamoRouter

Quick Answer

A DeepSeek Harness (dsh) agent doesn't just chat — it calls a set of real tools to read and write files, run commands, spawn sub-agents, and search the web. These tools come from plugins; the most common in the standard preset:

Tool Purpose Typical use
bash Run shell commands Read files, run tests, install deps
File read/write Read / write / edit files Edit code, write reports
subagent Spawn sub-agents Parallelize sub-tasks
web_search / web_fetch Search / fetch pages Look up docs, get fresh info
ask_user_question Pause and ask the user Confirm critical decisions
lsp Language-server queries Types, navigation, completion

Understand these and you understand what separates dsh from a chatbot: every tool call is a real read, write, or execution.

bash: The Agent's Hands

bash lets the model run shell commands — the foundation for "run tests, install deps, read a repo":

text
List the current directory, then run the test suite and tell me the result.

The agent runs ls, reads files, executes the test command, reads stdout, and decides the next step. Note: bash means the agent has your current user's permissions — don't authorize dangerous commands in directories you're unsure about.

File Read/Write: Where Code Gets Edited

File tools let the agent read and write files in the working directory. Combined with bash, this is the core of the "edit code" loop: read → understand → edit → run tests → fix from results.

The standard preset usually also includes glob/grep file search, so the agent can locate "which file defines this function" instead of blindly reading the whole repo.

subagent: Parallelize Sub-Tasks

subagent lets the agent spawn sub-agents for sub-tasks and collect results. A typical use:

text
Main task: fix three unrelated bugs.

The agent can dispatch three sub-agents, one per bug, then merge the results. This cuts wall-clock time on long tasks — especially when the bottleneck is "many independent small jobs."

web_search / web_fetch: Network Access

web_search and web_fetch let the agent search and fetch pages — for "find the latest docs," "find the issue matching this error," or "get the current API signature," where training data isn't enough.

If you don't need network access (e.g. a purely local repo), just don't mount these tools — a more controllable, cheaper agent. That's dsh's trimmable capability surface (see Plugin Architecture).

ask_user_question: Confirmation at Critical Points

ask_user_question pauses the agent at a key node and waits for your answer. Use it for "this delete is irreversible — confirm?" so the agent doesn't auto-run its way into a mistake.

lsp: Language-Level Intelligence

The lsp tool exposes language-server capabilities — type queries, go-to-definition, completion. It needs a registered provider (e.g. dsh-lsp-stdio); without one it returns a structured error rather than crashing.

Run These Tools on the Free Tier

Tools are free; what costs money is the model call behind each tool round-trip. With TeamoRouter wired in, the free tier covers a full day:

bash
export DEEPSEEK_API_KEY="sk-teamo-your-key"
export DEEPSEEK_BASE_URL="https://api.teamorouter.com/v1"
export DEEPSEEK_DEFAULT_MODEL="deepseek-v4-pro-free"

deepseek-v4-pro-free gives 200 requests/day, each tool round-trip counting as one — light work on deepseek-v4-flash-free (also 200/day), hard work on Pro (see 200 Requests a Day).

FAQ

Are all these tools available by default?

It depends on the loaded agent preset. The standard preset includes bash + file read/write + glob/grep; web_search, subagent, and lsp depend on the preset or config, which you can trim or extend.

Will the agent run dangerous commands on its own?

bash gives it permission in principle. Be safe: run in a restricted working directory, use ask_user_question before critical actions, and don't expose dsh's port to the internet.

Do tool calls consume the free quota?

Yes. Each tool round-trip is one request against the 200/day. Deeper tool loops burn faster — that's why hard work deserves Pro and light work stays on Flash.

How do I add a custom tool?

Write a Cordis plugin registered on ctx.tools, or mount it in a preset. This is the heart of dsh's extensibility (see Plugin Architecture).

Can the file tools write any path?

They're bounded by the working directory and permissions. By default they act inside the agent's working directory; the exact boundary depends on the loaded fs provider.

To run this tool set in practice, get a key at TeamoRouter, configure dsh, and give the agent a "read the repo + run tests + report" task.

Ready to connect?Log in · top up · create an API key — three steps to start.
DeepSeek Harness Tool Catalog: bash, Files, Subagents, Web Search | TeamoRouter · TeamoRouter