An experimental DeepSeek Harness preset. On the first request it shows the model
the same two tools as DeepSeek's official Minimal preset, persistent bash and
str_replace_editor, with the Minimal system prompt, a 1024-token output limit,
and no injected workspace or skill context. Once the session makes its first
tool call or writes its first reply, the full Standard tool catalog opens up.
This is a community project. It is not an official DeepSeek preset and is not affiliated with or endorsed by DeepSeek.
DeepSeek V4 Pro pays a lot of attention to which tools it can see in the API.
Upstream also reported Project2 V4.1b scores on this endpoint: the official
Minimal preset scored 99 and 96, while Standard and PTC scored 91 and 92, and
the higher-scoring runs showed the we/let's reasoning style. This preset
copies Minimal's first-request tool identity.
The upstream experiment
xiaobright/dsh-anchored-standard
bootstrapped the first request with pwsh/bash + read, a 1024-token output
cap, and stripped injected context. Its
issue #11
then ran controlled Windows tests and found that the tools shown on the first
request matter most:
| First-request tools | Source | n | First line | let me |
|---|---|---|---|---|
persistent bash + str_replace_editor |
official Minimal preset | 5 | 5/5 We need... |
0.0 |
pwsh + read |
anchored-standard | 8 | 8/8 The user wants / Let me... |
2.0 to 2.6 |
This preset keeps that approach and changes only the first-request tool surface.
It mounts the official Minimal persistent-shell and editor groups, so request #1
sees bash + str_replace_editor. The 1024-token cap and the first-request
context filter stay. After promotion the session gets the full Standard catalog
plus those two tools.
- Keep the Minimal system prompt:
You are a helpful software engineer assistant. - On the first model request, expose only the official Minimal tool schemas:
persistent
bashandstr_replace_editor. - Strip auto-injected context on request #1: the AGENTS.md/CLAUDE.md workspace
digest and the available-skills reminder that true Minimal never mounts
(
suppressedContextSources). Skill gestures the user sends themselves are not filtered, and both injections come back from request #2 on. - Cap request #1 at
bootstrapMaxTokens(default 1024), then release the cap after promotion. - After the first durable
tool/callor the firstassistant/message, expose the full Standard catalog. Request #1 always sees the bootstrap catalog and request #2 always sees the full one. - Derive the phase from durable session events, so resume and reload keep it.
Local tests on Windows 11 with opencode-go, deepseek-v4-pro, and
reasoningEffort=max, 2026-08-15. Counts match upstream: completed reasoning
text, case-insensitive, whole words.
| Preset | Prompt language | First-request tools | maxTokens |
we |
let's |
let me |
|---|---|---|---|---|---|---|
| dsh-anchored-standard (real session) | Chinese | pwsh, read |
1024 | 0 | 0 | 5 |
| dsh-anchored-standard (control) | English | pwsh, read |
1024 | 3 | 2 | 0 |
| dsh-minimal-anchored #1 | English | bash, str_replace_editor |
1024 | 2 | 1 | 0 |
| dsh-minimal-anchored #2 | English | bash, str_replace_editor |
1024 | 3 | 1 | 0 |
| dsh-minimal-anchored | Chinese | bash, str_replace_editor |
1024 | 0 | 0 | 1 |
One more Windows session, reported by a user but not counted line by line, used
only we/let's reasoning and no let me.
A few limits worth knowing:
we,let's, andlet meare trajectory fingerprints, not performance claims. Matching the wording does not promise a score or capability change.- English prompts reproduced reliably in the tests above. Chinese prompts do
not produce a stable English
wefingerprint; see upstream issues #6 and #11. - The model endpoint can drift over time. Treat these numbers as a snapshot, not a contract.
Developed and tested against:
- DeepSeek Harness
0.1.0-rc.5 - repository commit
47f9438 - Node.js 24 on Windows
DeepSeek Harness is a developer preview and explicitly permits breaking changes. Check the upstream composition before using this preset with a newer release.
On Windows the bootstrap shell is persistent bash. Make sure a bash is
available (Git for Windows or WSL, for example) before starting a session.
Clone this repository and copy the whole preset directory into the user
preset root under the id minimal-anchored.
PowerShell:
$dshHome = if ($env:DSH_HOME) { $env:DSH_HOME } else { Join-Path $env:USERPROFILE '.dsh' }
$target = Join-Path $dshHome '.agent-presets\minimal-anchored'
if (Test-Path -LiteralPath $target) { throw "Preset already exists: $target" }
New-Item -ItemType Directory -Force -Path (Split-Path -Parent $target) | Out-Null
Copy-Item -Recurse -LiteralPath '.\preset' -Destination $targetLinux/macOS:
dsh_home="${DSH_HOME:-$HOME/.dsh}"
mkdir -p "$dsh_home/.agent-presets"
test ! -e "$dsh_home/.agent-presets/minimal-anchored"
cp -R preset "$dsh_home/.agent-presets/minimal-anchored"Restart DeepSeek Harness completely, start a blank session, and select Minimal Anchored Standard (experimental). Do not switch presets in a session that already has content.
Export the session JSONL and inspect request/header events:
- the first header should contain only
bashandstr_replace_editor, withconfig.maxTokens: 1024and the Minimal persona system prompt; - the first request's messages should contain no AGENTS.md/CLAUDE.md digest and no available-skills reminder;
- after the first tool call or first assistant reply, the next changed header
should contain the full Standard catalog (plus
bashandstr_replace_editor); - later requests keep that full catalog and restore the standard context injections.
Run the local zero-dependency tests:
npm test- With the default
promoteOn: either, the session promotes after its first durabletool/callor its firstassistant/message, whichever comes first. SetpromoteOn: tool-callto require a tool call. - A failed tool execution still promotes the session because the durable
tool/callalready exists. - If a bootstrap tool is missing, the preset degrades to the full catalog with
a one-time warning instead of failing requests. Invalid
promoteOnvalues fail when the preset mounts. - While a session is unpromoted, the pre-step filter strips messages whose
source.kindis listed insuppressedContextSources(default:agent-instructionsandskill-catalog). Set the list to[]to turn the context filter off. If the filter itself fails, it keeps every message. - The tool catalog changes once, so request-prefix cache continuity changes once too, between the first and second model requests.
- The preset has the same trust level as shell access. Read its files before installing it.
- The plugin makes no network requests and adds no telemetry.
This project is derived from
xiaobright/dsh-anchored-standard
at commit 6472c1c, with the first-round budget-cap listener fix synced from
upstream PR #13 (commit c774e60). That project is based on the DeepSeek
Harness Standard preset. The Minimal persistent-shell and editor groups are
copied from the official DeepSeek Harness Minimal preset. Copyright and license
details are in LICENSE and NOTICE.