dsh-model-pricing
github.com/vitas/dsh-model-pricing- Category
- Developer Tools
- Rank
- No. 3455Tools index
Previous survey · No. 3303 ·
- Pricing
- Open Source
- Type
- TOOL
- Use case
- Data, Retrieval & Knowledge
- Interfaces
- Host Plugin
- GitHub
- 2 stars
- Latest release
- v0.5.0
- Date
About
A DeepSeek Harness plugin that embeds a per-1M-token pricing and capability table into the harness's Models settings, covering roughly 7,200 models across 213 providers with cross-provider cheapest-route comparisons and a community-curated promotions feed.
What it does
An add-on for DeepSeek Harness (DSH), a coding agent runtime, that answers two money questions without leaving it. Before a run, it shows what each LLM costs to call, merged from a public catalog and the price list DSH itself bills from. After a run, it replays your local agent logs, totals spend per project and per model actually used, and estimates how much you paid again for conversation history because the prompt cache expired or you switched models mid session. Everything runs on your own machine.
Why it's ranked here
The interesting half is the after-the-fact accounting. Most price lists stop at list price; this one reads the agent's own logs, follows mid-session model switches, and labels every figure by confidence: billed route, exact listing, or a min to max range when it can only guess. It is Apache 2.0, sends no credentials and no telemetry, and is careful about what its badges claim, saying lowest listed rather than cheapest. Narrow audience, since it only works inside DSH, but the honesty rules are written into the code.
What's good
The merge rule is concrete: for any model DSH can actually invoke, the harness's bundled price wins, and a gap above 10% against the public catalog is flagged with both numbers shown. Free tiers and flat subscription plans are kept out of the price baseline, and a route listed at under half the original developer's price is marked for verification. Speed figures need five samples before labelling. A broken offers download returns nothing rather than hiding prices, and expired offers are dropped even if the published list still carries them.
Tradeoffs
It is DSH only; there is no standalone mode. Cache-expiry attribution relies on a short hardcoded list of documented idle limits (five minutes for Anthropic and Google, ten for OpenAI), so every other vendor's expiry lands in an unattributed bucket. Only the newest 60 sessions are read. Cross-vendor comparison ranks by output price alone. The architecture document is marked a draft and describes a TypeScript layout and two languages, while the shipped code is JavaScript and the interface offers three. All figures are estimates, not invoices.
How to use it well
Best for someone already running DSH through its web interface who switches between models and suspects caching is costing them. Install by package name, restart, and check the session panel after a week of real work, when there is enough history for the speed and leak numbers to mean something. Treat a warning badge as a prompt to check the vendor's page. It does not track invoices, set budgets or block expensive calls; it only reports.
Technical notes+
package.json declares an ESM package, Node 18 or newer, main entry src/host/index.js plus a ./client export, and a dsh.client block injecting into the settings and settings-models UI packages; schemastery is a peer dependency. src/host/index.js registers GET /model-pricing/snapshot, POST /model-pricing/refresh and /model-pricing/sessions, with a 6 hour default TTL, an ETag over a SHA-256 of the payload, and mergePiAi applying the 0.1 relative divergence test. It handles both DSH 0.1.5 imperative settings and 0.1.7 volatile Config accessors through readField. src/host/catalog.js fetches the models.dev JSON API (DEFAULT_SOURCE_URL) with a 30 second timeout, groups rows by canonicalModelId, and annotateComparisons compares on output price with a FIRST_PARTY anchor map. src/host/sessions.js splits multi-frame zstd logs on the 28B52FFD magic, caps at MAX_SESSIONS = 60, and holds CACHE_TTL_MS. src/client/store.ts falls back to an embedded snapshot on non-404 errors and renders nothing on a 404.
Observed
- License
- Apache-2.0
- Language
- JavaScript host module and TypeScript/React client, Node 18 or newer
- Install surface
- npm package, added through the DSH plugin command with the web profile
- Platform
- Runs only inside DeepSeek Harness; renders in its web settings page
- Interfaces
- Local HTTP routes on the DSH web server plus a browser UI; no CLI command yet
- Data sources
- models.dev public catalog, the pi-ai catalog bundled with DSH, and a static offers file from the repository
- Network use
- Anonymous GET requests only; no credentials sent and no telemetry
- Local data read
- zstd-compressed session logs under the DSH home directory, newest 60 sessions
- Offline fallback
- Build-time snapshot shipped in the npm package
- UI languages
- English, Chinese and Russian
Read from README.md, package.json, LICENSE, docs/architecture.md, src/host/index.js, src/host/catalog.js, src/host/sessions.js, src/client/PricingTable.tsx, src/client/store.ts.
What it can do
Display per-1M-token pricing for models
Model catalog data → Pricing table in settings UI
Show capability tags for models
Model catalog data → Capability tags
Compare prices across providers to find cheapest route
Model pricing data → Cross-provider price comparison
Fetch model pricing and capability data from models.dev and bundled pi-ai catalog
models.dev and pi-ai catalog data → Updated pricing/capability table
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.