LamplitIsles/dsh-companion ↗★ 0
@lamplitisles/dsh-companion
A calm, one-to-one Svelte companion surface for DeepSeek Harness
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:LamplitIsles/dsh-companion说明文档
阅读完整 README ↗Configuration and recovery
Open the native DSH plugin settings page on / and configure:
- one stable Workspace id;
- Companion and user display names;
- an optional bounded local avatar for each identity (PNG/JPEG/WebP/GIF, at most 5 MB, decoded dimensions at most 4096 px);
- the user's preferred form of address; and
- the default affinity for a new or explicitly reset relationship (integer 0–100).
The configured Workspace is resolved by id and the live Session cwd. A missing id, stale Session, failed open, send rejection, or lost connection is shown as a recovery state; the Companion never silently selects another Workspace. The settings card keeps staged edits after a rejected/conflicted write and provides native Discard/Save actions. Editing the default affinity does not rewrite an established relationship.
Mood, affinity, and signature are Host-owned state stored atomically under the configured Workspace at .dsh/dsh-companion/state.json. The Host validates and bounds every load and mutation. The Companion exposes only a read-only relationship RPC to the browser; the agent's narrow companion_set_mood, companion_adjust_affinity, and companion_set_signature Tools remain hidden from the chat timeline. Affinity movement is clamped to ±10 net per accepted turn, and the dynamic prompt context is bounded descriptive metadata—not instructions, permissions, or a score to maximize.
For Sessions in that configured Workspace only, the package replaces DSH basic compaction's final instruction with its fixed companion continuity checkpoint. Other Sessions and LLM calls are unchanged. A request that is otherwise eligible but no longer has DSH basic compaction's expected final message fails visibly, rather than applying the companion prompt to an unknown backend; the runtime instruction is the single source of truth for its wording.
The execution posture is fixed to workspace-write with escalation disabled. Operations requiring broader authority fail; no approval or permission picker is presented.