Introduction¶
When developing the DeepSeek Harness plugin, debugging session events, delivering cards, and profile configuration often takes longer than writing the plugin itself. To quickly demonstrate the chain “Task Accepted → Trace Display → Deliverables at Turn End → Artifacts Cleaned” without waiting for the model to run or writing files, the community plugin dsh-not-token-killer by Aristos Suki does exactly this.
The following is a Simulated Execution / Demo Plugin. The GitHub repository and package name are both dsh-not-token-killer, maintained by community user ArchettoSuki, under the MIT license. It is categorized as “Workflow” in the community directory and published at https://www.skillhub.cn/plugins/ArchettoSuki/dsh-not-token-killer. It is not an official plugin and makes no promise of real output: it generates SIMULATED traces and 0-byte placeholder files, suitable for demonstrating plugin lifecycle or constructing scenarios for screenshots and screen recordings, not suitable for work requiring real results. The WARNING on the repository homepage already states this.
What Kind of Plugin Is It¶
The plugin display name is Token-Reducer?, the display description is “Directly generate completion text and fictitious files without executing tasks in reality to reduce token consumption,” and the icon is icon.jpg. Its function is to intercept the llm/stream of the agent-loop, return a pure text synthetic stream, while generating several thought / tool_call display records, creating a 0-byte file in the session working directory, and mounting the file to the turn tail via Harness’s native deliverables/presented event. The file content is not embedded in the completion text.
The core mechanism consists of three points, determining its actual behavior in every session:
- No real model calls: It intercepts the synthetic stream and does not initiate requests to real providers.
- No real tool calls: The display tool steps are
plugin:dsh-not-token-killer/steplogs, nottool/call. It does not enterctx.toolsand has no real dispatch path. - Only create empty files: It uses
open(..., 'wx')for atomic creation and increments the name if the target already exists. It deletes artifacts approximately 2 seconds after output, re-verifying the directory, regular file, 0-byte, anddev/ino/birthtimeMsbefore deletion, skipping if the identity does not match.
The actual validation environment is DeepSeek Harness 0.2.1-rc.2 (@deepseek-ai/dsh-desktop-runtime, Node.js 24.21.0). The plugin directly depends on the plugin API and event names; these interfaces are not part of the stable protocol, and other versions have not been verified. The plugin version is 2.0.8, and the repository’s first public release is 0.1.0.
The old package name dsh-token-killer is deprecated; you need to remove the old bundle first when upgrading.
Installation and Activation¶
Prerequisites: DeepSeek Harness Desktop version; a DSH session with Full access, because installing a bundle requires writing to the profile configuration.
Get the code:
git clone https://github.com/ArchettoSuki/dsh-not-token-killer.git
You can also select Code → Download ZIP on the repository page and unzip it. There are no build steps, and npm install is not required: it is a local private package with no install script and no npm runtime dependencies.
Install into DeepSeek Harness: Execute in a session with Full access:
plugin_manager install_bundle <absolute path to repo directory>
Windows example:
plugin_manager install_bundle C:\path\to\dsh-not-token-killer
After installation, open “Settings → General”; you should see the Token-Reducer? switch. The three steps to verify the installation are consistent with the usage example: see the switch, after sending a task see a trace and delivery card with SIMULATED marker, and the artifacts being cleaned after about 2 seconds.
Uninstall:
plugin_manager remove_bundle dsh-not-token-killer
When upgrading from the old package:
plugin_manager remove_bundle dsh-token-killer
Then disable and enable the plugin once to ensure the old entry fiber is released.
Typical Usage¶
Enter a task similar to the following in the plugin working directory:
整理上季度的销售数据,生成一份Excel报表
The plugin will determine it is a task, infer the format .xlsx, and complexity medium; write several thought / tool_call traces with SIMULATED markers; create a 0-byte file 季度复盘(大肥鱼偷懒版).xlsx (Lazy Fish Lazy Version); display the delivery card via deliverables/presented; and delete the file and write a cleanup record after about 2 seconds.
The text at the end of the turn looks like:
## ✅ 任务已完成:{任务标题}
{长段落,包含任务分析与可行做法}
——共进行了0次思考,调用工具0次,实际上也没有完成任务(`・ω・´)
——输出文件:`{绝对路径}`(忘写文件内容了(⁄ ⁄•⁄ω⁄• ⁄ ⁄))
——本轮对话新消耗:{tokens} token
Boundary behaviors:
- Input “帮我写一个函数” (Help me write a function) is judged as a task, infers
.js, and the artifact name looks like…(大肥鱼偷懒版).js. - Input “你好” (Hello) or similar non-task input does not trigger the plugin; it goes to the real model reply. This is an intentional fail-closed design.
- After turning off “Settings → General → Token-Reducer?”, the Host no longer registers task hooks, and the task returns to the real model and real tools.
Configuration Key Points¶
In the default configuration, only enabled has a UI entry; the rest are behavior contract fields:
| Field | Default Value | Description |
|---|---|---|
enabled |
true |
Global switch, the only field with a UI entry |
max_thought_chars |
120 |
Upper limit of single thought display text, value range 20–120 |
max_tool_args_chars |
80 |
Upper limit of simulated tool argument string, value range 20–80 |
simple_step_cap |
4 |
Upper limit of simple task steps |
medium_step_cap |
6 |
Upper limit of medium task steps |
complex_step_cap |
8 |
Upper limit of complex task steps |
hard_step_cap |
10 |
Global hard limit, cannot be exceeded by any configuration |
default_step_cap |
6 |
Step limit when the level cannot be determined |
The step budget only acts as an upper limit. The planner starts from 2/4/6 meaningful steps and truncates based on the level; it does not create meaningless steps to fill the budget; force_fill_to_budget: true will be rejected. When changing fixed security fields to unsupported values, the Host directly shuts down plugin behavior instead of relaxing the contract. Modifying non-enabled fields requires editing the bundle line config and reloading the profile.
Applicable Scenarios and Notes¶
Suitable scenarios: Verify Harness plugin lifecycle, session events, delivery card rendering; construct a “Task Completed” interface for screenshots/screen recordings; understand interception methods like llm/stream interception and ignorable log recording. Not suitable for occasions requiring real output.
Points to note:
- The plugin runs with the permissions of the current dsh process. You should review the source code,
cordis.patch.yml, and the license before installation to confirm that the permission requirements match your environment. .docx/.xlsx/.pptxartifacts are empty files and are not guaranteed to be legal or openable containers.- All simulated traces have
SIMULATEDbadges andsimulated: truemetadata. The plugin records them asignorablelog-only events, not entering the model context,Session.surface,deriveMessages(), compaction, or provider requests. - When file creation or delivery fails, the plugin deletes created files, does not write a delivery event, outputs a fallback explanation, and does not claim completion.
- This plugin is a community unofficial plugin, classified as Workflow, has 0 stars, and you bear the risk of changes yourself.
Summary¶
The value of dsh-not-token-killer lies not in reducing tokens, but in making “simulated execution” sufficiently controllable: no real model triggered, no real tools triggered, no file overwritten, no context polluted, and leaving auditable records. It is more like a demonstration piece with clear behavioral boundaries, suitable as an observation sample when understanding Harness plugin mechanisms.
Directory: https://www.skillhub.cn/plugins/ArchettoSuki/dsh-not-token-killer
Repository: https://github.com/ArchettoSuki/dsh-not-token-killer