OpenClaw: Use All Major AI Models NO API Token! Claude/ChatGPT/Gemini/DeepSeek/Doubao/Grok/Qwen/Manus/Kimi
OpenClaw: Use All Major AI Models NO API Token! Claude/ChatGPT/Gemini/DeepSeek/Doubao/Grok/Qwen/Manus/Kimi
Use LLMs without API tokens — log in via browser once, then call ChatGPT, Claude, Gemini, DeepSeek, Qwen (intl/cn), Doubao, Kimi, Zhipu GLM, Grok, Xiaomi MiMo, Manus and more for free through a unified gateway.
English | 简体中文
OpenClaw Zero Token is a fork of OpenClaw that focuses on removing API token cost by driving the official web UIs (browser login) instead of paid API keys.
| Traditional usage | Zero Token way |
|---|---|
| Buy API tokens | Completely free |
| Pay per request | No enforced quota |
| Credit card required | Browser login only |
| API tokens may leak | Credentials stored local |
| Provider | Status | Models (examples) |
|---|---|---|
| DeepSeek | ✅ tested | deepseek-chat, deepseek-reasoner |
| Qwen International | ✅ tested | Qwen 3.5 Plus, Qwen 3.5 Turbo |
| Qwen China | ✅ tested | Qwen 3.5 Plus, Qwen 3.5 Turbo |
| Kimi | ✅ tested | Moonshot v1 8K / 32K / 128K |
| Claude Web | ✅ tested | claude-sonnet-4-6, claude-opus-4-6, claude-haiku-4-6 |
| Doubao | ✅ tested | doubao-seed-2.0, doubao-pro |
| ChatGPT Web | ✅ tested | GPT-4, GPT-4 Turbo |
| Gemini Web | ✅ tested | Gemini Pro, Gemini Ultra |
| Grok Web | ✅ tested | Grok 1, Grok 2 |
| GLM Web (Zhipu) | ✅ tested | glm-4-Plus, glm-4-Think |
| GLM Web (International) | ✅ tested | GLM-4 Plus, GLM-4 Think |
| Xiaomi MiMo | ✅ tested | MiMo 2.0, MiMo 2.5 Pro |
| Manus API | ✅ tested | Manus 1.6, Manus 1.6 Lite (API key, free quota) |
Web models can call local tools (web_search, web_fetch, exec, read, write, message) via prompt-injected tool definitions. Based on arXiv:2407.04997 and ComfyUI LLM Party (5k+ stars).
11/13 web models support tool calling (verified):
| Model | Tool Calling | Chat | Notes |
|---|---|---|---|
| DeepSeek | ✅ | ✅ | exec: list desktop files |
| Kimi | ✅ | ✅ | All 6 tools verified |
| Claude | ✅ | ✅ | web_search OK |
| ChatGPT | ✅ | ✅ | web_search OK |
| Qwen CN | ✅ | ✅ | web_search OK |
| Qwen Web | ✅ | ✅ | web_search OK |
| Grok | ✅ | ✅ | web_search OK |
| Gemini | ✅ | ⚠️ | web_search OK, DOM polling unstable |
| Xiaomi MiMo | ✅ | ✅ | web_search OK |
| GLM | ✅ | ✅ | Tool calling and chat OK |
| GLM Intl | ✅ | ✅ | Tool calling and chat OK |
| Doubao | ❌ | ⚠️ | Excluded (stream parser limitation) |
| Perplexity | — | ✅ | Search engine, no tool injection |
The middleware (src/zero-token/tool-calling/) only injects tool prompts when keywords in the user message suggest a tool action — normal chat stays short to reduce ban risk.
Agent file access is restricted by the configured workspace directory (see agents.defaults.workspace).
AskOnce: one question, answers from all models.
AskOnce can broadcast a single query to multiple configured providers and show their replies side by side.
…
1. Start browser
openclaw gateway ──▶ Chrome (CDP: 18892, user-data-dir)
2. User logs in
Browser ──▶ https://chat.deepseek.com (scan / password login)
3. Capture credentials
Playwright CDP ──▶ listen network requests
└─▶ intercept Authorization header + cookies
4. Store credentials
auth.json ◀── { cookie, bearer, userAgent }
5. Call web API
DeepSeek WebClient ──▶ DeepSeek Web API ──▶ chat.deepseek.com
(reuses stored cookie + bearer token)
Platforms
- macOS / Linux: follow START_HERE.md; full install/config in INSTALLATION.md.
- Windows: use WSL2 and then follow the Linux steps. Install WSL2:
wsl --install, docs: https://docs.microsoft.com/windows/wsl/install
First-time:
1. Build pnpm install && pnpm build && pnpm ui:build
2. Start Chrome ./start-chrome-debug.sh
3. Login sites Qwen intl/cn, Kimi, DeepSeek, ...
4. Onboard ./onboard.sh webauth
5. Start server ./server.sh
Daily:
start-chrome-debug.sh → onboard.sh → server.sh
server.sh [start|stop|restart|status] manages the gateway
Script overview (core 3 scripts):
| Script | Purpose | When to use |
|---|---|---|
start-chrome-debug.sh |
Start Chrome in debug mode | Step 2: open browser on port 9222 for logins + onboarding |
onboard.sh |
Auth/onboarding wizard | Step 4/5: select provider (e.g. deepseek-web) and capture credentials |
server.sh |
Manage gateway service | Step 5 & daily use: start / stop / restart / status on port 3001 |
git clone https://github.com/linuxhsj/openclaw-zero-token.git
cd openclaw-zero-token
pnpm install
pnpm build
pnpm ui:build
# Start Chrome in debug mode (keep this terminal open)
./start-chrome-debug.sh
# Log into each web model in the browser tabs that open
# (DeepSeek, Qwen, Kimi, Claude, ChatGPT, Gemini, Grok, etc.)
# In a NEW terminal, run the auth wizard
./onboard.sh webauth
./server.sh
Open the Web UI at the URL printed in the terminal.
ERR_MODULE_NOT_FOUND)rm -rf dist dist-runtime node_modules
pnpm install
pnpm build
pnpm ui:build
./server.sh restart
Note: Always use
pnpm build(notnpm run build). If you see hash mismatch errors likeCannot find module dist/xxx-HASH.js, do a clean rebuild as shown above.
./server.sh
This will start the HTTP gateway and Web UI.
After ./server.sh the Web UI is started automatically. Open it in your browser and chat with any configured model.
Use /model inside the chat box:
# Switch to Claude Web
/model claude-web
# Switch to Doubao
/model doubao-web
# Switch to DeepSeek
/model deepseek-web
# Or specify exact models
/model claude-web/claude-sonnet-4-6
/model doubao-web/doubao-seed-2.0
/model deepseek-web/deepseek-chat
Claude Web: Prefer the full model id:
/model claude-web/claude-sonnet-4-6(matches the catalog default)./model claude-webalone can fail to resolve or pick the intended model in some setups.
/models
Important: Only providers configured via
./onboard.sh webauthare written intoopenclaw.jsonand shown in/models.
The output shows:
claude-web, doubao-web, deepseek-web)Example:
Model Input Ctx Local Auth Tags
doubao-web/doubao-seed-2.0 text 63k no no default,configured,alias:Doubao Browser
claude-web/claude-sonnet-4-6 text+image 195k no no configured,alias:Claude Web
deepseek-web/deepseek-chat text 64k no no configured
curl http://127.0.0.1:3001/v1/chat/completions \
-H "Authorization: Bearer YOUR_GATEWAY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-web/deepseek-chat",
"messages": [{"role": "user", "content": "Hello!"}]
}'
node openclaw.mjs tui
openclaw.json…
./onboard.sh webauth
The wizard will create all required directories and basic files.
If you already ran the project but see missing-directories or similar errors:
node dist/index.mjs doctor
The doctor command will:
Limitations:
openclaw.jsonauth-profiles.json./onboard.sh webauthTo add a new web provider you usually need:
src/zero-token/providers/{platform}-web-auth.ts)export async function loginPlatformWeb(params: {
onProgress: (msg: string) => void;
openUrl: (url: string) => Promise<boolean>;
}): Promise<{ cookie: string; bearer: string; userAgent: string }> {
// Automate browser login and capture credentials
}
src/zero-token/providers/{platform}-web-client*.ts)export class PlatformWebClient {
constructor(options: { cookie: string; bearer?: string }) {}
async chatCompletions(params: ChatParams): Promise<ReadableStream> {
// Call platform web API
}
}
src/zero-token/streams/{platform}-web-stream.ts) and register it in web-stream-factories.tsexport function createPlatformWebStreamFn(credentials: string): StreamFn {
No open issues yet, or sync has not completed.