Open-source DSH plugin · MIT · v0.1.0

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
Why we built it

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.

What it does

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.

Quick start

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.

Where it's going

Roadmap

v0.2.0

Multi-tenant security: multi-key management, per-key rate limits, per-key workspaces.

v0.3.0

Admin UI: keys, limits, session monitor, usage audit.

v0.4.0

Duplex streaming: WebSocket full-duplex, SSE stays as the lightweight option.

v0.5.0

Ecosystem & ops: generated thin clients, deployment guide, metrics export.

Give your agents a door