DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Opencode Freeaccess — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
O

dsh-opencode-freeaccess

Opencode Freeaccess

为 opencode 提供 dsh 会话 ID,无需配置。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:mubaid/dsh-opencode-freeaccess#7411d97ab2b4ef526a06ad352b52834e9f7e11a9
README兼容性版本

兼容性与来源证明

Opencode Freeaccess 以 dsh-opencode-freeaccess 发布,当前版本为 0.2.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/10/16

版本

0.2.1stable
2026/10/16
0.2.0stable
2026/10/2

相关插件

正在加载相关插件…

最新版
0.2.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/16
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Experimental Inspector@deepseek-ai/dsh-experimental-inspector用于 Host 调试和 Client Runtime 检查的实验性跨 realm CDP hub

README

dsh-opencode-freeaccess

Use OpenCode's free models in DeepSeek Harness. No proxy, no paid key, no config.

English | 简体中文


The problem

You point a DeepSeek Harness provider at opencode.ai, pick one of their free models, and send a message. It fails:

403 FreeTierError: OpenCode's free tier can only be used from within OpenCode

Nothing is wrong with your key, your model id, or your harness. OpenCode serves its free tier only to requests that carry a session id, and dsh does not put one on the wire.

Your realistic options are all worse than the fix:

  • Run the whole job from inside the OpenCode CLI, losing dsh.
  • Pay for a key, losing the free tier.
  • Route everything through a proxy or aggregator, adding a hop you now maintain.

The solution

One plugin puts the session id on the request. That is the whole job.

dsh plugin --profile web add github:mubaid/dsh-opencode-freeaccess

Restart the profile. OpenCode's free models now work in dsh.

The wow moment

Before:

opencode2 / space-bunny-free
> 403 FreeTierError: OpenCode's free tier can only be used from within OpenCode

After the install line above, same provider, same model, same key:

opencode2 / space-bunny-free
> streaming normally

No new provider block. No gateway. No per-request anything.

Why this project

It targets the real gap, not a symptom. dsh already knows the session id. The adapter simply never forwards it. This closes that gap at the only layer that can reach the wire, so you inherit the behaviour instead of rebuilding it.

One conversation, one stable id. The id is derived from the conversation's birth time and its uuid, so it survives a restart and is identical afterwards. Conversations running at the same time never share an id.

It cannot change your output. Only request headers are added. Body, URL, method, credentials and response pass through untouched, and requests to any other host are forwarded with their exact original arguments. There is a test that diffs a matched request against an untouched control and asserts the headers are the only difference.

It works with whatever route you already have. A direct opencode.ai provider, or your own gateway or proxy. Point baseURLs at it.

Key features

  • Free tier unlocked. OpenCode's free models become usable from dsh.
  • Stable per-conversation identity. Upstream gets a consistent id instead of a fresh one per request, which is what prompt-cache affinity needs.
  • Concurrent-session safe. Session scoping uses async context, so parallel conversations do not bleed into each other.
  • Subagents included. Each subagent mints its own id from its own conversation, so child sessions work too.
  • Headers only. Nothing about the prompt or the reply changes.
  • Scoped by default. Only matching hosts are touched.
  • Observable. verbose: true logs every id it sends.
  • No build step. Plain ESM, installs from GitHub with no extra permission.

Quick start

dsh plugin --profile web add github:mubaid/dsh-opencode-freeaccess
systemctl restart dsh-web

That is the whole setup. Defaults match opencode.ai and the standard routes.

To see it working:

journalctl -u dsh-web -f | grep opencode-freeaccess

Real-world examples

A long agentic session. The conversation id stays constant for the whole run, so upstream can keep one prompt cache warm instead of rebuilding it.

Parallel subagents. Fan out ten subagents. Each carries its own id and none contaminates the others.

Self-hosted only. If you would rather not hand traffic to an aggregator, this keeps the path from dsh to OpenCode direct, with the free tier intact.

Migrating off a proxy. Drop the proxy hop and keep the models.

Technical details

The header set, in full:

HeaderPurpose
x-opencode-sessionThe session header the OpenCode gateway keys on
x-session-affinityAffinity family, for cache and routing
x-opencode-session-idCompanion session header the official client sends
x-session-idCompanion affinity header
x-opencode-client: cliClient fingerprint
x-opencode-project: globalProject fingerprint the official client sends
User-Agent: opencode/latest/<version>/cliClient fingerprint

The id format is OpenCode's own: ses_, then 12 hex characters derived from the conversation's creation time, then 14 characters derived from the conversation uuid. One dsh conversation maps to exactly one id, for its whole life.

Everything is configurable from the profile's patch layer under the id opencode-freeaccess: providers, hosts, baseURLs, headers, extraHeaders, userAgent, sessionIdEnv, verbose, seedSessionId, disableFetchInjection. Defaults are documented in docs/design.md.

Implementation notes, the test suite, and an explicit list of what has not been verified are in VERIFICATION.md.

Comparison

OpenCode CLIProxy or aggregatorThis plugin
HarnessOpenCode onlyAnyDeepSeek Harness
Free tierYesDepends on the providerYes
Extra hopNoYesNo
Infrastructure to maintainNoneSomeNone
Subagents and parallel sessionsYesYesYes

Project status

Early, and honest about it. A small plugin with a narrow, well-defined job.

  • Verified against DeepSeek Harness 0.2.0-rc.2 and 0.2.1-alpha.4 (engines.dsh: ^0.2.0-rc.2).
  • Works over fetch-based protocols: openai-completions, openai-responses, anthropic-messages.
  • Websocket transports do not use fetch and are not supported.
  • The OpenCode free tier expects the read tool to be present in the request (the official client sends read + shell). dsh ships a tool with exactly that name, so this holds by default, but disabling it will make the gateway reject the request.
  • Individual free-tier models occasionally fail at the provider for reasons unrelated to credentials. That is upstream behaviour, not a plugin fault.

Contributing

Issues and pull requests are welcome. If you are adding behaviour, please add a test with it and keep the headers-only guarantee intact.

License

MIT. See LICENSE.