Plugin directory / Developer / dsh-plugins
dsh-plugins
Unverified ephemeral-ai-lab
What it does
Make Deepseek Harness Great
Unverified — not yet verified
Make Deepseek Harness Great Not yet verified — install and test it yourself.
“Unverified” means our automated CI has not yet installed this plugin. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.
README
🧩 Mayfly / DSH Plugin Marketplace
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.
Two things live here:
plugins/— the source of Ephemeral AI Lab's official plugins.registry/— the marketplace: one JSON manifest per listing. CI
aggregates them intodist/index.json, the document
Mayfly's/plugincommand 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 withactivation: profile-patch additionally need their rows in the profile'scordis.patch.yml — the /plugin command does this for you; see
docs/market.md for the manual path.
📦 Current listings
| id | source | surfaces | what it adds |
|---|---|---|---|
codex-terminal |
official | server | Codex-style persistent shell: exec_command / write_stdin |
loop |
official | server · web | Recurring prompts & alarms: loop_* tools, /loop, Web panel |
mock |
official | server · web | Deterministic mock model turns: /mock run / replay (unstable) |
sessions |
official | server | Multi-session orchestration: session_status/create/send tools |
coding-plan |
official | server | Reuse codex login / grok login subscriptions as providers |
preset-builder |
official | web | Preset details page in dsh Web Settings |
workbench-ui |
official | web | The Web workbench frame other panels dock into |
sidechat |
official | server · web | Side-chat panel on the Web workbench (needs workbench-ui) |
herdr-agent-state |
official | server | Report pane agent state, session ref, and title/model/ctx metadata to Herdr's pane socket |
terminal |
dsh | server | PTY terminal: terminal_open/send/read/signal/close/list |
lsp |
dsh | server | Read-only lsp navigation tool |
mcp |
dsh | server | MCP client: mcp__server__tool external tools |
acp |
dsh | server | Agent Client Protocol server |
code-runtime-ts |
dsh | server | run_code TypeScript worker-thread runtime |
code-runtime-py |
dsh | server | run_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:
- Read
registry/community/README.md. - Copy
registry/submission-template.json
toregistry/community/<slug>.jsonand open a PR. - 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
- Marketplace & manifest spec
- Plugin docs — each plugin directory has its own README
- Architecture & how-to guides
- Mayfly · Mayfly website
🤝 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.
Install
Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:
dsh plugin add dshbase-catalog Then say "install dsh-plugins for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.
This plugin is GitHub source (not published to npm) — install it straight from the repo:
Web profile:
dsh plugin --profile web add github:ephemeral-ai-lab/dsh-plugins Headless (CLI) profile:
dsh plugin --profile headless add github:ephemeral-ai-lab/dsh-plugins Test report
Not yet L3-verified — see failure note below if we already ran it.
Note: No failure note yet — queued or not yet run. Browse all pending failures →
When to use it
Extend the agent's coding surface — give it a new tool, workflow, or integration so it handles a dev task it couldn't before.
Who it's for
Developers who want dsh to behave like a teammate on real codebases — editing, running, and verifying changes rather than just answering.
For developers — extending it
The tool/command surface is the seam: expose more of the SDK, add smarter context wiring, or tighten the loop between code changes and verification.