Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DSH_BINNoHarness CLI for headless modethe dsh inside the macOS app, else PATH
DSH_HOMENoHarness data folder (headless session reads)~/.dsh
DSH_BATON_HOMENoSocket and headless run records~/.dsh-baton
DSH_BATON_SOCKETNoPlugin socket path (must match on both sides); on Windows mapped to a per-user named pipe$DSH_BATON_HOME/host.sock
DSH_BATON_WAIT_SNoHow long one dsh_wait call waits; set it only if you raised the client's tool timeout, and keep it below that270 for Codex, else 50
DSH_BATON_ACCOUNTNo0 uses the API-key route in headless mode1
DSH_BATON_BACKENDNoauto, host or headlessauto
DSH_BATON_PATCHESNoExtra headless --patch overlays, :-separatedempty

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
dsh_list_workspacesA

List the workspaces (project folders) shown in the DeepSeek Harness sidebar. Needs the dsh-baton-host plugin.

dsh_create_workspaceA

Register a folder as a workspace in the DeepSeek Harness sidebar (creates the folder unless create_dir is false). Idempotent: an already registered folder returns its existing workspace. Needs the dsh-baton-host plugin.

dsh_list_sessionsA

List saved DeepSeek Harness sessions, newest first, with title, workspace folder (cwd) and whether a run is active. Use it to find the session_id to continue. Sessions not in dsh_list_sessions are archived or gone: do not look for them on disk.

dsh_read_sessionB

Read the recent visible conversation (user prompts and assistant replies, with tool names) of one session.

dsh_sendA

Send a message to DeepSeek Harness. With session_id it continues that existing session (same context, no new session); with cwd or workspace_id it starts a new session there (a cwd that is not a workspace yet is registered in the sidebar first). Returns immediately with a run_id; the turn runs in the background. If the session is already working, mode followup (default) queues the message after the current turn and steer adds it to the running turn; each message gets its own run_id. The message is delivered verbatim as a user message, with no prefix or label added: write it in the language the user works in, self-contained (Harness does not see this conversation), and say who is asking only if it matters. Then wait for the reply with dsh_wait (or the wait_command it returns, where offered).

dsh_statusA

Progress of a run: state (queued/running/waiting/completed/failed/cancelled, or interrupted when a Harness restart cut it short), session_id, recent events (text, tool calls), final reply, waiting_on when the turn is over but sub-agents or background jobs are still working, and human_interjections when someone typed in the Harness UI during the run (its result then reflects that input too). A one-off look, never a way to wait: to wait for the reply use dsh_wait, and if dsh_wait timed out, call dsh_wait again.

dsh_waitA

Wait for a run to finish and return its final status and reply. Prefer the background wait_command from dsh_send when your client can run background shell commands and wake you when they exit: it costs no turns while waiting. Each call waits up to 50 s (set by the server to stay under this client's tool timeout); if the run is still going it returns timed_out: true with just the state: then call dsh_wait again with the same run_id, without summarising progress. Sends progress notifications while waiting when the client asks for them.

dsh_rename_sessionC

Rename a DeepSeek Harness session (shown in the sidebar).

dsh_rename_workspaceA

Rename a DeepSeek Harness workspace (sidebar title only; the folder is not moved). Identify it by workspace_id or path.

dsh_session_activityA

What a session is doing right now: its running turn, sub-agents (any depth), background jobs and reminders, plus runs handed over through dsh-baton. Check this before sending to a session that might be busy.

dsh_cancelA

Stop everything a session is doing (running turn, sub-agents, background jobs), by run_id or session_id. Messages still waiting in the queue are not removed.

dsh_list_runsB

List recent runs handed over through dsh-baton, newest first.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 12 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions (list/create/rename workspace vs session, send, cancel). The trio dsh_status, dsh_wait, and dsh_session_activity all report run state and could be confused, but the descriptions explicitly carve out roles (one-off look, blocking wait, pre-send busy check).

Naming Consistency5/5

Every tool uses the uniform dsh_ prefix with snake_case and a predictable verb_noun shape (list_workspaces, create_workspace, rename_session, list_runs). The few bare verbs (send, status, wait, cancel) still fit the same convention.

Tool Count5/5

12 tools is well within the sweet spot for a session/workspace orchestration server. Each tool maps to a distinct operation (list/read/create/rename across sessions and workspaces, plus run lifecycle and control) with no obvious redundancy.

Completeness4/5

The surface covers the core lifecycle: register/rename/list workspaces, list/read/rename sessions, send/status/wait/cancel runs, and run handover listing. The notable gap is deletion/archival for workspaces and sessions, and there is no direct way to fetch a handed-over run's details beyond dsh_status.

Maintenance

ActivityMaintained
ResponsivenessNo issues