Skip to content
dsh-market Browse plugins GitHub 中文

MaRi23333/dsh-grok-kit

Unofficial Grok integration for eligible SuperGrok or X Premium subscriptions: grok-4.6 chat with main-loop web/X search, shared Grok CLI OAuth, configurable model visibility, and Imagine images saved to an attachment or chosen path.

Stars ★ 0 Category Models & Providers Listed 2026-08-25 npm dsh-grok-kit

Install

Inside DeepSeek Harness, with dsh-market

dsh plugin --profile web add dshmarket

Or from the command line

dsh plugin --profile web add dsh-grok-kit

Installing runs third-party code with your own permissions — it can read your files, use your credentials and reach the network. Review the source first, and pin a commit (github:owner/repo#sha) when you can.

README

中文 · English

Use an eligible SuperGrok or X Premium subscription in DeepSeek Harness through OAuth, with web/X search in the main model turn, continuous reasoning, Imagine, and an xAI-only proxy.

[!IMPORTANT] Unofficial project, trademark, and account-use notice

dsh-grok-kit is an independently developed, third-party community plugin for DeepSeek Harness. It is not an official product of, or representative of, xAI, X, DeepSeek, DeepSeek Harness, or their maintainers, and it does not claim product-specific permission, sponsorship, endorsement, or approval from them. Grok, xAI, X, DeepSeek, DeepSeek Harness, and related names and marks belong to their respective owners and are used only to identify compatible services accurately.

OAuth availability may depend on subscription tier, region, xAI terms, account entitlement, rate limits, and future service changes. Users are responsible for confirming that their account and use are permitted. This project does not guarantee continued access or compatibility and does not provide xAI/Grok accounts, subscriptions, or official support.

More than OAuth sign-in

dsh-grok-kit adds a separate xai-oauth route to DeepSeek Harness. It does not require XAI_API_KEY or patch dsh source code. The point is not only to sign in, but to bring server-side search and the fields required for continuous reasoning into the main chat path.

  • Search in the main loop: web and X lookup occurs inside grok-4.6's current Think turn, so reasoning can use newly found material immediately
  • Continuous multi-turn reasoning: high effort is the default, with reasoning.encrypted_content preserved for the next turn
  • Sign-in stays in sync with Grok CLI: the plugin shares and writes back ~/.grok/auth.json instead of copying once and rotating refresh tokens separately
  • Imagine with a clean model picker: grok_imagine is enabled by default, while non-chat models stay out of the conversation picker; current DSH builds do not display the generated image directly in the conversation

Supporting behavior includes an xAI-only proxy, forced refresh and one retry on chat 401, atomic credential writes, and diagnostic redaction.

Search in the main model turn

The same model id does not guarantee the same experience across integrations. xAI documents that grok-4.6 is available in both Grok Build and the public API; the important search difference is whether server-side tools share the main conversation request.

Separate search sends another model request to retrieve or summarize material before returning it to the main conversation. That path remains useful when explicit filters are needed, but adds another model round, and its search summary is not produced inside the current reply's Think turn.

Main-turn search follows xAI's server-side Responses search pattern, placing {type:web_search} and {type:x_search} directly on the main grok-4.6 request. Lookup occurs inside Think, so the model can use newly found web and X material during the same reasoning turn. The default bundle enables this path.

To let both search systems coexist, DSH's native web_search remains in the host tool list but is removed from an xAI payload with fused search enabled, preventing a server-tool name collision. Other model routes can continue using the host search tool normally.

If a name such as x_keyword_search briefly appears in the UI, xAI has already completed that X search. The matching plugin item only lets DSH finish the current turn; it does not search again.

For domain, account, or date filters, disable backendSearch or enable nestedSearchTools to use standalone grok_web_search / x_search. This is an optional mode, not the default path.

statefulResponses is off by default. When enabled, the plugin uses store: true + previous_response_id and appends only new user items. A previous toolUse turn (x_keyword_search stubs, bash, …) is never continued — otherwise xAI emits a second message that reprints the search writeup. A live OAuth probe could list sources on follow-up, but cached_tokens does not become that turn's 100k–300k search KV.

Interface and behavior

Account, models, and proxy

Web search inside the main loop

Server-side X search calls

Install

Install the npm package into the Web profile:

dsh plugin --profile web add dsh-grok-kit
dsh web

If dsh is not on PATH, run the same CLI package through npx:

npx @deepseek-ai/dsh plugin --profile web add dsh-grok-kit
npx @deepseek-ai/dsh web

If this profile previously used the GitHub source, first try dsh plugin --profile web add dsh-grok-kit@latest. If the source does not switch, remove the old package and add it again.

For a reproducible Git install, pin a full commit:

dsh plugin --profile web add github:MaRi23333/dsh-grok-kit#91266c116dd6be086cb91c51e225c1d3d9578562

The full SHA fixes the installed source; the npm form follows the stable latest release by default.

Open Settings → xAI Grok, finish sign-in, then choose xai-oauth / grok-4.6 or another mainline Grok model currently visible to the account. A model already saved in dsh settings still takes precedence.

See INSTALL.md for installation, migration, removal, and troubleshooting details.

Models and tools

  • The picker shows only mainline Grok chat models; Imagine, video, embedding, build, and code variants are hidden
  • The default grok-4.6 descriptor uses high reasoning and requests reasoning.encrypted_content so encrypted reasoning context can be carried into later turns
  • grok_imagine is enabled by default, but current DSH builds cannot display the generated image directly in the conversation. To obtain a normal file, ask the Agent in your prompt to save the result to a specific directory; without a specified directory, the image is stored in the DSH attachment library
  • DSH's native web_search remains in the host tool list, but is removed from an xAI payload with backend search enabled to avoid duplicate tool names

The model list comes from the signed-in account's GET /v1/models response and is cached locally. Service or model requirements may still require a plugin update; a visible model id does not imply that every capability is available to the account.

Configuration

Key Default Meaning
backendSearch schema: false; bundle: true Enable xAI server-side web/X search in the main chat request
nestedSearchTools omitted: !backendSearch Register separate grok_web_search / x_search tools
statefulResponses omitted: false Opt-in store + previous_response_id; toolUse turns are not continued
searchModel grok-build-0.1 Model used by nested search mode
searchMaxResults 8 Maximum number of sources returned by nested search
webSearchTimeoutMs 60000 Cooperative budget for nested web search
xSearchTimeoutMs 120000 Cooperative budget for nested X search
imagineTool true Register grok_imagine
proxyUrl '' xAI-only HTTP/HTTPS proxy; the value saved in Settings wins

The bundle defaults come from cordis.patch.yml. For a manually reduced or recomposed setup, inspect the final values with dsh --profile web --dump-config.

The “Search & feature options” card on Settings → xAI Grok can also override the search/feature keys above (restart to apply; untouched keys keep following the bundle defaults instead of being pinned). proxyUrl is the exception — it applies immediately on save.

Sign-in document, proxy, and security boundaries

  • The live store prefers ~/.grok/auth.json, sharing the same xAI credential with Grok CLI in place; sign-in and refresh write back to that file instead of performing a one-time import, and signing out in Settings signs Grok CLI out too
  • OAuth refresh tokens rotate; atomic writes, in-process coalescing, and compare-and-write prevent concurrent refreshes from overwriting one another
  • Browser status routes, errors, and diagnostics do not return token values
  • Proxy settings accept only http:// or https:// URLs without embedded credentials; legacy values containing userinfo are scrubbed and do not reach status responses or logs
  • The xAI-only fetch hook is restored when the plugin is disposed and does not permanently change system or process environment variables
  • On Windows, Node mode bits are not NTFS ACLs. Restrict the directory ACL yourself if the user profile or $DSH_HOME is stored in a shared location

Compatibility and limitations

  • Some subscription tiers may allow browser sign-in but return HTTP 403 for chat or server-side search; this is an entitlement/service-policy result, not necessarily an expired token
  • HTTP 401 is retried once after serialized refresh; 403 is not treated as token expiry
  • Running this bundle alongside another bundle that registers the same xAI OAuth route is unsupported; follow the migration steps in INSTALL.md and remove the conflicting bundle first
  • Backend search is the default composition, but availability still depends on the account, selected model, and xAI's current service behavior
  • Removing the plugin does not delete ~/.grok/auth.json; sign out in Settings first if the local login should be removed

Development

npm install
node scripts/link-host-deps.mjs
npm run check
dsh plugin --profile web add ./dsh-grok-kit

Run scripts/link-host-deps.mjs after installing dependencies so the development checkout continues to use the host DeepSeek Harness versions of @deepseek-ai/* and @earendil-works/*.

CI runs frozen install, typecheck, tests, and build on Node.js 22 and 24, then confirms that the committed lib/ matches the source build.

License and attribution

Apache-2.0. Some code derives from Apache-2.0-licensed dsh-xai; see NOTICE.

Content from the project README on GitHub ↗