← Back to home@dhdbvcg

opencodeAI

No description

Stars
1
Language
TypeScript
Created
Sep 19, 2026
Updated
Sep 19, 2026

Introduction

opencodeAI

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

No API key. No registration. No extra process.

npm license node DeepSeek Harness

English | 简体中文


opencodeAI 是一个基于 opencode2dsh 的增强版本,为 DSH(DeepSeek Harness)提供原生 LlmAdapter,直接流式对接 OpenCode Zen 的匿名免费通道。

✨ 主要改进

🖼️ 视觉模型支持(mimo-v2.5-free)

  • 新增对 mimo-v2.5-free 模型的视觉(识图)能力支持
  • 支持 Base64 编码图片和 HTTP URL 图片
  • 模型自动检测输入模态,智能处理多模态内容

🎨 主题系统

  • 支持自定义主题配置
  • 深色/浅色模式自适应
  • 可通过 CSS 变量自定义颜色

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
  • CLI-identical disguise — requests carry the OpenCode CLI user agent and its session/request/project header set
  • Vision Support — mimo-v2.5-free model supports image understanding
  • Selectable thinking levels — reasoning-capable free models expose an effort picker in DSH's model selector
  • 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

Install

From opencodeAI (recommended, latest features + DSH integration):

dsh plugin --profile web add https://github.com/dhdbvcg/opencodeAI.git

From npm (published package):

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

From source (build the tarball yourself):

git clone https://github.com/dhdbvcg/opencodeAI.git
cd opencodeAI/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; outbound HTTPS to opencode.ai and models.dev.

Vision Support

The mimo-v2.5-free model now supports image input. To use vision:

  1. Select mimo-v2.5-free in the model picker
  2. Attach images (base64 or URL) in your conversation
  3. The model will process both text and image content

Supported image formats:

  • Base64 data URLs (data:image/png;base64,...)
  • HTTP/HTTPS URLs
  • Raw base64 strings (auto-wrapped as PNG)

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
OptionDefaultDescription
modeadapteradapter: native LlmAdapter streaming straight from Zen. sidecar: legacy local-agent mode.
providerIdopencode2dshProvider name shown in DSH.
refreshSeconds300Live catalog refresh interval.

Theme Customization

You can customize the plugin's appearance by modifying the theme settings in DSH. The plugin uses CSS variables for consistent theming:

:root {
  --primary-color: #007bff;
  --background-color: #ffffff;
  --text-color: #333333;
}

How it works

DSH session
   │  harness chunks (block-start / text-delta / usage / finish …)
   ▼
ZenAdapter (registered LlmAdapter)
   │  pi-ai openai-completions stream (chat models)
   │  pi-ai openai-responses stream (vision models)
   ▼
https://opencode.ai/zen/v1        ← Authorization: Bearer public
   with CLI-identical headers:
     user-agent: opencode/…
     x-opencode-client, x-opencode-session, x-session-affinity,
     X-Session-Id, x-opencode-request, x-opencode-project
  • Session correlation — session/project ids are SHA-256 derived from the conversation's first user turn
  • Catalog fallback chain — S1: live GET /v1/models; S2: models.dev pricing metadata decides "free"; S3: a compile-time verified static list
  • Vision processing — Images are extracted from messages and sent as multimodal content for supported models

Health & troubleshooting

The plugin writes a health snapshot after every refresh round:

~/.opencode2dsh/adapter-status.json
SymptomLikely cause & fix
Only 3 modelsStartup fetch raced your network; retries land within ~1 min.
lastError: "fetch failed" persistingOutbound HTTPS to opencode.ai blocked; check proxy/VPN rules.
Rate-limit errors in chatThe anonymous lane is quota-per-IP; switch network node or wait.

Development

git clone https://github.com/dhdbvcg/opencodeAI.git
cd opencodeAI/packages/plugin
pnpm install
pnpm typecheck && pnpm test   # unit tests
pnpm build                    # bundle to lib/

Acknowledgments

License

MIT © dhdbvcg