GigaChat plugin for DeepSeek Harness: an OAuth2 proxy
dsh-llm-gigachat
A DeepSeek Harness plugin that adds Sber GigaChat models to the regular model picker with a built-in OAuth2 proxy and automatic provider setup
- 0 ★ on the repository
- Last commit
Extended access
Why this level
- Keeps the GigaChat key in the profile and passes it to the OAuth exchange with Sber
- The local proxy on port 8787 accepts requests with no separate protection
Install
- Services
Manual install
dsh plugin --profile web add dsh-llm-gigachatThe README command, then add the plugin to the profile `dsh.profile.bundles` and restart `dsh web`.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Keeps the GigaChat key in the profile and passes it to the OAuth exchange with Sber
- The local proxy on port 8787 accepts requests with no separate protection
This is third-party code. Review the repository files before installing.
What it does
An npm plugin for DeepSeek Harness (`dsh`) connects Sber GigaChat models so the provider appears on the Settings, Models page and in the regular model picker. The harness cannot talk to GigaChat by itself: Sber issues tokens by OAuth 2.0 Client Credentials and the built-in OpenAI-compatible gateways do not know that exchange. The plugin handles it: it swaps the key for a token, caches the token for 30 minutes, queues requests because a personal plan allows about one parallel request, retries degenerate `<` replies and translates tool calls into the `functions` and `function_call` format. Only `GigaChat-3-Ultra` and `GigaChat-3-Pro` hold agentic mode with tools reliably and lighter models run without tools.
Who it is for. Developers who run DeepSeek Harness and want an agent on the Russian GigaChat model through a key from the Sber console.
Good fit when
- An agent harness has to run on GigaChat and the built-in gateways return 401 because of OAuth2
- GigaChat should appear in the regular model list with no separate external proxy
- A personal plan allows one parallel request and a queue is needed instead of 429 replies
- Before launching you want to check the configuration without starting the server using `--dump-config`
Not a fit when
- The agent is not DeepSeek Harness: the plugin is written for its profiles and `bundles` list
- You need tools on lightweight GigaChat models: they hallucinate calls and the plugin disables tools for them
- You need to work without Node.js and pnpm: installation goes through them
Example request
Switch the model to GigaChat-3-Pro, read the project README and list the open questionsLimitations
The plugin targets DeepSeek Harness only and is attached through `dsh.profile.bundles` in the profile `package.json`, after which `dsh web` has to be restarted. The GigaChat key is pasted by hand in settings and kept by the user in the profile. The personal plan limit is about one parallel request, requests run in a queue and several agents working at once slow down. The lightweight models `GigaChat-3-Lightning` and `GigaChat-2*` run without tools by default through `stripToolsFor`. There are no stars, one author and an early version.
How to disable. Remove `dsh-llm-gigachat` from `dsh.profile.bundles`, follow the Rollback section of the README and restart `dsh web`.
FAQ
Why a plugin when OpenAI gateways exist?
The built-in harness gateways cannot do the two-step swap of a key for a Sber OAuth2 token, so a direct connection returns 401. The plugin contains that swap.
Which models work with tools?
`GigaChat-3-Ultra` and `GigaChat-3-Pro`. Lighter models confuse schemas or invent calls, so they run without tools by default.
How do I check the setup safely?
The `--dump-config` flag prints the configuration without starting the server and the README calls this check mandatory before the first run.
What do I do with the key?
Paste the `base64(client_id:client_secret)` value into the API key field of the Sber GigaChat row on the Settings, Models page and press Apply.
Can I go without the plugin?
Yes, run the external `gigachat-proxy.mjs` on port 8787 and add a custom provider at `http://127.0.0.1:8787/v1`, but the plugin is simpler.
Discussion
No questions or reviews yet.
Related
All GigaChat toolsA local proxy exposing GigaChat through OpenAI- and Anthropic-compatible APIs so it can drive Claude Code, aider and other agents
An ai-forever proxy that serves GigaChat through OpenAI, Anthropic and Gemini APIs so Claude Code, Codex and Gemini CLI can run on it
Eight skills for coding against the GigaChat API: choosing a layer, access setup, SDK, LangChain, gpt2giga and Deep Agents
MCP server for the GigaChat API
GigaChat API
A small Python MCP server for Sber's GigaChat API: authorizes with a Basic key and calls the models directly from an agent, tested on OpenCode under Windows
An unofficial Chrome extension adds an MCP button to the giga.chat chat: servers by URL, OAuth 2.1, local programs and confirmation of every call
GigaCode Proxy for editors: Cline, Roo Code, Continue
GigacodeOpenaiProxy
A dependency-free proxy connects GigaCode to Cline, Roo Code, Continue and Open WebUI, repairs tool call cuts and signs in with SberID
README in short
The README comes in English and Russian: a table of contents, three install routes (npm, GitHub repository, a local copy), a `--dump-config` check, step-by-step provider setup, an OAuth2 explanation and a settings table. It ends with rollback, uninstall and troubleshooting. Sample settings are in `examples/settings.yaml`.