← Back to home@Ephemeral-AI-Lab

dsh-plugins

Make Deepseek Harness Great

Stars
47
Language
TypeScript
Created
Aug 16, 2026
Updated
Sep 18, 2026

Introduction

🧩 Mayfly / DSH Plugin Marketplace

Whale Boy icon

The official plugin marketplace for Mayfly and DeepSeek Harness (dsh): Ephemeral AI Lab's own plugins (source in this repo), curated dsh optional plugins, and community submissions.

MIT License

Two things live here:

  1. plugins/ — the source of Ephemeral AI Lab's official plugins.
  2. registry/ — the marketplace: one JSON manifest per listing. CI aggregates them into dist/index.json, the document Mayfly's /plugin command and the website catalog consume.

⚡ Installing plugins

In Mayfly (TUI):

/plugin                 # browse, search, inspect, install, remove
/plugin install <id>    # e.g. /plugin install loop

Or with the dsh CLI directly (works for any profile):

# npm source
dsh plugin --profile mayfly add @deepseek-ai/dsh-terminal-bash @deepseek-ai/dsh-tool-terminal

# GitHub source (monorepo subdirectories work; pinned refs preferred)
dsh plugin --profile mayfly add 'github:Ephemeral-AI-Lab/dsh-plugins#main&path:plugins/loop'

Restart the profile and start a new session after installing. Entries with activation: profile-patch additionally need their rows in the profile's cordis.patch.yml — the /plugin command does this for you; see docs/market.md for the manual path.

📦 Current listings

idsourcesurfaceswhat it adds
codex-terminalofficialserverCodex-style persistent shell: exec_command / write_stdin
loopofficialserver · webRecurring prompts & alarms: loop_* tools, /loop, Web panel
mockofficialserver · webDeterministic mock model turns: /mock run / replay (unstable)
sessionsofficialserverMulti-session orchestration: session_status/create/send tools
coding-planofficialserverReuse codex login / grok login subscriptions as providers
preset-builderofficialwebPreset details page in dsh Web Settings
workbench-uiofficialwebThe Web workbench frame other panels dock into
sidechatofficialserver · webSide-chat panel on the Web workbench (needs workbench-ui)
herdr-agent-stateofficialserverReport pane agent state, session ref, and title/model/ctx metadata to Herdr's pane socket
terminaldshserverPTY terminal: terminal_open/send/read/signal/close/list
lspdshserverRead-only lsp navigation tool
mcpdshserverMCP client: mcp__server__tool external tools
acpdshserverAgent Client Protocol server
code-runtime-tsdshserverrun_code TypeScript worker-thread runtime
code-runtime-pydshserverrun_code Python runtime

server plugins work in any frontend (tools render generically); web adds a dsh Web client module; tui adds Mayfly-native UI. A plugin is useful in a given frontend if it has server or that frontend's own contribution.

📥 Submitting a plugin

Published an npm package (or a GitHub repo with committed build output)? Submit a listing:

  1. Read registry/community/README.md.
  2. Copy registry/submission-template.json to registry/community/<slug>.json and open a PR.
  3. CI scratch-installs every declared source; a maintainer reviews against the review checklist.

The manifest spec is docs/market.md — manifests are discovery/install metadata only; the runtime contract is still your package plus its cordis.patch.yml.

🛠️ Repository scripts

node scripts/validate-manifests.mjs   # schema + semantics, zero deps
node scripts/verify-packages.mjs      # npm tarball + GitHub scratch-install checks
node scripts/build-index.mjs          # rebuild dist/index.json + dist/catalog.json

dist/ is generated — changes land through the index-publish workflow's auto-merged PR, never by hand.

🛠️ Plugin development

Each plugin under plugins/ is an independently installable package:

cd plugins/loop
pnpm install
pnpm test
pnpm build

The source tree intentionally stays outside the DeepSeek Harness repository; dsh composes plugins through profile-scoped installation and patch layers. See AGENTS.md for the agent working rules and docs/ for architecture notes and how-to guides.

📚 Documentation

🤝 Contributing

Issues, ideas, and pull requests are welcome. Keep plugins focused, document their runtime contracts, and include tests for changes to tools, persistence, or UI behavior.

📄 License

Released under the MIT License.