deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
English | 中文
A persistent bottom-right status card for the DeepSeek Harness web surface. It
pins into the root shell.overlay seat and shows, across the whole process:
The Host half exposes two Typert Remote faces — accountBalance.status and
accountBalance.quotas. status is a pure in-memory snapshot over
ctx.agents.list() and ctx.jobs.list(); it never scans session logs, so the
3-second browser poll stays sub-millisecond and cannot stall a user message.
quotas fans the four provider requests out in parallel and caches the result
for 55 seconds; every external number is normalized at the wire boundary and
rows are shaped strictly by mode, so the Remote JSON never carries an
undefined field. Provider credentials resolve per operation through
ctx.credentials (ZAI_CODING_CN_API_KEY, KIMI_CODING_API_KEY,
OPENROUTER_API_KEY, DEEPSEEK_API_KEY) and never leave the Host.
Prerequisites: Node.js 22.19+ or 24+, pnpm 11 (corepack enable or npm i -g pnpm) — dsh plugin forwards to pnpm inside the profile directory.
From a DeepSeek Harness source checkout (recommended — you get the harness source too):
git clone --depth 1 --branch dsh-v0.1.2-rc.1 https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness && pnpm install && pnpm run build
pnpm dsh plugin --profile web add -w github:lovstudio/dsh-account-balance#v0.1.3
pnpm dsh web
Without a checkout (npx; compiled harness only):
npx @deepseek-ai/dsh plugin --profile web add -w github:lovstudio/dsh-account-balance#v0.1.3
npx @deepseek-ai/dsh web
web is the profile dsh web boots. The tag pins a commit whose lib/ is prebuilt and committed, so nothing is compiled on your machine. Verified on 2026-09-04 against dsh-v0.1.2-rc.1 in both forms. Remove with dsh plugin --profile web remove @lovstudio/dsh-account-balance.
accountBalance.status(): Promise<RemoteResult<AccountBalanceStatusSnapshot>>Live process status: { sessions, tasks } — distinct live session ids and
background jobs currently in the running state.
accountBalance.quotas(): Promise<RemoteResult<AccountBalanceQuotaSnapshot>>Four-provider snapshot: { at, rows: { glm, kimi, or, ds } }. Window rows
(glm, kimi) carry mode: 'windows' with windows.w5 and windows.week;
balance rows (or, ds) carry mode: 'balance' with balance and detail.
Every row carries a status of ok | no-key | no-data | error.
No configuration. The four provider credentials are read from the credential service by reference; a missing key renders the row as 「—」 with a tooltip reason.
Install dependencies and keep the Host and Client artifacts current from this repository:
pnpm install
pnpm run watch
Mount the checkout into an isolated development profile rather than editing the
DeepSeek Harness workspace or the default ~/.dsh profile:
DSH_HOME=/Users/mark/.dsh-lov-dev pnpm --dir /path/to/deepseek-harness dsh plugin --profile web add -w link:/path/to/dsh-account-balance
None — the card is a leaf surface. Consumers may read the same two Remote faces for their own status/quota displays.
Nothing. The card is browser-only UI; both Remote calls run outside model turns and their results never enter a prompt.
Zero — the plugin performs no model calls.
None — no prompt prefix is contributed.
jobs.list() visibility — the Host status handler lists jobs without a
caller, so jobs owned by another session may not be counted as tasks;
unowned and visible jobs are counted.no-data rows rather than a
crash.CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。