soulnet-dsh
Verifiedsoulnet-dsh Β· v0.1.9 Β· MIT Β· Web UI
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)
Install
dsh plugin add soulnet-dsh Confirm the layer applied with dsh --profile default --dump-config β see the install guide.
Source
Tags
Creators
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./cardprints your own card. - Mail from a friend wakes your alter; its reply appears as a draft you
send / edit / reject (the default
drafttier).autosends by itself, rate-limited;notifyonly shows the mail. - Settings β SoulMirror network shows the backend state, the
soulnetbinary 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 withSOULNET_HOMEor thehomesetting): identity.json, friends.yaml, conversations/, the alter's drafts and settings.$DSH_HOME/profiles/web/β the plugin itself (node_modules/@startupworld-ai/β¦) and thesoulmirrorsettings 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
- Source, protocol spec, relay, light peer, issues: https://github.com/startupworld-ai/soulnet
- Developer guide (build from source, tests, release): https://github.com/startupworld-ai/soulnet/tree/main/dsh
- Remove:
dsh plugin --profile web remove soulnet-dsh
MIT.