dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Google Antigravity subscription reuse for DeepSeek Harness: browser PKCE sign-in, loopback OpenAI-compatible proxy to Cloud Code Assist, Gemini/Claude/GPT-OSS model routes.
Reuse a Google Antigravity subscription (Google AI Pro / Ultra) as model
providers in DeepSeek Harness.
Authorize one or more Google accounts once; the plugin provisions an
antigravity model route with Gemini, Claude, and GPT-OSS models from Cloud
Code Assist and serves them through a loopback OpenAI-compatible proxy.
Protocol shape follows the pi-antigravity reference implementation. Unofficial integration — not affiliated with or endorsed by Google. Use only with an account and services you are authorized to access.
npx --yes github:shaomingbo/dsh-subscription-antigravity#v0.2.1
The no-argument installer adds the bundle to the web profile (fixed tag
source, pnpm install --ignore-scripts, atomic manifest writes, rollback on
dependency-install failure). It never stops or restarts DSH — when it finishes,
restart DSH manually and hard-refresh the Web GUI.
Other commands:
npx --yes github:shaomingbo/dsh-subscription-antigravity#v0.2.1 status
npx --yes github:shaomingbo/dsh-subscription-antigravity#v0.2.1 uninstall
Options: --profile <name> (default web), --source <spec>, --help.
Environment: DSH_ANTIGRAVITY_SOURCE overrides the package source.
npx --yes github:shaomingbo/dsh-subscription-antigravity#v0.2.1 install \
--source link:/Users/you/open-source/dsh-subscription-antigravity
A link: source is for development only; switch back to the fixed tag for
normal use.
Edit ~/.dsh/profiles/web/package.json by hand: add
"dsh-subscription-antigravity": "github:shaomingbo/dsh-subscription-antigravity#v0.2.1"
to dependencies and "dsh-subscription-antigravity" to
dsh.profile.bundles, then run pnpm install --ignore-scripts in the profile
directory. Restart DSH and hard-refresh afterwards.
localhost:51121.A newly added account becomes active. Removing one deletes only that local
credential; removing the active account selects the next saved account. The
single antigravity entry in the DSH model picker always uses the active
account. Existing v1 single-account files migrate automatically without a new
sign-in.
For a remote/headless browser, paste the full callback URL
(http://localhost:51121/oauth-callback?…) into the field provided. Requested
Google scopes: aicode, cloud-platform, userinfo.email, userinfo.profile,
cclog, experimentsandconfigs; review them before approving.
Public model ids mirror the Antigravity CLI catalog; each exposes only the
thinking levels the backend advertises (thinking effort maps to the backend's
runtime ids — see SPEC.md):
| Model | Input | Thinking |
|---|---|---|
gemini-3.8-flash | text, image | low / medium / high |
gemini-3.7-flash | text, image | low / medium / high |
gemini-3.6-flash | text, image | low / medium / high |
gemini-3.5-flash | text, image | low / medium / high |
gemini-3.1-pro | text, image | low / high |
claude-sonnet-4-6 | text, image | high |
claude-opus-4-6 | text, image | high |
gpt-oss-120b | text | medium |
Model availability, entitlement, and quota are account-dependent. Gemini
3.8 Flash works by presenting the agy CLI request fingerprint (older
VS Code extension headers get the legacy catalog instead), with transparent
fallback to Gemini 3.7 Flash should a runtime id ever 404. Settings
fetches quotaInfo separately for every saved account; these are best-effort
runtime-model snapshots, not a promise that different models share one pool.
flowchart LR
A["llm-pi-ai Antigravity route"] --> B["Loopback proxy 127.0.0.1:51122"]
B -->|streamGenerateContent| C["Cloud Code Assist daily endpoint"]
D["Google OAuth PKCE"] --> E["Local account pool"]
E --> F["Active account router"]
F --> B
llm-pi-ai.providers via
the settings service — per-provider merge; your own edits to models are
preserved, and other providers are never touched.127.0.0.1 only and translates OpenAI chat completions
(streaming SSE and JSON) into Cloud Code Assist envelopes, including tool
calls, image inputs, thinking → reasoning_content, and quota-friendly
error mapping. Override the port with DSH_ANTIGRAVITY_PROXY_PORT.ANTIGRAVITY_ACCESS_TOKEN); an empty pool removes the seam value.$DSH_HOME/.antigravity-auth.json (0600, atomic writes). They are never sent
to the browser RPC, logged, or exported, and go only to Google's OAuth and
Cloud Code Assist endpoints. Upstream error text is redacted and bounded.$DSH_HOME/.antigravity-auth.json yourself for a full wipe.package.json (dependency + bundle
entry); it never reads credentials, never runs lifecycle scripts, and never
stops/restarts DSH.npm install # test-only tooling; the plugin itself has zero runtime deps
npm run check # syntax checks + full test suite
npm test
The test suite covers the installer contract (temporary DSH_HOME installs,
repeats, status, uninstall, malformed manifests, argument errors, rollback),
v1→v2 credential migration, multi-account OAuth and refresh isolation,
quota-only failover concurrency, the translation layer, loopback proxy, route
provisioning, credential sync, per-account usage, locale parity, and pack
contents.