DSH Plugins Marketplace

DSH Plugins

Plugins

/

Tools & Capabilities

/

dsh-plugins

v

dsh-plugins

Identified

Collection of DeepSeek Harness (DSH) plugins — web-search-omp ported from oh-my-pi (23 providers, fallback chain, credential-free)

dsh-plugins

Collection of DeepSeek Harness (DSH) plugins — starting with a faithful port of oh-my-pi's web search stack.

Origin: https://github.com/can1357/oh-my-pi (packages/coding-agent/src/web/search/**)

This repository replicates oh-my-pi's search implementation so DSH gets a search provider that works out of the box (credential-free scrapers) and is not limited to DeepSeek (alternative API providers + fallback chain).

Why?

DSH's built-in @deepseek-ai/dsh-web-search-deepseek requires a DEEPSEEK_API_KEY and a single Anthropic-compatible endpoint. oh-my-pi's search:

  • supports 23 providers (perplexity, gemini, anthropic, codex, xai, zai, exa, tinyfish, jina, kagi, tavily, firecrawl, brave, kimi, parallel, synthetic, searxng, startpage, duckduckgo, ecosia, google, mojeek, public)
  • parses Google-style query directives (site:, before:/after:, inurl:, intitle:, filetype:, quoted phrases, OR groups, -exclusions)
  • applies lenient post-filtering (applyQueryConstraints) that relaxes constraints rather than returning zero results
  • has a provider fallback chain with configurable order/exclusions and automatic credential discovery
  • is credential-free by default — duckduckgo, startpage, searxng etc. work without any API key (perfect for web_search tool usability)

This repo ports that logic into a DSH ctx.web provider.

Repository layout

dsh-plugins/
├── README.md
├── .gitignore
└── plugins/
    └── web-search-omp/          # DSH plugin: web-search-oh-my-pi
        ├── package.json
        ├── tsconfig.json
        ├── README.md
        └── src/
            ├── index.ts         # DSH plugin entry (name/inject/apply/Config)
            ├── types.ts         # SearchProviderId, SearchResponse, etc.
            ├── query.ts         # StructuredQuery parsing & formatting
            ├── utils.ts         # clampNumResults, dateToAgeSeconds, etc.
            ├── provider.ts      # Lazy registry + fallback orchestration
            ├── orchestrator.ts  # Composite WebSearchProvider with chain fallback
            └── providers/
                ├── base.ts
                ├── utils.ts
                ├── brave.ts
                ├── tavily.ts
                ├── exa.ts
                ├── perplexity.ts
                ├── duckduckgo.ts
                ├── searxng.ts
                ├── jina.ts
                ├── kagi.ts
                ├── firecrawl.ts
                ├── startpage.ts
                ├── google.ts
                ├── ecosia.ts
                ├── mojeek.ts
                ├── public.ts
                ├── anthropic.ts
                ├── gemini.ts
                ├── xai.ts
                └── ...

Quick start

# Install the plugin into a DSH profile (from the dsh-plugins root)
cd plugins/web-search-omp
pnpm install
pnpm run build

# Link into a running DSH profile
dsh plugin --profile web add ./plugins/web-search-omp

See plugins/web-search-omp/README.md for full configuration (provider order, excluded providers, timeouts, API keys).

How it maps to DSH

oh-my-pi conceptDSH equivalent
AuthStorage + listAuthCredentials()ctx.get("credentials") + launchEnvironmentOf(ctx) env fallbacks
ModelRegistryoptional, only for LLM-mediated providers
settings.get("providers.*")installSettingsSection + settingsNamespace("web-search-omp")
SearchProvider.search(params)WebSearchProvider.search(request, signal) on ctx.web
resolveProviderCandidates() + fallback loopOrchestratedSearchProvider that walks the candidate list internally
formatForLLM + hasRenderableSearchContentnormalized WebSearchResult (sources[] + optional content) with truncation enforced by ctx.web

Replicating oh-my-pi

The port is behavior-preserving:

  • src/query.ts is a direct port of packages/coding-agent/src/web/search/query.ts (tokenizer, directive parsing, formatQuery, formatScraperQuery, applyQueryConstraints with relaxation)
  • src/providers/* mirror their upstream counterparts (same endpoint, same BRAVE_SEARCH_URL, TAVILY_SEARCH_URL, EXA, PERPLEXITY, etc., same clampNumResults defaults, same recency maps)
  • The fallback chain respects SEARCH_PROVIDER_ORDER derived from SEARCH_PROVIDER_OPTIONS, with public explicit-only (never in auto-chain)
  • Error classification (credit exhausted, 401/403) and hard timeout (AbortSignal.timeout + AbortSignal.any) match upstream

License

MIT — same as oh-my-pi and deepseek-harness. See each plugin's LICENSE.

Comments

Loading…

Similar plugins

oh-my-dsh

by agi-fans

A focused, keyboard-first DeepSeek coding agent built on the plugin architecture of DeepSeek Harness and inspired by the interaction quality of oh-my-pi.

Tools & CapabilitiesManifest valid

★ 33

MIT

TypeScript

Oct 2, 2026

dsh plugin --profile terminal add @agi-fans/oh-my-dsh

by killcerr

DSH plugin: ordered web-search provider fallback (omp-style webSearchOrder) over the providers already registered in ctx.web

Tools & CapabilitiesManifest valid

★ 0

MIT

JavaScript

Sep 26, 2026

dsh plugin --profile web add dsh-web-search-order

by RailgunHamster

A DeepSeek Harness plugin for selecting and routing web search providers.

Manifest valid

★ 0

JavaScript

Sep 29, 2026

dsh plugin --profile web add dsh-web-search

by zhu1090093659

DeepSeek Harness (DSH) Web Plugin Aggregation Ecosystem · Everything is a plugin, distributed via the Creative Workshop

Tools & CapabilitiesUI & ExperienceDevelopment & InfrastructureTerminal & ClientsModels & ProvidersManifest valid

★ 8.3k

↓ 203/wk

Apache-2.0

TypeScript

Oct 3, 2026

dsh plugin --profile web add dsh-web

by coderdailyone

Security-first browser automation plugin for DeepSeek Harness (dsh) — 15 tools, policy re-checked on every action, no model-controlled paths

Manifest valid

★ 0

MIT

TypeScript

Aug 15, 2026

dsh plugin --profile web add dsh-plugin-browser-use

by rogerdigital

DeepSeek Harness (dsh) plugin that adds a SearXNG-backed web_search provider to the ctx.web seam — free, self-hosted, key-less search instead of paid Exa/Perplexity APIs.

Tools & CapabilitiesManifest valid

★ 7

↓ 449/wk

MIT

TypeScript

Sep 21, 2026

dsh plugin --profile web add dsh-searxng