-
Notifications
You must be signed in to change notification settings - Fork 2
TinyTitan Plugin
plugins/dsh-tinytitan is the DeepSeek Harness bundle that points the harness at a
local TinyTitan server, and keeps it pointed there. It is the one the installer sets
up: tools/dsh_local.sh installs a pinned harness under ~/.tinytitan and adds this
bundle, and tools/server_launcher.sh --web starts a TinyTitan server and opens the
harness in the browser.
It is deliberately thin. The harness's own llm-pi-ai adapter serves the models, so
this package adds configuration, not a protocol implementation — it never
patches the harness, and a harness upgrade cannot desynchronise a copied protocol.
Two jobs, both at boot, both idempotent.
Keeps the route current. Local Server and Launchers
generates the harness's llm-pi-ai route block from the models installed under
models/. This plugin runs that at boot and watches models/ afterwards, so an
install you start and finish while the harness is running reaches the model picker
without a restart — and a deletion stops being offered. Where no server has been
built yet it reads the folder itself, by the same rules, so an installed model is
still listed.
Mounts a compaction backend that does not think. Compaction calls name no
reasoning level, so they inherit the route's default — and against a local thinking
model that spends a summariser's whole output budget inside its reasoning block,
costing tens of seconds on every new session. The generated agent preset points that
row at dsh-tinytitan/backend, which forces thinking off for those calls only;
ordinary turns keep the route's level. Session titles are not covered: they are
issued by a host-plane plugin with its own context, which a bundle cannot wrap, so
the route's own reasoning setting is the only lever there.
dsh plugin --profile web add file:/path/to/TinyTitan/plugins/dsh-tinytitanRestart DSH and the plugin reports what it did. Or let the installer do it:
tools/dsh_local.sh sets the bundle up inside its own DSH_HOME, isolated from any
harness you already run — a harness of your own is never read, written or stopped.
Important
A file: install is a copy, not a link. After editing the plugin, re-install
it (dsh plugin --profile web remove dsh-tinytitan, then add again) and restart
the harness, or DSH keeps running the copy it made. The failure is silent — the
plugin still works, just at the version you installed.
This bundle supports exactly one DeepSeek Harness release: 0.1.6-alpha.2 — not
older, not newer, and not a build from main. It is also the release
tools/dsh_local.sh installs.
On any other release it refuses to run: one line on stderr naming both versions, and nothing else — no route, no preset, no watcher, and no writes into your harness home. It never throws, so DSH boots normally, every other plugin loads, and removing this one leaves nothing to undo. A version that cannot be read at all is refused the same way. stderr is where it goes because the harness prints a plugin's log records only when the boot itself fails, so anything quieter would be invisible.
Each change is made with a timestamped backup beside the original.
| File | Change |
|---|---|
~/.dsh/settings.yaml |
the llm-pi-ai route block, refreshed from the catalog |
~/.dsh/.agent-presets/tinytitan/agent.cordis.yml |
generated from the harness's shipped standard preset, with the compaction row on this backend |
~/.dsh/settings.yaml |
agent-presets.default: tinytitan — only when the file names no default |
| the current default preset | its stock compaction-basic row, re-pointed — never a preset that is not a user file |
If you have already chosen a preset, adoptDefaultPreset re-points that row rather
than overwriting your choice; set it to false to leave every file you own
untouched, and the plugin then writes only its own tinytitan preset.
Every field is optional. Six of them read the environment as a fallback — port,
reasoning, repoRoot, serverBinary, modelsDir and dshHome, through
TINYTITAN_PORT, TINYTITAN_REASONING, TINYTITAN_REPO, TINYTITAN_SERVER,
TINYTITAN_MODELS_DIR and DSH_HOME; the switches below do not. The ones worth
knowing:
| Field | Default | Meaning |
|---|---|---|
port |
TINYTITAN_PORT, else 8080
|
the port the server serves on |
reasoning |
TINYTITAN_REASONING, else medium
|
the route's declared default. It must match how the server was started: a route that says "think" against a server running --reasoning off makes a dense Qwen spend its whole output budget inside the reasoning block and never answer |
registerRoute |
true |
refresh the route block at boot |
watchModels |
true |
keep watching models/ while the harness runs |
writeCompactionPreset |
true |
generate the preset, or adopt the default's row |
selfContained |
false |
use the built-in generator even where tools/dsh_route.sh exists |
The exhaustive table, and what the plugin deliberately does not do, is in
plugins/dsh-tinytitan/README.md.
- Local Server and Launchers — the server this points at
- LAN Manager — the other DeepSeek Harness plugin here
Start
Use TinyTitan
DeepSeek Harness
Reference
Engineering
Project