プラグイン
DeepSeek-Harness プラグインを閲覧・絞り込み・インストールできます。
78 件のプラグインが見つかりました
dsh-local-trim
leonlee114514/dsh-local-trim
One-step local model onboarding plus a light harness for DSH. On load it probes loopback and private-network inference endpoints (llama.cpp, Ollama, vLLM, LM Studio), reads each model's context window and output budget from the backend, and registers the provider through settings, so a local model becomes selectable without hand-writing config. It then trims only that provider: masks the tool list through tools.restrict, drops named system-prompt sections and memory contexts, swaps the injected instruction block for a short one while preserving its first 80 and last 96 characters, and truncates tool-schema descriptions without touching structure or required fields. Cloud providers are returned as the same assembly object, untouched. The injected block is re-read from disk on every assembly, so editing the file takes effect on the next request with no reload. The panel in the plugin detail page is a live operations view: it shows whether the takeover is active and by which hook, how many characters the last assembly was trimmed from and to, and which providers are online (probed concurrently, with a real one-shot completion reporting latency and reply text per provider). If a local backend is not running, the panel offers a one-click launch: it probes the port first (never starting a duplicate), then starts the matching server (ollama serve, or a custom command you supply) detached and polls until the endpoint answers, clamping the wait to 3-600 seconds, reaping the child it just spawned if it never answers, and naming the paths it searched when it cannot find the binary. A stop button kills backends this plugin started (SIGTERM, then SIGKILL) and refuses to touch a server somebody else launched. When a model has just been downloaded and no backend exists yet, the panel can also scan the machine for .gguf files with hard caps (300 models, 20000 directory entries, Downloads only one level deep), start llama-server on the chosen one (skipping the .mmproj. vision projection and reusing a server that already answers), register the provider under the model id the backend reports, and run one real completion to prove it works. Before spawning anything it does a fit check that counts only the part of the file the GPU cannot hold: hostBytes = fileSize - VRAM, compared against max(total RAM - 2GB, free RAM). A file far larger than RAM is refused outright; a heavy host-side remainder is refused unless you confirm; the same remainder under mmap is only a warning, because the weights land in reclaimable page cache. A load-mode selector (auto / mmap / none / mlock / mmap+mlock) maps to llama.cpp --load-mode, and the default is whatever the engine picks. From 0.4.2 everything above is derived from the platform instead of assumed: home and data directories come from os.homedir() and the OS conventions (LOCALAPPDATA on Windows, ~/Library/Application Support on macOS, XDG_DATA_HOME elsewhere); backend binaries are looked up in the official install locations of each OS and can be pinned with OLLAMA_BIN, LLAMA_SERVER_BIN, VLLM_BIN or LMSTUDIO_BIN; model discovery walks DSH_LOCAL_MODELS_DIR, ~/models, ~/llama.cpp/models, ~/.cache/llama.cpp and the LM Studio data directory, with the WorkBuddy layout demoted to one candidate among them. VRAM is asked from nvidia-smi, then rocm-smi, then sysctl hw.memsize on Apple Silicon (flagged unified, so the same bytes are not charged twice), and any flip to a unified-memory budget is handled explicitly. Before building a command line the plugin runs llama-server --help once and keeps only the flags that build actually has, so older engines get --n-gpu-layers 99 and no KV quantization while newer ones get auto plus q8_0; anything it cannot probe is passed through rather than dropped. LM Studio is started with lms server start --port N rather than being lumped in with the engines that need a model argument, and vLLM gets its own --model example instead of llama.cpp syntax. Windows, macOS and Linux are all exercised in CI, including a windows-latest and a macos-latest job, because a cross-platform claim that has only ever run on one OS is not a claim. Two of those suites exist specifically to catch this machine's blind spots: one replays the whole suite with process.platform rewritten to each OS, and one deletes every advantage this development box has — no nvidia-smi, no rocm-smi, no sysctl, an empty PATH, a home directory with no models — and requires graceful degradation rather than a crash. That last one caught a real class of bug: several assertions hardcoded 'lms.exe', which cannot pass where the executable has no suffix. Measured on the reference machine: a 16.9GB 27.2B MoE with 14.5GB of VRAM holds a 285-691MB working set and sustains 76 tok/s after a 1000-2000 token warm-up, so file size alone is not a fit signal. From 0.4.3 the scanned models are shown as a table rather than a dropdown (one row per gguf, with its size and any fit warning), so you can see what is on disk before choosing. From 0.4.4 the delete button on the provider table removes the provider entry, not the weights file on disk. That distinction matters: what people actually want to clear out is the dead entry - one pointing at a port that never answered, one registered twice for the same port, one whose model file was deleted long ago - not a 15.8GB gguf. Deleting a config is undone by importing again; deleting a gguf is not. The removal goes through settings.mutate with an unset op on \['providers', id], because update merges layers: writing null there leaves a null provider key that the loader reads as a broken config rather than an absent entry, and only mutate/unset is implemented as Reflect.deleteProperty. The result is read back afterwards, because unset on a key that comes from a lower layer (the profile cordis.patch.yml or a home patch) does not delete it - it restores the inherited value, so the call succeeds while the entry stays. When the entry is still there the panel says so and points at the file to edit instead of reporting success, and a DSH whose settings service predates mutate() is told plainly rather than silently ignored. Deleting takes two clicks and clearing the confirmation is as easy as clicking another row; on success the online and baseURL caches are cleared and the tool surface is recomputed, since the provider list changed. The gguf itself is never touched by this plugin - the scanned-model table is display and selection only.VRAM reporting is driver-dependent. From 0.4.5 model discovery also reads Ollama's own storage: its blobs are named sha256-… with no extension, so extension matching could never list them. Weights are now accepted by extension OR by GGUF magic header (only dot-free files of at least 8MB, capped at 600 header reads per scan; obviously-not-weights extensions like .json/.md/.safetensors/.part are never opened). Ollama models are resolved from their manifests: the model layer is picked by mediaType application/vnd.ollama.image.model (never adapter/mmproj layers), the human-readable name is restored from the manifest path (…/qwen3/8b becomes qwen3:8b, …/latest stays bare), tags sharing one blob merge into a single row, and the metadata kv supplies name, quantization and context length. Adopting an Ollama model does not start a duplicate llama-server over the same weights: it confirms ollama serve answers on 11434 (launching it if not) and registers the provider under the tag the endpoint itself reports — the blob's sha256 name would never match anything, since 11434 lists qwen3:14b, not sha256-a8cc…. Two real-machine-only traps fixed on the way: existsSync('<file>/') returns true on Windows, so manifest-vs-directory branching now goes by parseable content instead of trailing-slash semantics; and the quantization label table had been copied from a stale ggml enum generation, labelling ggml_type 15 as Q5_K_S while ollama show reports Q4_K_M. Same-blob dedup is by (dev,ino), keeping whichever entry has a name. Verified on the reference machine: the scan goes from 1 row to 4 — qwen3:14b (8.64G) and qwen3:8b (4.87G) now appear with Q4_K_M badges — in 4ms; npm run verify exits 0 (launcher 57, portable 35, panel-host green including the linux/darwin simulated-platform runs); the new panel-host suite builds a real miniature Ollama store in tmpdir and points OLLAMA_MODELS at it, so results no longer depend on whether the test machine happens to have Ollama installed. From 0.4.6 the panel shows each model its real name instead of its file name, because some download tooling stores every weight under one generic file name, leaving the real name only inside the GGUF header. The scan now reads each file GGUF KV section - not a fixed-size head buffer, because tokenizer.ggml.tokens (hundreds of thousands of strings on a large MoE model) and the chat template push general.file_type past any window; and GGUF string arrays are interleaved (u64 length plus payload per element), so treating them as a length table walks the cursor off the rails and produces astronomically large reads. Reading and skipping are accounted separately: key names and types are always read, string values over 256KB and string arrays are only walked past without copying, non-string arrays over 64 elements are skipped outright, and a cursor past the file size stops the read, because an out-of-range position means the cursor is wrong rather than that a limit should be raised. The displayed name goes Ollama tag, then general.basename plus size_label, then general.name, then the file name, with the full string kept for the hover text since it usually carries internal build numbers; mmproj files are now identified by general.type as well as by name. A short read (truncated file) no longer feeds half a value into the parser. On the reference machine, reading one file header parses 44 keys in about 16ms, and a whole scan takes about 31ms. From 0.4.7 the smoke test no longer fails the first time and passes the second. The old code gave both request attempts one shared AbortController and one shared 30-second timer, so the total budget covered both rounds: a cold load of a large model burned it in round one, the abort left the signal permanently aborted, and the second round (the Ollama-style reasoning_effort: none retry) could not even be sent - which is exactly why the first click returned This operation was aborted and the second succeeded. Now each attempt gets its own controller and timer, a timeout retries once automatically (retryOnTimeout, on by default) because a first-request timeout almost always means the weights are still being read from disk, and non-timeout errors (refused connection, HTTP error) are not retried at all. Timeouts report themselves: the message says the wait exceeded smokeTimeout, whether a retry already happened, and points at the new smokeTimeout setting (seconds, default 60, clamped to 5-600) - port responding is not the same as tokens coming out, so it is a separate knob from launchTimeout. Unrelated: an example naming one specific model was dropped from the panel copy, since not every machine has that model downloaded, and the explanation now describes the mechanism instead. From 0.4.8 adopting a plain .gguf no longer registers an unrelated Ollama model. The port field used to follow the last click rather than the file: selecting an Ollama entry moved it to 11434, selecting a plain .gguf did not move it back, so a 11434 left over from an earlier click stayed. The server accepted it as given, probed the port, found Ollama answering and borrowed it (the skipped-launch log line about the port already answering is this path), and then the model id - derived from the file name - could not be matched against Ollama's /v1/models, where the fallback was to grab the first entry in the list. Embedding models tend to sort first, so the adopt registered a model the user never selected. Now the port follows the file: a plain .gguf landing on another engine's port (ollama 11434, vLLM 8000, LM Studio 1234) is moved to 8090 and the panel says so. Only ports belonging to a known engine are overridden - a hand-typed 9999 aimed at your own llama-server is left alone. The model-id fallback no longer guesses either: it takes the only entry when there is exactly one (a single-model backend may legitimately report a different id than the file name) and otherwise reports an error listing the ids it did see, rather than registering a wrong provider.
dsh-ccf
xwtxbzz/dsh-ccf
ccf_deadlines、ccf_venue、ccf_updateツール、/ccfコマンド、一覧をカレンダー形式で書き出すデスクトップパネルで、CCF会議の論文締切を検索します。日付はライブ同期(主な情報源はCCFDDL、第二の情報源と照合)から取得し、36時間以上の差は情報源の不一致として表示します。データは同梱せず、今後30日分をシステムプロンプトに含めます。
dsh-pavement-structural-dynamics
qiujiyuantiantian/dsh-pavement-structural-dynamics
舗装構造の動力学を判断する59枚・8章のマニュアル。章名が内容を誇張している箇所、転記すると破綻する式、別の文脈からの引用に流用してはいけない数値を指摘します。
dsh-our-free-model-balance-zxp
zengxiangpeng123/dsh-our-free-model-balance-zxp
DSH composer横に現在のOur Free Model(OFM)チャネル残量を表示し、パネルにはログイン済み全チャネルを一覧。枯渇チャネルに印を付け、モデル切替時に表示チャネルも切替。dsh-our-free-modelと少なくとも1チャネルのログインが必要。
dsh-workproof (dsh-delivery-receipts)
oxmumu3/dsh-workproof
ローカル成果物のSession単位の受領記録です。現在のファイルハッシュを保存済み基準と比較し、エージェントの主張とユーザーの明示的な受入を分け、変更/取得不能なファイルを示します。ツール、slash command、会話パネルからMarkdown記録を出力できます。
dsh-adaptive
dingchenhui0618-arch/dsh-adaptive
DeepSeek Harness向けのバージョン適応型ツールです。プラグインマネージャーから実行中のDSH版を読み、app-bootの互換規則(まず`engines.dsh`、次に`@deepseek-ai/dsh*`のpeer依存、プレリリースを含む比較、完全一致版の例外)を反映して全プラグインを評価します。v0.1.6~v0.2.1で改名/非推奨になったAPIを使うソースも静的検出します。会話パネル、エージェントツール、HTTPのstate/scan/reportルートを提供。読み取り専用、オフライン。
dsh-context-budget
bushizhanghan/dsh-context-budget
各ターンのコンテキスト予算の内訳を監査。AGENTS.md、skillカタログ、ツールschema、ランタイム文脈へのコストを分け、変更のない内容の繰り返し注入を無駄として検出。skillを60件以上導入した場合に毎ターンモデルが読む説明量と、プラグインごとのツールschema膨張を順位付けします。決定論的でLLM不使用。全セッション走査を含む4ツール。
dsh-second-angle
rootsbymenda/dsh-second-angle
完了した回答の各主張を、そのターンで読んだツール出力と照合します。矛盾を示す引用が同じターンの出力内で見つかった場合に限り、同じターンで一度修正を促します。根拠のない主張はセッションログとstderrに記録。先に「絶対」表現と不一致数値を無料検査し、そのターンでツール未使用ならモデルへ進みません。
dsh-leak-guard
7gzgn/dsh-leak-guard
publish前のcredential audit。directory treeを走査しAPI key/token/private key/DB connection string/hardcoded passwordをcommit・publish・ship前に検出。依存なし、完全offline。検出表示は先頭6文字だけを残してredact。
dsh-humanize
lry722/dsh-humanize
人向け文章のwriteをレビューします。write/edit toolにはhuman_facing flagが必須です。pluginは階層化されたPROSE.mdルールに沿ってバックグラウンドで文面を確認し、注釈をstageしてファイル全体と照合後、主sessionの作業を止めずに/humanize、/humanize-loop、またはpost-compaction経由で反映します。/humanize-reviewは要求時にgit管理ファイルを一括処理します。
dsh-valuation-service
zirscard/dsh-valuation-service
`valuation_service` toolを1つ登録し、01/02/04 JSONのworkpaper treeを読み、統一schemaを返します。6つの比率グループ、予測比率、明示的な不足マーカー付きDCF入力欄、比較PS/PE、IRRを含みます。決定論的かつローカルに動作し、WACC、成長率、capex、D&A、運転資本の不足値を推測せず空欄のままにし、仮定の差をレビュー対象として示します。
dsh-context-extract
zirscard/dsh-context-extract
DeepSeek Harnessに`context_extract` toolを1つ登録します。長い生文書(財務報告、契約、台帳)を、主要指標、表、番号付き条項、主体、照合アラートを含む高密度の構造化MarkdownとJSONに圧縮し、後続処理で原文を再読せず使えるようにします。財務諸表/法的契約/業務台帳を判別して別々に扱い、貸借対照表と現金を照合し、不一致は修正せずアラートにします。読み取り専用で元ファイルを変更しません。openpyxlとpython-docx入りPythonが必要です。
dsh-wtskin-project
wuqiu-ying/dsh-wtskin-project
War Thunderのユーザースキン制作studioです。4点UV四角形選択、四角形でクリップするアートレイヤー、PNG/DDS/.blk出力に対応します。
dsh-prompt-enhancer
cosmoliu2002/dsh-prompt-enhancer
コンポーザーに✨ボタンと/enhanceコマンドを追加し、下書きを構造化プロンプトに書き換えます。入力欄の下に未解決の質問を示し、現在のセッションmodelに従い、undoも可能です。
dsh-mine-game (mine-float)
x-cores/dsh-mine-game
ドラッグ可能なフローティングウィンドウで遊ぶマインスイーパー。初手で地雷を踏まない配置、旗、周囲一括開示、タイマーを備えます。
dsh-mega-plugins (dsh-memo)
zhangj1164/dsh-mega-plugins
ISO week別tableの個人memo。単一period calendarでweek/month/quarter/year移動、quarter archive、AI分析、Markdown export。過去week編集は明示force flag必須。suite telemetry failure分析をGitHub issue report化。
dsh-icd-rule-check
perrylink/dsh-icd-rule-check
GB/T 14396-2016と公開ICD注記に照らし、注意が必要なICDコード組(dagger/asteriskの組合せ、combination code)を報告します。組合せを確定せず、判断はcoderに委ねます。
dsh-workproof (dsh-delivery-receipts)
piggy00544/dsh-workproof
ローカル成果物のsession単位納品レシート。現在のfile hashを記録baselineと比較し、agentの主張とユーザーの明示的受領を分離、変更済み/利用不可fileを表示。tool、slash command、会話panelからMarkdown receiptを出力。
dsh-tool-invoice
yuehancn/dsh-tool-invoice
テキストから請求書番号、日付、当事者、税務ID、金額・税額・合計を抽出します。金額と税額の合計が請求総額と一致するか検証し、照合できない書類にフラグを立てます。
dsh-compat-vet
liujianqiao701/dsh-compat-vet
dsh 用プラグイン互換性チェッカー。インストール済みプラグインの peerDependencies を実行中の dsh バージョンと比較し、起動前チェックで読み込みを拒否されるものを特定して、コピー可能な修正コマンドを表示します。dsh Web のページ上部バナーから隔離・アンインストール・アップグレードを選べます。変更前に自動バックアップし、再チェックに失敗したらロールバックします。
dsh-balance
etony668/dsh-balance
DeepSeek API残高バッジをサイドバー下部のSettings横に表示します。DSHがすでに保存しているキーを読み取り、ホバーで付与分とチャージ分の内訳を表示。残高が¥2未満なら警告し、60秒ごとまたはクリックで更新します。
dsh-codex-pin
jackovibe/dsh-codex-pin
Webサイドバーでセッションを固定表示し、すべてのワークスペースグループより上に単一のPinnedセクションを設けます。保存済みセッション順は変更せず、固定フラグはホスト設定ドキュメントに保存。右クリックメニューから名前変更、固定、分岐、アーカイブ、削除、タイトルまたはセッションIDのコピーができ、ラベルはGUI言語に従います。
dsh-git-idea
mays-hi/dsh-git-idea
IDEAのVCSを参考にしたDSH Git連携。コンポーザーの権限モード横のGitアイコンに現在のブランチと未確定変更数を表示。ホバーでブランチ切替、クリックでIDEA風VCSパネル(ブランチツリー、コミットグラフ、変更とステージング、コミット詳細、ファイルdiff)を開きます。コミット作成者情報、Git実行ファイル、ネットワークフラグの設定ページも搭載。DSHモデルツールは登録しません。
dsh-qqmail
zhengjy01/dsh-qqmail
DeepSeek HarnessでQQ Mailと任意のIMAP/SMTPメールボックスを利用。`qqmail_*` AgentツールでIMAP/SMTP経由のメール一覧、検索、閲覧、送信、返信、フラグ設定、ダウンロードを行います。QQ Mail認証コードを使用し、OAuthも2FAリダイレクトも不要。`qqmail` CLIも付属。