DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Terse — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

@sagmans/dsh-terse

Terse

DeepSeek Harness plugin that makes agent output maximally terse, concise, and clean without sacrificing quality. Always-on, append-only.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add @sagmans/dsh-terse@0.2.1
READMECompatibilityVersions

Compatibility and provenance

Terse is published as @sagmans/dsh-terse and currently resolves to version 0.2.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
npm
Registry updated
10/18/2026

Versions

0.2.1stable
10/14/2026
0.2.0stable
9/30/2026
0.1.0stable
9/24/2026
Latest
0.2.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
73.4 kB
Files
20
Surface
any
License
MIT
Source
npm
GitHub
★ 0
Weekly downloads
13
Last push
9/30/2026
View source ↗Project homepage ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

README

dsh-terse

Mandatory, always-on terseness for DeepSeek Harness agents. Compresses everything an agent emits and everything it reads, without replacing the deployment's system prompt and without giving up answer quality.

There is no mode and no off switch. Mounting the row is the enabling act.

What it does

LayerExtension pointEffect
L1 constitutionsystemPrompt.sectionA static, cache-stable rule set that makes every reply compressed.
L2 standing remindersystemPrompt.contextA durable <system-reminder> snapshot that survives compaction, where a system-only rule fades.
L3 drift nudgetools/post-execute -> additionalContextsA one-line reminder that rides a tool result and catches a reply that ran long. Capped per turn; cannot loop.
L4 input shapingtools/post-execute contentCollapses repeated lines and elides the middle of oversized tool output, with a locator so the original is one call away.
L5 enforcementsystem-prompt/assembleAsserts the constitution survived assembly; logs a loud warning if it did not. Never rewrites peer contributions.
L6 coverageper-session stateCadence and reply observations keyed by the session object, so a resumed or forked session starts clean.

Why it does not hurt quality

Compression is aimed at the chat mouth, never at meaning or at durable artifacts:

  • Never cut negations, quantifiers, numbers, units, code, identifiers, paths, commands, or exact error strings. These are the token classes whose loss flips semantics.
  • Never fake terseness. Invented abbreviations and arrows cost the same tokens and hurt clarity; if the terse form is not shorter than plain, plain wins.
  • Full prose returns for security warnings, irreversible-action confirmations, order-sensitive multi-step sequences, and anywhere compression would create ambiguity.
  • Code is never judged as drift, so a long implementation is never punished.
  • Tool output is only elided reversibly, never lossy on errors, and the locator lets the agent pull the original back.

Those choices are measured in benchmark/README.md; their design record is a local working artifact, not a shipped doc.

Install

The plugin is one row, and it peers on the harness window >=0.1.5-rc.1 <0.3.0; the releases verified for it are listed in dsh.compatibility.dshReleases of package.json. Add it to a profile:

dsh plugin --profile <name> add @sagmans/dsh-terse

Or insert it directly in the profile's cordis.patch.yml:

- insert:
    - id: terse
      name: '@sagmans/dsh-terse'

The shipped row is in cordis.patch.yml.

Configuration

Every field is optional; the shipped defaults are the product.

FieldDefaultMeaning
constitutionshipped textReplaces the L1 rule set.
standingshipped textReplaces the L2 reminder; empty suppresses it.
shapingtrueWhether L4 runs.
driftsee belowL3 thresholds.
shapingConfigsee belowL4 bounds.
interface DriftConfig {
  maxReplyTokens: number           // 220  reply length above which the prose budget is exceeded
  minReplyTokensToJudge: number    // 60   floor below which no reply is judged
  maxProseRatio: number            // 0.72 prose ratio above which a long reply is padding
  minJudgeableProseRatio: number   // 0.4  below this the reply is code, never judged
  idleStepsBeforeNudge: number     // 14   steps with no nudge before the anti-drift backstop fires
  maxNudgesPerTurn: number         // 2    hard cap on nudges, and so on their extra steps
}

interface ShapingConfig {
  maxResultChars: number   // 12000 threshold above which a result may be elided
  headChars: number        // 3000  head kept
  tailChars: number        // 1500  tail kept, where error trails live
  duplicateRunMin: number  // 4     repeated lines before a run collapses
}

Development

pnpm install --frozen-lockfile
pnpm run typecheck
pnpm test
pnpm run build

A profile loads dist/, not src/; run pnpm run build before dogfooding a linked profile.

Try it in the TUI

scripts/dogfood/run-terse-from-worktree.sh clones the real ~/.dsh to a scratch directory, mounts this checkout on the real tui profile inside the clone, and launches it. Every composition input is present — your other bundles, the profile patch, settings, themes, credentials — while every write goes to the throwaway clone.

./scripts/dogfood/run-terse-from-worktree.sh              # clone, build, launch
./scripts/dogfood/run-terse-from-worktree.sh --no-launch  # set up, print the command
./scripts/dogfood/run-terse-from-worktree.sh --status     # show what the clone runs
./scripts/dogfood/run-terse-from-worktree.sh --with-sessions
./scripts/dogfood/run-terse-from-worktree.sh --clean      # remove the clone

What to look for on the surface: the status line shows injected … terse:standing … when the layer is live. Ask a short factual question (expect one line), ask for code inline (expect the full implementation, no elision), and ask something safety-critical (expect full prose). Those three cases are the contract; if the code case is trimmed, that is a bug.

Benchmark

benchmark/benchmark.sh measures this plugin against a control profile that lacks it. See benchmark/README.md; the neutral home is mandatory, because a profile whose global instructions already ask for brevity makes the control terse too.

License

MIT.

Git hooks

Checks run in tracked local Git hooks instead of push/PR CI. Run scripts/setup-hooks once after cloning; it points this clone's core.hooksPath at .githooks. Each hook runs the generic checks first (sign-off and commit message format, a gitleaks secret scan, and signed, signed-off commits on push), then this repository's checks in .githooks/<hook>.d/ in name order. Install gitleaks first. Every check must pass before you push; never use --no-verify. Pre-push checks test exactly each pushed commit: in place only when it is the clean, unmodified checkout, otherwise in a temporary worktree of that commit.

This repository's checks:

  • pre-commit: staged whitespace and conflict-marker check.
  • pre-push: npm audit signatures, pnpm run check, pnpm audit --audit-level high.