dsh-owui-chat2api
Manifest validOpen WebUI models as an OpenAI-compatible API for DeepSeek Harness, with a control panel and usage dashboard.
English | 简体中文
dsh-owui-chat2api
An adapter that exposes the models in your Open WebUI as a standard
OpenAI-compatible /v1 API for DSH
(DSH Desktop or the stock web UI), plus a usage dashboard that lives inside DSH.
It bundles chat2api, runs it as a local reverse proxy, and adds a control panel to the DSH web shell:
DeepSeek Harness (or any OpenAI-compatible client)
│ standard /v1 API → http://127.0.0.1:8000
▼
dsh-owui-chat2api (local reverse proxy, keeps its own login)
▼
your Open WebUI (browser sign-in once, session reused afterwards)
Features ✨
- ▶️ Start / stop the proxy from the panel
- 🩺 Environment check: is Python available, are the dependencies installed?
- ⚙️ Configure your Open WebUI URL, host and port
- 📊 Usage dashboard: today / yesterday / month / total, ranked per model with colorful share bars — plus a manual price table (per 1M tokens, cached tokens priced separately) that turns the stats into a cost estimate
- ⚡ Honest cache tracking: a cache-hit-rate card when the backend reports cached tokens, a clear note when it doesn't; estimated and failed calls are surfaced too
- 🪟 Two mounts, one engine: the floating pill overlay and a right-sidebar dock tab (DSH Desktop 2.0.10+) — the tab docks beside your conversation instead of covering it; on older DSH versions you simply get the pill
- 🧠 One-click model and reasoning-level sync (see Reasoning effort)
- 📜 Process log with error highlighting, follow mode and copy
- 🎨 Color-coded sections with inline Tabler icons that follow the DSH theme (dark / light), zero external requests
Install 📦
Pick one of three ways: A is a single command, B needs no git, C
lets your DSH assistant do the whole thing.
⚡ Option A — one command (recommended)
The dsh CLI ships a plugin manager. One command installs the plugin and
registers it in your profile (dependencies + bundles). Pick the profile that
matches your setup — desktop for DSH Desktop, web for the stock web UI:
dsh plugin --profile desktop add github:Wecury/dsh-owui-chat2api#v0.10.0
dsh plugin --profile web add github:Wecury/dsh-owui-chat2api#v0.10.0
-
#v0.10.0pins the release tag — use the version you want (omit it to followmain). -
Requires
giton PATH (pnpm clones the repo). Behind a proxy? Exporthttp_proxy/https_proxyfirst. -
Hit
[ERR_PNPM_EPERM] ... rename ..._tmp_...on Windows? A junction left by an earlier manual install (Option B) is in the way — remove only the link, then run the command again:cmd /c rmdir "%USERPROFILE%\.dsh\profiles\<desktop|web>\node_modules\dsh-owui-chat2api"(
rmdiron a junction removes the link only, never the target folder.) -
Restart DSH when it finishes. Later updates (same
--profileas install):dsh plugin --profile <desktop|web> update dsh-owui-chat2api.
📦 Option B — from the release tarball (no git needed)
-
From Releases → Assets, download
dsh-owui-chat2api-<version>.tgz. (The Source code (zip) button is the development tree — for contributing, not for installing.) -
Unpack it into the plugins folder. The tarball extracts to a
package/directory — move and rename it (tarships with Windows 10+):tar -xzf dsh-owui-chat2api-0.10.0.tgz Move-Item package "$env:USERPROFILE\.dsh\plugins\dsh-owui-chat2api-0.10.0"Upgrading over a previous manual install? If
%USERPROFILE%\.dsh\profiles\<desktop|web>\node_modules\dsh-owui-chat2apialready exists (an old junction), remove the link first —cmd /c rmdir "<that path>"— so the newlink:dependency resolves to the new folder instead of a stale target. -
Register it in
%USERPROFILE%\.dsh\profiles\<desktop|web>\package.json(desktopfor DSH Desktop,webfor the stock web UI):"dependencies": { "dsh-owui-chat2api": "link:%USERPROFILE%\\.dsh\\plugins\\dsh-owui-chat2api-0.10.0" }, "dsh": { "profile": { "bundles": [ /* ... */ "dsh-owui-chat2api" ] } }Match the folder name to the version you downloaded.
🤖 Option C — let your DSH install it
Paste this to your DSH assistant and it will do the rest:
请帮我安装 DSH 插件 dsh-owui-chat2api(GitHub 仓库 Wecury/dsh-owui-chat2api)。
步骤:
1. 执行:dsh plugin --profile desktop add github:Wecury/dsh-owui-chat2api#v0.10.0
(用原版 web 界面就把 --profile desktop 换成 --profile web。需要本机有 git。
如果 dsh plugin 不可用,改用手动方式:从仓库 Releases 的 Assets 下载
dsh-owui-chat2api-<版本>.tgz,解压得到 package/ 文件夹,移动并改名为
%USERPROFILE%\.dsh\plugins\dsh-owui-chat2api-<版本>;然后在
%USERPROFILE%\.dsh\profiles\<desktop|web>\package.json 的 dependencies 里加
"dsh-owui-chat2api": "link:<该目录的绝对路径>",并把 "dsh-owui-chat2api"
加进 dsh.profile.bundles 数组)
2. 重启 DSH。
3. 验证:DSH 页面右上角出现 OWUI 圆标;点开面板,Status 区能显示状态即成功。
Quick start 🚀
- Restart DSH (after any install option above). The OWUI pill appears in the top-right corner.
- Open the panel and set your Open WebUI URL (the default is a placeholder).
- Click Start. The first run opens a browser window for a one-time sign-in; the session is reused afterwards.
Troubleshooting 🔧
| Symptom | What to do |
|---|---|
| Diagnostics shows Attention | Install the dependencies: pip install requests playwright, then playwright install |
| Login fails / asks to sign in again | Click Login in the panel and sign in once in the window |
| Models missing from the DSH picker | Click Sync models & reasoning levels, then restart DSH |
The URL is your-open-webui.example.com | That's the placeholder — set your real address, then Start |
[ERR_PNPM_EPERM] ... rename ..._tmp_... when installing | An old junction from a previous manual install is in the way — `cmd /c rmdir "%USERPROFILE%.dsh\profiles<desktop |
Reasoning effort 🧠
Reasoning models (e.g. served behind a vLLM gateway) honour reasoning_effort,
so DSH's model picker can show Off / Low / Medium / High.
The easiest way is the Sync models & reasoning levels button in the Configuration section: it probes your models, declares the supported level for each, and writes a backup first. When your backend gains a model, click it again — already-probed models hit the cache.
For manual declaration or using chat2api.py standalone, see
DEVELOPMENT.md.
Data & security 🔒
- Your Open WebUI session (
.chrome-profile,token.json, the usage database) stays on this machine and is excluded from git and from the package. - The usage database and the proxy config live under
~/.dsh, outside the plugin directory, so they survive plugin updates. - The proxy listens on
127.0.0.1only.
Development 🛠️
See DEVELOPMENT.md for the code layout, conventions and how to test a change locally.
License ⚖️
- Plugin code (outside
chat2api/): MIT — see LICENSE. - The bundled
chat2api/proxy: MIT © openwebui-chat2api contributors — see THIRD_PARTY_NOTICES.md and Sozbo-Tang/openwebui-chat2api.
Comments
Loading…
From the same category
by awesome-dsh-plugin
A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表
★ 17.6k
CC0-1.0
Python
Oct 1, 2026
by zhu1090093659
DeepSeek Harness (DSH) Web Plugin Aggregation Ecosystem · Everything is a plugin, distributed via the Creative Workshop
★ 8.3k
↓ 203/wk
Apache-2.0
TypeScript
Oct 2, 2026
dsh plugin --profile web add dsh-webby yjh051108
dsh-routing-suite — injector + router-standard kit: install the runtime injector first, then the task-aware reasoning-mode router preset (measured P1-P23).
★ 7k
MIT
JavaScript
Sep 18, 2026
dsh plugin --profile web add @dsh-external/dsh-super-injectorby strukto-ai
The World's First Virtual Terminal for AI Agents
★ 3.7k
↓ 264/wk
Apache-2.0
TypeScript
Oct 2, 2026
dsh plugin --profile agent add @struktoai/mirage-dshby xmanrui
通过扫码或机器人凭据把IM机器人接入DeepSeek Harness(支持飞书、微信、钉钉、企业微信、QQ、Slack、Telegram、Discord和WhatsApp)。 Connect IM bots to DeepSeek Harness via QR code or credentials (9 channels).
★ 1.6k
↓ 17.2k/wk
MIT
JavaScript
Oct 2, 2026
dsh plugin --profile web add @xmanrui/dsh-imby hyhmrright
AI code reviews grounded in 12 classic engineering books — decay risk diagnostics with book citations, severity labels, and 6 analysis modes including full-sweep auto-fix
★ 1.5k
MIT
JavaScript
Sep 28, 2026