Ports jcode's auto-poke so an idle agent keeps working while its session still has incomplete todos.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:JessenReinhart/dsh-poke-todo
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
A DeepSeek Harness Cordis plugin that ports the auto-poke behavior from jcode.
When an agent is about to finish a turn while its session still has incomplete todos, the Host half injects a synthetic continuation:
You have N incomplete todo(s). Continue working, or update the todo tool.
The plugin listens to the DSH agent/turn-stopping serial event, queries the session's current todo projection from sessionProjections, and calls agent.steer() to continue the turn instead of idling.
Install
The plugin declares a dsh.bundle manifest, so a published build is installed with the DSH CLI:
dsh plugin --profile <name> add dsh-poke-todo
For a local checkout, use the repo installer (runs pnpm add link: and registers the bundle):
node scripts/install.mjs --profile desktop --from local
Layout
lib/index.js— static ES module exporting the Cordis contract (name,inject,apply).plugin/host.js— dynamic host function body forcordis_define.plugin/client.js— client-side RPC bridge and styles for dynamic installation.cordis.patch.yml— bundle layer patch for permanent profile compositions.scripts/install.mjs— profile installer.scripts/define-payload.mjs— emits the dynamiccordis_defineJSON payload.test/— unit tests for the host and static modules.
Safety & semantics
- Up to
MAX_CONSECUTIVE_POKES = 3consecutive pokes per session before the circuit breaker trips. - The budget resets when a genuine human message is claimed (
agent/inbox/claimed). completed,cancelled, andcanceledare treated as finished.- Aborted turns (
signal.aborted) are ignored.
Publish
npm version patch && npm publish
The bundle manifest in package.json (dsh.bundle.patch) and the root cordis.patch.yml make the published package installable via dsh plugin add.
Links
More in this category
loopx-project/loopx#dsh-loopx-plugin★ 6344
LoopX, a provider-neutral, local-first state kernel and control plane for long-horizon agents: keeps Goal, Todo, gate, evidence, quota, recovery, and handoff state above DeepSeek Harness, while the plugin bootstraps the CLI and skills, admits bounded same-session continuation, and adds a loopback GoalBar for the exact bound loop.
Q00/ouroboros#integrations/dsh-plugin★ 6235
Config-only bundle that mounts Ouroboros through the DSH MCP client, exposing 36 interview, Seed, execution, evaluation, and evolution workflow tools in DSH.
chuspeeism/dashi-taskboard#deepseek-harness★ 3357
Embeds the active installed Codex Taskboard runtime in the DeepSeek Harness sidebar, using its launcher runtime descriptor instead of a fixed port.
NanmiCoder/dsh-agent-teams★ 2194
AgentTeams multi-agent teams.
EthanYoQ/AI-Novel-Writer#dsh-ai-novel-writer★ 1578
Installs a dedicated AI novel-writing preset and workbench: revisioned local project assets, a compact side drawer, and native approval-gated single-file changes.
tong-io/tongflow#dsh-tongflow★ 1050
TongFlow film-crew studio for image, voice, music and video production: the agent writes per-asset TongFlow workflow files (.tongflow.json) that run through TongFlow plugins, with an embedded workflow canvas, a shot/character/take project layout and a manga-drama template; sessions starting with @tongflow open the Studio view.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.