DSH Hub

FishBottle7/opencode2dsh

opencode2dsh

BundleWorkflow89 GitHub stars· updated 2026-09-19

opencode2dsh is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add @opencode2dsh/dsh-plugin

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

opencode2dsh DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/opencode2dsh.svg)](https://dshhub.dev/plugins/opencode2dsh)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from FishBottle7/opencode2dsh, cleaned of badges and images.

opencode2dsh

Free OpenCode Zen models, natively inside DSH (DeepSeek Harness).

No API key. No registration. No extra process.

English | 简体中文


opencode2dsh registers a native DSH LlmAdapter that streams directly from OpenCode Zen's anonymous free lane — the same models OpenCode's own CLI uses without an account, served to your DSH model picker as a regular provider called opencode2dsh.

Requests leave your machine looking exactly like traffic from the OpenCode CLI (same user agent, same correlation headers), and the model catalog stays fresh through a three-tier fallback chain. There is nothing to log into and nothing to host.

Highlights

  • Zero credential, zero setup — the anonymous lane needs no key; install, restart, chat
  • Native adapter, no sidecar — one npm package, no child process, no binary, no local port (the legacy Go sidecar is not part of the published package; see legacy/)
  • CLI-identical disguise — requests carry the OpenCode CLI user agent and its session/request/project header set, derived per conversation
  • Selectable thinking levels — reasoning-capable free models expose an effort picker in DSH's model selector (declared ladders where the model metadata provides them, Off/Minimal/Low/Medium/High otherwise); Off sends reasoning_effort: "none" upstream to actually stop thinking, and no selection keeps the provider default
  • Live catalog with a fallback chain — live upstream list ∩ free-by-metadata, falling back to offline cache and a verified static list
  • Self-healing — fast startup retries, periodic refresh, and a written health snapshot for diagnostics
  • Proper error surfaces — upstream failures (rate limit, auth, timeout, transport) arrive in DSH as classified finish reasons, and retries stay owned by DSH

Install

From the plugin market (recommended, once this repo is listed there): in DSH open Settings → Plugin Market, search opencode2dsh, one-click install.

From npm:

dsh plugin --profile web add @opencode2dsh/dsh-plugin

From source (build the tarball yourself):

git clone https://github.com/FishBottle7/opencode2dsh.git
cd opencode2dsh/packages/plugin
pnpm install && pnpm pack
dsh plugin --profile web add ./opencode2dsh-dsh-plugin-<version>.tgz

Verify: restart dsh web, open the model picker, and pick a model from the opencode2dsh group.

Requires DSH (DeepSeek Harness) with a web profile; Node.js ≥ 20 (already present if DSH runs); outbound HTTPS to opencode.ai and models.dev.

Configuration

Defaults work out of the box. Override via the profile's cordis.patch.yml:

- id: opencode2dsh
  name: '@opencode2dsh/dsh-plugin'
  config:
    mode: adapter        # adapter (default) | sidecar
    providerId: opencode2dsh
    refreshSeconds: 300  # catalog refresh cadence

…

Related plugins