DSH XD Pool
XDTrees/dsh-xdpool把本机 WorkBuddy 桌面 App 登录过的所有账号自动并入 DSH 模型池:多账号轮换自动容错、实时积分,模型目录按模型标注积分倍率与限时免费 / 夜间折扣。
Grok Build 模型接入插件:使用官方 CLI 浏览器登录,动态发现账号可见模型,支持流式推理、工具调用、额度与模型能力设置页。
Use an already authenticated official Grok Build account from DeepSeek Harness, with dynamic model discovery, streaming reasoning, image input, optional Web/X Search, tool calls, and an account quota/model capability dashboard.
Unofficial community project; not affiliated with xAI or DeepSeek Harness. This README describes the
dsh-grok-provider@1.0.6artifact; version0.1.8was published and then withdrawn and cannot be reused.
1.0.6 fixes transparent WebP attachments being rejected before a Grok request. Transparent WebP images are transcoded to PNG before the Responses request; opaque WebP images are transcoded to JPEG.
This README is included in the 1.0.6 npm tarball, and the exact installation command below is pinned to 1.0.6. The previous version with completed supply-chain readback is 1.0.5.
| Capability | Current implementation |
|---|---|
| Sign-in | Invokes official grok login --oauth; the official CLI owns sign-in URL generation and external-browser launch, while the plugin does not implement an OAuth grant |
| Credentials | Reuses official CLI session state without creating a second token store |
| Models | Discovers every model visible to the account at runtime; no static model allowlist |
| Conversations | Streaming Responses text, reasoning, encrypted reasoning replay, usage, and finish reasons |
| Images | Only exact grok-4.6 accepts bounded JPEG/PNG/WebP images from Harness attachments; WebP is converted to Grok-compatible PNG/JPEG before sending; grok-4.5 and all other models remain text-only |
| Search | Exact grok-4.6 provides default-off Web/X Search; switches are saved through the live settings service |
| Tools | Returns function calls to the Harness permission layer; the provider never executes tools, and local web_search / x_search remain when the corresponding Search setting is off |
| Account dashboard | Login status, weekly/monthly quota, reset time, dynamic model capabilities and reasoning efforts |
| Surfaces | Bilingual Web settings and a closed /grok TUI command set |
0.1.5-rc.224.19.0 or newerlogin --oauth support and the default Grok homeInstall the CLI from the official Grok Build documentation, then verify:
grok --version
grok models
When the network is reachable and OIDC discovery succeeds, the official CLI opens a browser on first use. The provider supports only the official default ~/.grok directory (%USERPROFILE%\.grok on Windows).
Install the exact version:
dsh plugin --profile web add dsh-grok-provider@1.0.6
dsh web
Open Settings → Grok Build:
The provider does not take over the login page or ask you to paste an access or refresh token.
The Web settings page shows:
When protobuf-backed billing includes a complete weekly/monthly period but omits a zero-valued percentage, the page restores “0% used / 100% remaining.” Other incomplete responses remain unknown.
Harness 0.1.5-rc.2 does not expose an icon field on settings.section. The Provider embeds the MIT-licensed IconThinkOutline16 path geometry from @deepseek-ai/dsh-client-ui-primitives@0.1.0-rc.7 and displays it only when the Grok Build label and settings-dialog DOM structure produce one exact match; otherwise it safely keeps the Host gear. The compatibility observer, marker, and style are all removed when the plugin unloads.
Select a preview to view the full-size image.
TUI commands:
/grok status
/grok login
/grok cancel
/grok logout
These commands never enter model context. Logout requires confirmation because it invokes official grok logout and affects other clients sharing the same Grok home.
Update an installed version:
dsh plugin --profile web update dsh-grok-provider
dsh web
Uninstall:
dsh plugin --profile web remove dsh-grok-provider
dsh web
Uninstalling the provider does not remove the official Grok CLI or directly modify/delete auth.json.
07ebd35c56348a1b3296bd46d1a69f5b0f430241, annotated tag object 7ec8a8a1086749e7ac1dfb0ef2bd50c821838363 peeling to that commit, final CI run 33378215345, and Trusted Publisher run 33379149158 attempt 1. The explicitly authorized unique 77-file artifact is 267,403 bytes packed and 829,862 bytes unpacked; SHA-1 is 6197c3d30ec1ef5f559371911d612f6236eee2f9, SHA-256 is 7f740c7258ab7eee0c96e1ddae3398b41a25e718cf267e244f8693c3c99aeb0d, and SRI is sha512-kJgN0NKKV7Te3oAgbPnEua/EQCLnj5S0KWAWrhP0ixudJBepplRFARYHCxwxOwbG87bnX07Mz/dxCoBiphWhqQ==. The frozen artifact, GitHub Release asset, and Registry tarball are byte-identical. A locked Registry install passed Host/client loading with zero production vulnerabilities; package metadata exposes 1 Registry signature and 2 attestations, while the installed graph has 11 verified signed packages and 2 attested packages. SLSA provenance exactly binds release.yml, refs/tags/v1.0.3, the release commit, and publish run.1.0.1 tarball retained an older installation example; the README in the published 1.0.2 tarball uses the exact @1.0.2 command. Published 1.0.1 bytes are not replaced.dsh-plugin and dsh topicsdsh-grok-provider@0.1.0 and marking only darwin-arm64Directory inclusion is not an endorsement by xAI or DeepSeek Harness. Listing PR #3415 has added the project to the public awesome-dsh-plugin model category. That directory is repository-level discovery and carries no exact npm-version or platform-acceptance claim.
1.0.6 fix boundaryUNSUPPORTED_CONTENT failure caused when DSH normalizes transparent image attachments to image/webp.1.0.5 fix boundarylatest are available; dual-platform CI, exact artifact bytes, Registry signatures, and provenance have been verified./api; the host retains browser-session authentication, Host/Origin checks, and body limits.0.1.5-rc.2. An isolated macOS instance verifies status, CLI 1.0.5, both models, and quota; unauthenticated requests return 401 and foreign Origins return 403.1.0.4 repair boundaryinstallSettingsSection or settingsNamespace from @deepseek-ai/dsh-settings; it registers the legal string constant llm-grok through the settings service installSection API.0.1.2-rc.1 (dsh-settings / dsh-llm, Cordis 4.0.2, Schemastery 3.18.2). The Web client inject list uses @deepseek-ai/dsh-client-ui-renderer in place of the removed dsh-client-runtime.docs/releases/v1.0.4.md.1.0.3 repair boundaryAUTH; no API-key mode is added.24.19.0 gate reports 274 tests, 272 pass, 0 fail, and 2 platform skips. Final release commit, dual-platform CI, explicit authorization, isolated installation, Registry, signature, attestations, and provenance readback are complete for the unique 77-file artifact. The real-account success-path check does not simulate a future 401 or disconnect, and this release is not real-device Windows browser-login acceptance. See docs/releases/v1.0.3.md.1.0.2 repair boundary24.19.0 local gate reports 265 tests, 263 pass, 0 fail, and 2 platform skips; production audit reports zero vulnerabilities. Final release commit be200f9352afe93b27dd2856d89c01674f0cd637 for the 74-file artifact and final CI run 33318426571 pass on macOS 14 and Windows 2022. Unique-artifact authorization, isolated installation, Registry, signature, attestation, and provenance readback are complete.Think rows already persisted in older conversations are not rewritten.1.0.1 repair boundary{ type: "web_search" } / { type: "x_search" } when server Search is enabled; the fixed Proxy returns HTTP 400 for that combination.function_call / function_call_output items are neither deleted nor renamed.PROVIDER_ERROR while genuine SSE/protocol faults remain INVALID_RESPONSE.response.completed. No message/response text, URL, identity, or credential was retained.24.19.0 local suite reports 253 tests, 251 pass, 0 fail, and 2 platform skips; the production dependency audit reports zero vulnerabilities, an isolated-cache dry-run pack lists 73 files, and the secret-pattern scan finds only the explicit fixture canary and its checklist record. Code PR #31, main CI run 33312621786, the final release commit, dual-platform final CI, unique authorized artifact, isolated installation, Registry, signatures, attestations, and provenance readback are complete. This evidence still does not establish real-device Windows browser login. See docs/releases/v1.0.1.md for details.1.0.0 repair boundaryencrypted_content value is allowed, but it is not exposed as visible reasoning and upstream plaintext is not retained.response.output_item.done. If response.incomplete arrives while a reused lifecycle is still open, the stream maps to the generic invalid-response error; a later max_output_tokens terminal remains valid after every reused lifecycle has closed. Non-empty summary/raw data, cross-type reuse, unknown terminal fields, and accessor-backed fields remain rejected.open_page action accepts only exact type + url; streamed and final action type/URL must agree. The Provider discards the URL after validation and never visits, previews, downloads, or replays it.completed; the production adapter completed 5 Responses calls, with direct Web/X both ending in stop and a Harness-shaped local x_search call/result continuation ending tool-calls, tool-calls, then stop, with one local call in each of the first two turns. That continuation did not place a Harness x_search function definition beside an xAI { type: "x_search" } server descriptor in the same wire request; 1.0.1 later isolated that combination as an HTTP 400 conflict. No results, URLs, prompts, identity, or credentials were retained; this is not publication, OAuth, or real-device Windows evidence.1.0.0; the Node 24 suite reports 245 tests, 243 pass, 0 fail, and 2 platform skips. Production audit reports zero vulnerabilities, and the deterministic build/bundle comparison, 72-entry dry-run pack, secret scan, and diff check pass. Code PR #28, main CI run 33308371009, the final release commit, dual-platform final CI, unique artifact, exact authorization, and Registry/signature/attestation/provenance readback are complete.| Item | 1.0.6 compatibility boundary |
|---|---|
| DeepSeek Harness | Exact support for 0.1.5-rc.2 |
| Node.js | >=24.19.0 |
| macOS arm64 | Image sending has real-Harness confirmation; 1.0.5 validates account RPC on 0.1.5-rc.2 |
| Windows x64 | The code path and existing slow fakes are unchanged. On a reachable network the official CLI generates the URL and opens the browser, and that path still lacks real-device Windows acceptance |
| macOS x64 / Linux | Unsupported |
| Grok CLI | No full-version lock; official path, login --oauth capability, and production OIDC credential contract are enforced |
| Models | Every account catalog model whose backend has a strict codec in this release |
1.0.6 preserves the published image boundary: image input is enabled only for exact grok-4.6, while grok-4.5 and every other dynamically discovered model remain text-only. Images must be verified JPEG/PNG/WebP projections from the Harness attachment service; WebP is converted to Grok-compatible PNG/JPEG before sending. Ordinary user content and images nested one level inside a tool result are supported with fixed detail:"high"; URLs, filesystem paths, file IDs, and caller-supplied data URLs are rejected. Private reasoning in ordinary user/system history is omitted while adjacent visible text remains ordered.
Each projected image is limited to 4 MiB, 16,777,216 pixels, and 8192px per side. A request retains at most eight images and 8 MiB of projected image bytes. When a limit is exceeded, the globally oldest images are offloaded to Harness text placeholders; the final JSON remains capped at 16 MiB.
Published 0.1.10 registers and persists both Search settings through the canonical Harness settings module; each new call reads the latest value once before model discovery, while prepared and in-flight calls keep their original snapshot. Real use later found that exact grok-4.6 at High Effort may close a reasoning item, complete Search, and then reuse the same ID once as an empty placeholder, which the old decoder rejected. Published 0.1.11 permits that strictly empty one-time reuse only when a completed Search lies between the two reasoning lifecycles and adds the official raw reasoning_text lifecycle. Raw and summary modes are mutually exclusive; replay metadata does not retain raw plaintext, later requests send only encrypted_content with an empty summary, and live raw deltas remain visible to Harness as reasoning output. A redacted real probe observed 34 summary deltas and zero raw deltas, so it verifies only the summary/Search path; raw reasoning remains fixture-verified. Search stays default-off and limited to exact grok-4.6; remote activity is not projected as a local tool, and citation URLs are never opened or downloaded. Search results are untrusted remote data, so verify sources before commands or file changes. Image generation, arbitrary downloads, API-key mode, multiple accounts, enterprise OIDC, ACP, and Headless agent wrapping remain out of scope; see the capability roadmap.
Harness UI / TUI
│ closed actions and redacted DTOs only
▼
dsh-grok-provider Host
├── Official Grok CLI: login / models / logout
├── Pinned Models/Billing endpoints: catalog and quota
└── Pinned Responses endpoint: streamed inference
│
▼
xAI Grok Build
Model IDs come from the runtime catalog rather than a hardcoded list. Image modality is enabled only for exact model IDs backed by separate protocol and live evidence. If an account exposes a new backend that cannot be mapped safely, discovery fails closed instead of hiding the model and claiming complete support.
user_id, credential paths, arbitrary URLs, or raw upstream responses.auth.json, whose raw file may contain a refresh token. The parser does not use, cache, or persist that refresh token; it retains only validation metadata and a short-lived access-token lease.grok models, then reread and revalidate the official credential file.See the full threat model. For vulnerabilities, read the security policy and never post tokens, auth.json, personal data, or full diagnostic logs in a public issue.
Install Grok Build CLI from the official link shown on the page, then click “Detect again.” Confirm that the CLI is in its default location and run grok --version. The provider does not install the CLI automatically and will not load an executable from PATH, the workspace, or a UI-selected arbitrary path. The settings page displays both the provider and verified CLI versions.