Releases: tianxia--/dsh-llm-local-token
Release list
v1.3.2 — green current badge
Fixes
The "current" provider badge is now a quiet green tint instead of a dark pill.
v1.3.1 made the badge legible, but it did so by borrowing DSH's contrast-surface pairing — which paints a heavy dark pill for what is only a quiet "which provider am I on" marker.
It now uses the success token the usage bars already speak in (--dsw-alias-state-success-tertiary) with normal primary label text on top. Measured in a real browser, contrast is 17.33:1; both tokens flip with the theme, so the dark theme stays legible.
Install
dsh plugin --profile web add dsh-llm-local-tokenAlready installed? Update in place:
dsh plugin --profile web add dsh-llm-local-token@latestFull changelog: v1.3.1...v1.3.2
v1.3.1 — readable current badge, README screenshots
Fixes
The "current" provider badge was invisible. It painted --dsw-alias-brand-primary behind --dsw-alias-label-primary; in DSH's light theme both resolve to rgb(15, 17, 21), so the badge rendered as a solid black pill with unreadable text. It now uses the pairing DSH itself uses for contrast surfaces — --dsw-alias-button-contrast-fill with --dsw-alias-label-primary-inverted — which stays legible in the dark theme too.
Docs
The README now shows the plugin instead of only describing it: both provider routes grouped in the model picker, and the subscription-usage popover with its real quota windows.
Install
dsh plugin --profile web add dsh-llm-local-tokenSince v1.3.0 that is the whole install — the package declares a profile bundle, so DSH inserts the loader row for you.
Full changelog: v1.3.0...v1.3.1
v1.3.0 — one-command install (profile bundle manifest)
Install collapses to one command
dsh plugin --profile web add dsh-llm-local-tokenThat is now the whole install. Restart dsh and the openai-codex / anthropic routes appear in the model picker.
What changed
DSH resolves a bundle's loader rows through the dsh.bundle.patch manifest field, never through code. Until 1.2.0 this package declared only dsh.client, so dsh plugin add could not enable it — you had to hand-edit your profile's own cordis.patch.yml, which is exactly what the README used to instruct.
1.3.0 ships a root cordis.patch.yml carrying the llm-local-token row, points dsh.bundle.patch at it, and includes it in files and exports so it reaches the npm tarball.
The manual path stays documented for vendored copies and for pinning config in your own patch layer — that layer is applied after every bundle layer, so restating the id still overrides the bundle's defaults.
Unchanged
Both provider routes behave exactly as in 1.2.0:
| Provider route | Credential source |
|---|---|
openai-codex |
~/.codex/auth.json (ChatGPT OAuth, shared with the codex CLI) |
anthropic |
~/.claude/.credentials.json, else the macOS Keychain item Claude Code-credentials |
Per-request token resolution with refresh near expiry, a missing credential skips its route instead of failing the boot, and subscription usage is surfaced from provider rate-limit headers (read over SSE for Codex).
Full changelog: v1.2.0...v1.3.0
v1.2.0 — local Codex / Claude OAuth as DSH model routes
A DeepSeek Harness plugin that serves LLM
calls with the OAuth tokens your local CLIs already hold — no separate API key, no extra login.
If you are signed in to the Codex CLI or to Claude Code, those subscriptions become usable model
routes inside DSH.
| Provider route | Credential source |
|---|---|
openai-codex |
~/.codex/auth.json (ChatGPT OAuth, shared with the codex CLI) |
anthropic |
~/.claude/.credentials.json, else the macOS Keychain item Claude Code-credentials |
Both routes appear in the model picker as soon as the plugin loads. A route whose credential is
missing is skipped instead of failing the boot.
Highlights
- Resolves the OAuth token per request from the file the CLI maintains, and refreshes it near expiry.
- Hands the token to the pi-ai engine DSH already ships — no forked engine, no proxy process.
- Shows Codex / Claude subscription usage from provider rate-limit headers, including quota read
over SSE for Codex, following whichever provider is selected. - Quota windows are named by their actual length rather than the vendor's marketing word.
Install
dsh plugin --profile web add https://github.com/tianxia--/dsh-llm-local-token.gitThen enable it in the profile's patch layer (~/.dsh/profiles/web/cordis.patch.yml):
- insert:
- id: llm-local-token
name: dsh-llm-local-token