Skip to main content

DSH Marketplace for Python — DeepSeek Harness plugins, importable

PyPI version Python versions Tests Zero dependencies MIT LINUX DO

English · 简体中文


Find and install DeepSeek Harness (DSH) plugins from Python.

pip install dshmarketplace
import dshmarketplace as dshm

for plugin in dshm.search("memory", limit=5):
    print(plugin.full_name, "—", plugin.summary)

Zero dependencies. Typed. Works as a library, a CLI, or a pair of agent tools.

Why this exists

DeepSeek Harness is DeepSeek's open agent harness, where every capability is a plugin. There are over a thousand of them, and the ecosystem is weeks old — which means a plugin name recalled from a model's training data is more likely to be wrong than right, and a wrong name is either a failed install or somebody else's package.

This package is how a Python agent looks one up instead of guessing.

It reads the same catalogue as dshmarketplace.dev, the dshmarketplace-cli npm package and the in-DSH plugin, so a listing cannot say one thing here and something else in a browser.

Library

from dshmarketplace import Client

client = Client()

results = client.search("vision", category="vision", limit=5)
print(results.total)

plugin = client.get("Anionex/dsh-vision-toolkit")
plugin.summary                 # English
plugin.summary_zh              # Chinese, hand-written — not a translation
plugin.summary_in("zh")        # whichever the locale asks for
plugin.stars, plugin.license, plugin.risk_flags

plan = client.resolve("Anionex/dsh-vision-toolkit")
plan.command                   # 'dsh plugin --profile web add dsh-vision-toolkit'
plan.argv                      # the list that would actually be executed

client.install("Anionex/dsh-vision-toolkit", dry_run=True)

Async, for agents that cannot block the event loop:

from dshmarketplace import AsyncClient

plugins = await AsyncClient().search("memory")

The transport is still urllib, moved off the loop with asyncio.to_thread. That is deliberate and stated plainly: it does not block, and it does not pretend to be a native async client. Pulling in httpx to make it one would cost every user a dependency conflict for one request per turn.

CLI

dshm find memory
dshm find vision --limit 5 --category vision
dshm info Anionex/dsh-vision-toolkit
dshm add NanmiCoder/dsh-agent-teams --dry-run
Option
--json Machine-readable output, stable schema (all commands)
--limit <n> Results to show (find, default 10)
--category <id> Filter by category (find)
--profile <name> DSH profile to install into (add, default web)
--source github Force the GitHub source over npm (add)
--dry-run Resolve without running the install (add)

Agent tools

Two tools in the JSON-Schema shape OpenAI, Anthropic and most frameworks accept, plus a dispatcher — wiring is two lines.

from dshmarketplace.tools import TOOLS, dispatch

response = anthropic.messages.create(model="claude-opus-4-6", tools=TOOLS, ...)

for block in response.content:
    if block.type == "tool_use":
        result = dispatch(block.name, block.input)

resolve_dsh_install never executes anything. It returns the exact command, the source repository and the detected risk flags, so the decision to run stays with the caller.

Two things about installing DSH plugins

Neither is this package's doing, and both cost real time to find.

--profile is mandatory. dsh plugin forwards to pnpm inside a profile directory, so dsh plugin add x exits with required option '--profile <name>' not specified and installs nothing. Every command produced here carries it.

github:owner/repo#subpath cannot work — pnpm reads everything after # as a git ref. Monorepo plugins with no published npm package therefore have no one-line install. plugin.install is None for them and installable is False; you will never be handed a command that fails.

A GitHub-sourced install also needs pnpm's allowBuilds allowlist before the package's build script will run. That, not download size, is why npm is offered first.

Safety

Plugins are third-party code running with your agent's permissions. Listing in the catalogue is not a security review.

An install command is never assembled from free text and never reaches a shell. The catalogue supplies it already built; plan_from_command accepts only a bare npm specifier or github:owner/repo, rejects anything containing .., and argv is passed as a list with shell=False. If the catalogue were ever compromised, the blast radius stops there — tests/test_install.py exists to keep it that way.

risk_flags reports what was detected automatically: an install script, a terminal surface, a credential requirement. An empty list proves nothing. The source repository is always available; read it first.

Configuration

Variable
DSHM_API Point at a mirror, a staging deployment or a local catalogue
NO_COLOR Plain CLI output

Development

pip install -e ".[dev]"
pytest
pytest -m live        # opt-in, hits the real catalogue

Related

Contact

Acknowledgements

  • LINUX DO — where the DSH ecosystem is actually discussed, and where this project is published and takes its feedback.
  • awesome-dsh-plugin (CC0-1.0) — the seed the catalogue grew from.

License

MIT. Independent project, not affiliated with DeepSeek. DeepSeek and DeepSeek Harness are marks of their respective owners, used here only to describe what these plugins are for.

Metadata

Release files for dshmarketplace 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dshmarketplace 0.1.0
File Size Uploaded
dshmarketplace-0.1.0.tar.gz 23.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dshmarketplace 0.1.0
File Interpreter ABI Platform
dshmarketplace-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 43.5 kB

Release files / dshmarketplace-0.1.0.tar.gz

Download URL dshmarketplace-0.1.0.tar.gz
Size 23.9 kB
Tags Source
SHA-256 checksum
How to use checksums
565401b840e19ba856871c388f3d570a19144af4f2edf01e1a8912a4a47e151f
BLAKE2b-256 checksum
How to use checksums
d769584fd65ce93369958feab427d8f19335febe61002ae3f40225024172a208
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.

Transparency log

Release files / dshmarketplace-0.1.0-py3-none-any.whl

Download URL dshmarketplace-0.1.0-py3-none-any.whl
Size 19.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5fd60bf3487f975ad10fc701c11b1852e42c533f7a7eb602b5e753591738bdc2
BLAKE2b-256 checksum
How to use checksums
2dc6345c847ba061f45f1b901862e741e5c000c86f36988250b0bad485a43534
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page