Files
deepseek-harness/packages/experimental/terminal-bundle

description, kind
description kind
Keep shell processes alive across tool calls. package-bundle

@deepseek-ai/dsh-experimental-terminal-bundle

English | 中文

Summary

Add six experimental global terminal tools to every Agent. The bundle owns an isolated terminal registry with the platform shell backend; terminals remain Agent-owned. It ships switched off in Web and Desktop and is omitted from the Plugins bundle lists and detail pages.

Table of Contents


Use this package

In $DSH_HOME/profiles/<name>/package.json (default home: ~/.dsh), add @deepseek-ai/dsh-experimental-terminal-bundle to dsh.profile.bundles to enable its profile layer; remove it from that list to disable it. Restart that profile to apply the change; see the profile reference. The minimal preset loads its own persistent shell independently of this bundle.

The selected layer adds its global tools to every Agent in the Host, in every preset including minimal. Hiding the management entry preserves existing selections; the upgrade guide explains how to disable a previously enabled layer.


Understand the implementation

Implementation details — click to expand

cordis.patch.yml inserts the Host group optional-persistent-terminals, which registers the tools in the global tool layer. Later profile patches can override its rows by id. The profile composer owns patch ordering and errors.


Further Exploration

Capability implementation


Model Experience

Indirectly, through the capability implementation, which owns model context and results.

KV Cache effect

The layer adds no request content directly; the capability implementation owns cache effects from tools, prompts, and results. Toggling the bundle changes the tool list of live Sessions, which invalidates their cached request prefix once.

Known Limitations and Deferred Work

  • Terminals belong to the Agent that created them. POSIX uses Bash and Windows uses PowerShell; the bundle does not share another terminal registry.

Dev Note

Maintainer context — click to expand

None.