TinkerClaw Tinker Bridge
Tinker Bridge — drive the real Claude Code CLI as a persistent per-session subprocess from OpenClaw/TinkerClaw, inheriting your existing claude OAuth login so your Claude Code subscription works as a first-class streaming model provider (thinking + tools). Uses your own Claude OAuth; review Anthropic's terms before distributing.
Install
openclaw plugins install clawhub:@globalcaos/tinker-bridgetinkerclaw-tinker-bridge
⚠️ Fork-only — not for general installation.
This plugin scripts the
claudeCLI's stream-json interface to drive your gateway off your Claude Code subscription. Anthropic's ToS for the subscription is silent on this exact pattern, but it lives in the gray zone and we don't want to invite a ToS update that breaks it.The package stays
"private": trueandpublishToNpm: false. It's not on npm. If you cloned this fork to use it, that's fine — single-user personal use is the intended scope. Don't redistribute.
What it does (briefly)
Spawns a long-lived claude subprocess per gateway session and shims its NDJSON stream into OpenClaw's StreamingEvent interface. Your existing ~/.claude/.credentials.json OAuth powers the model. No API key.
What it needs
- Active
claudeCLI install + login. - OpenClaw gateway running (this fork).
- Node 22+.
Configuration
Optional knobs in openclaw.json under plugins.entries.tinkerclaw-tinker-bridge.config:
| key | default | description |
|---|---|---|
binary | claude (PATH) | Absolute path to the claude CLI binary. |
cwd | ~/.openclaw/jarvis-workspace | Working dir for each subprocess. Used for CLAUDE.md loading + transcript persistence. |
disallowedTools | ["Agent","ExitPlanMode","AskUserQuestion","TodoWrite","TaskCreate","TaskUpdate","TaskList","TaskGet","TaskStop","TaskOutput"] | Tools to disable inside claude. See "Authority" below — the default is permissive. |
warmOnBoot | [] | Session keys to pre-spawn at gateway start (eliminates ~10s cold-start on first turn). |
Authority — read this before installing
This plugin gives the claude subprocess broad authority on your machine, by design. Stating it plainly because the defaults are permissive, not restrictive:
Bash,Read,Write,Edit,GrepandGlobare ENABLED by default. The subprocess can read, write and execute anything your user account can. ThedisallowedToolsdefault only blocksAgent(which would fork moreclaudeprocesses) and Claude Code's own IDE/task-UX tools, which don't apply to a gateway session.- The subprocess runs with
--permission-mode bypassPermissions. It does not stop to ask you before a tool call. That is what makes an unattended gateway session work, and it is also why the point above matters. - It runs in
cwd(default~/.openclaw/jarvis-workspace) and loads whateverCLAUDE.mdit finds there.
If you want a restrictive profile, set disallowedTools explicitly in your config — the config value replaces the default list entirely, it does not merge with it.
Models
claude-code/claude-opus-4-7, claude-code/claude-sonnet-4-6, claude-code/claude-haiku-4-5 — matches your subscription tier.
Why fork-only
- ToS gray zone. Subscription-driven scripted use is not explicitly endorsed; mass-distributing a tool that does this could trigger Anthropic's response.
- Cold-start cost. Each new session spawns a subprocess. Doesn't scale to many users.
- OAuth refresh races. Single-user serialization works; multi-user would need a refresh-token coordinator that doesn't exist yet.
If Anthropic ever endorses Channels for this use case, we'd ship a proper public plugin then. Until then, fork-only.
License
Apache-2.0 source, but: see warning above re. distribution.
