dsh-deepseek-session-cost
Verified@xorne/dsh-deepseek-session-cost · v0.1.4 · MIT · Web UI
DSH harness plugin: shows live DeepSeek session cost in USD, priced per model (v4-flash / v4-pro), with peak/off-peak and weekend off-peak rules.
Install
dsh plugin add @xorne/dsh-deepseek-session-cost Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Creators
Readme
dsh-deepseek-session-cost
Plugin DeepSeek Harness : affiche le coût de la session (en USD) sous la zone de
saisie, facturé par message selon le modèle utilisé (deepseek-v4-flash,
deepseek-v4-pro, …), avec l'indicateur visuel off-peak / peak.
$0.0042 ● off-peak · DeepSeek · deepseek-v4-flash · in 1.2k · ⚡0.9k · out 0.3k
Fonctionnalités
- Par message / par modèle : chaque message assistant est facturé au tarif de son
propre modèle (lecture du
usage+provenance.model/requestConfig.model). - Tarifs officiels : table
src/pricing.jsextraite de api-docs.deepseek.com/quick_start/pricing (modèles V4), avec rafraîchissement best-effort par l'hôte (web.fetch). - Peak / off-peak selon l'heure de Pékin : fenêtre
00:30–08:30en semaine, et toute la journée le week-end (samedi/dimanche Pékin) depuis le 23/08/2026. - Pastille de créneau : vert = off-peak, ambre = peak (tokens de thème DSH).
- Zéro dépendance hôte obligatoire : le client calcule le coût avec les tarifs intégrés et la logique de créneau locale ; il rafraîchit la table via le RPC hôte si disponible.
Architecture / fichiers
| Fichier | Rôle |
|---|---|
src/pricing.js |
Modèle de tarif, isOffPeak() (règle week-end), costOfUsage(), formatTokens(). |
src/index.js |
Moitié hôte : fetch officiel + exposition des tarifs (harness.handle ou service deepseekPricing). |
src/client.js |
Moitié navigateur : slot conversation.composer.dock, composant DeepSeekCostPanel. |
cordis.patch.yml |
Entrée dual-face @xorne/dsh-deepseek-session-cost. |
Installation dans un profil
Publier (ou référencer localement) le paquet, puis l'ajouter au profil :
cd ~/.dsh/profiles/web pnpm add @xorne/dsh-deepseek-session-cost dsh plugin --profile web add @xorne/dsh-deepseek-session-costLe déclarer comme bundle dans
package.json(sectiondsh.profile.bundles) : soncordis.patch.ymlinsère alors l'entrée dual-face."dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "@xorne/dsh-deepseek-session-cost"] } }Redémarrer le profil (
dsh --profile web).
⚠️ Build client : la moitié
./clientdoit être bundlée par le build frontend (servi sous/plugins/<id>/client.js). En dev, lancer le watcher (pnpm run dev:webdepuis l'installation DSH) ; les plugins statiques n'apparaissent qu'après rebuild + refresh. Le plugin dynamique équivalent (via l'outil Cordis) n'a pas ce besoin — c'est ce qui a été testé ici.
Plugins DeepSeek Harness
Catalogue des plugins @deepseek-ai/dsh-* du Harness (hors utilitaires), avec version
et description, regroupés par catégorie : voir plugins.md.
Ce catalogue est auto-généré depuis les package.json installés du déploiement. Pour
la liste active d'un profil précis (plugins réellement chargés), préférez :
dsh --profile web --dump-config | grep "^- id:"
Publier sur npm
npm login
npm publish
Puis chacun peut faire dsh plugin --profile web add @xorne/dsh-deepseek-session-cost.
Différences avec le plugin dynamique
Le plugin dynamique (défini à l'exécution via l'outil Cordis) utilise le RPC
package-privé harness.handle / host.call. Pour un bundle statique :
- La liaison hôte → client doit suivre la convention du loader : soit
harness.handle(si injecté), soit un service@Remote(activé danssrc/index.js). src/client.jsest autonome : sans RPC, il retombe surBASE_PRICINGet la logique de créneau locale — le plugin reste fonctionnel même sans hôte.
Renommez
DEFAULT_MODELsi besoin et vérifiez que le scope@xornecorrespond bien à votre username/org npm avant publication.