A door into your running Harness
dsh-api-gateway turns a running DeepSeek Harness into an HTTP API — REST + SSE, API keys, session adoption. Any client, any language.
dsh plugin --profile web add github:litestartup-com/dsh-api-gateway
Harness has a great UI. It needed a door.
DeepSeek Harness gives you a Web UI, but third-party systems — an IM bridge, a script, another service — can't click buttons. The official Python SDK is an embedded runtime for isolated tasks; it isn't a way into your running deployment. We wanted one thin HTTP surface with one key, over the same sessions the GUI drives, so anything can talk to our agents.
Nine endpoints, one key
REST + SSE
Create sessions, send messages, stream replies token-by-token, cancel turns — the server closes each stream at turn end.
Session adoption
Discover any session and adopt it: live co-driving a GUI conversation, or cold-resuming one with full history.
Reasoning split
Replies separate the visible answer from the thinking — never concatenated into one blob.
Extensible
Publishes session/message/turn events on the Cordis bus, so other plugins can audit, alert, or forward.
Workspace-native
API sessions land in real workspaces, grouped in the sidebar just like GUI sessions.
Any language
curl, Python, PowerShell, a browser — anything that speaks HTTP. Reference clients ship in the repo.
Five minutes to your first API call
dsh plugin --profile web add github:litestartup-com/dsh-api-gateway # install
BASE=http://127.0.0.1:3080/api-gw/v1
KEY=$(curl -s -X POST $BASE/key | jq -r .apiKey) # one-time key bootstrap
SID=$(curl -s -X POST $BASE/sessions -H "Authorization: Bearer $KEY" | jq -r .sessionId)
curl -s -X POST $BASE/sessions/$SID/messages -H "Authorization: Bearer $KEY" \
-H 'Content-Type: application/json' -d '{"content":"hello"}' # 202 accepted
It's also the foundation of Oh! dsh
This gateway is the door that Oh! dsh — our agent manager — uses to relay chats, dispatch work, and meter usage. If you're assembling your own control plane on DSH, start here.
Roadmap
Multi-tenant security: multi-key management, per-key rate limits, per-key workspaces.
Admin UI: keys, limits, session monitor, usage audit.
Duplex streaming: WebSocket full-duplex, SSE stays as the lightweight option.
Ecosystem & ops: generated thin clients, deployment guide, metrics export.