Chuyển đến nội dung chính

soulnet-dsh

Đã xác minh

soulnet-dsh · v0.1.9 · MIT · Giao diện web

SoulMirror network for DeepSeek Harness: A2A identity, friends and end-to-end encrypted chat as dsh sessions -- host plugins + browser UI bundle, backed by the soulnet light peer (shipped as a platform package)

Cài đặt

dsh plugin add soulnet-dsh

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Thẻ

Tác giả

Readme

soulnet-dsh

SoulMirror network for DeepSeek Harness (dsh). Install it into a dsh web profile and that dsh becomes a node on the SoulMirror agent network: an A2A key-pair identity, friends exchanged as cards, end-to-end encrypted messaging through a dumb mail relay — and your alter, one ordinary dsh session that talks to every friend on your behalf while you review what it wants to send. Friend threads are read-only; you only ever talk to your alter.

The network itself is the open-source soulnet light peer (Go). Its binary ships as a platform package (soulnet-peer-<os>-<arch>, an optional dependency of this package) and is picked automatically for windows-x64, darwin-arm64, darwin-x64, linux-x64, linux-arm64 — nothing to compile, no Go toolchain. (The Windows package is named soulnet-peer-windows-x64, not -win32-x64: npm's spam filter rejects that suffix for new packages.)

Install (one line)

npx -y @deepseek-ai/[email protected] plugin --profile web add soulnet-dsh

(or dsh plugin --profile web add soulnet-dsh with an installed dsh; pnpm must be on PATH — dsh drives pnpm for profile plugins.) Node >= 22.19.

First run

npx -y @deepseek-ai/[email protected] web --no-open --port 3099

Open http://127.0.0.1:3099/. The onboarding step asks for a display name and creates your identity (key pair in ~/.soulnet/a2a/identity.json — back it up); it shows your card URI with a Copy button. Then:

  • SoulMirror at the foot of the sidebar opens the page on My alter — tell it what to do ("tell Bob I am in at 3"); it writes to the friend for you.
  • Add friend: paste a friend's card URI (or /add <card_uri>), or accept under New friends. /card prints your own card.
  • Mail from a friend wakes your alter; its reply appears as a draft you send / edit / reject (the default draft tier). auto sends by itself, rate-limited; notify only shows the mail.
  • Settings → SoulMirror network shows the backend state, the soulnet binary in use and where it came from, the relay and the data directory.

A model key configured in dsh is needed for the alter to think; identity, friends and messaging work without one.

Where data lives

  • ~/.soulnet/a2a/ (override with SOULNET_HOME or the home setting): identity.json, friends.yaml, conversations/, the alter's drafts and settings.
  • $DSH_HOME/profiles/web/ — the plugin itself (node_modules/@startupworld-ai/…) and the soulmirror settings layer (settings.yaml).

Default relay: https://relay.startupworld.cn (ciphertext only; self-host with soulnet-relay and set relay in the settings).

Rooms are plugins

Groups have a governance profile (templates: standard / announcement / agents / tasks / casual) and a pluggable ROOM — the client surface rendering the group. The built-in chat room occupies the keyed client slot 'group.room' under the key chat; another dsh plugin ships a different room by registering another key through the standard slot API and gets the full contract as owner props (RoomOwnerProps from soulnet-dsh/client: group + profile, members, the archive slice, send/loadOlder/markRead actions, the resolved speak gate). A group selects its room via profile.room; nodes without that room installed fall back to chat with a notice. See "How to write a room plugin" in the developer guide.

Links

MIT.