Migrating from v1.0
What changed
v1.0 shipped as npm install inference-relay plus import 'inference-relay/auto' in your Node code. The library intercepted Anthropic SDK calls in-process, drove a Claude CLI subprocess, returned the result.
v1.1+ ships as a desktop app + standalone Rust daemon. The daemon binds 127.0.0.1:7421 and accepts standard Anthropic-shape HTTP. Your code points its SDK at the daemon via baseURL instead of importing a library.
Both ship today. Both will continue to ship for the foreseeable future. v1.0 is on /docs; v1.1+ is on /docs/daemon.
When you should migrate
Migrate to v1.1 if...
- Your stack is not Node
- You want to call from Python / Go / Rust / curl
- You need per-call statelessness (SDK contract)
- You're building agent orchestrators with multi-turn loops
- You want background-daemon operation
- You want auto-updates without re-deploying
Stay on v1.0 if...
- Your stack is Node-only and you want zero external processes
- You're shipping IR inside a Node container image
- You're satisfied with v1.0's shared-state model
- You don't need the new agent surface
- You want IR to live and die with your Node process
- You version-pin via
package.jsonand that's fine
The features unique to v1.0 today — multi-provider cascade, compileInstruction() IP-protection helper, in-process RelayStream — are NOT in v1.1. If your code depends on them, stay on v1.0 until v1.1 catches up (multi-provider is on the roadmap; the others are mode-specific to the library shape and will remain v1.0-only).
How to migrate
Three steps. Most v1.0 codebases take <30 minutes.
Step 1 — Install v1.1
Download the desktop installer from /changelog/v1.1, launch once, paste the same ir_live_...license key you've been using. Keys are valid across versions; no need to provision a new one.
Step 2 — Edit your code
Remove the v1.0 import + auto-patch. Replace with baseURL:
// v1.0 import 'inference-relay/auto'; import Anthropic from '@anthropic-ai/sdk'; const client = new Anthropic(); // auto-patched
// v1.1
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
apiKey: 'unused',
baseURL: 'http://localhost:7421',
});The Anthropic SDK calls themselves are identical. Tool definitions, streaming, attachments, system prompts — all unchanged.
Remove the inference-relay package from package.json:
npm uninstall inference-relay
Step 3 — Adjust deploy
The daemon needs to be running on every machine your code calls from. For local dev: launch the desktop app. For servers / CI: see Headless for launchd / Task Scheduler recipes.
If you're shipping IR inside a container image, v1.1's model doesn't fit cleanly — you'd be running a daemon inside the same container as your app. For containerized deploys, stay on v1.0 until we ship a container-friendly distribution path.
What if I want to run both?
You can. v1.0's npm library doesn't conflict with v1.1's daemon — they listen on different mechanisms (in-process vs 127.0.0.1:7421). One codebase might use v1.0 (because it's Node-only and containerized), another might use v1.1 (because it's Python). Same license key works for both.
The exception is license cap enforcement. v1.0 and v1.1 share the same monthly usage cap on your subscription. Calls from either flavor count against the same number. Mix freely; just don't expect double-counted headroom.
What about the docs I memorized?
Most v1.0 doc pages stay at their URLs:
/docs/getting-started— v1.0 install path, unchanged for v1.0 users/docs/whitepaper— Architecture paper, applies to both versions/docs/advisory-opinion— Legal, version-agnostic/docs/security— Security axes, v1.1 sibling at/docs/daemon/security/docs/enterprise— Shadow AI, compliance, version-agnostic/docs/providers,/docs/routing,/docs/fallback— v1.0-only (multi-provider cascade)/docs/streaming,/docs/instruction-protocol,/docs/mcp— v1.0 library APIs
The v1.0 pages display a small banner pointing at the v1.1 equivalent where one exists.
Concepts that map between versions
Same architectural intent, different surface:
- Native Subscription Gateway → The daemon's PTY-driven
claudesubprocess - Auto-patch (
import 'inference-relay/auto') →baseURLoverride - Authorized Execution Environment → Your
claudeinstall on the host - Dumb Pipe Guarantee → Same — the daemon adds no business logic
- RS256 license trust chain → Same — identical pubkey + endpoint
- RelayStream → Anthropic SDK's standard streaming
- Three integration levels → Just one:
baseURL
Where to go next
- 5-minute install → Quickstart
- Per-language SDK examples → SDK Integration
- Headless deploy → Headless
- Still on the fence → email support@inference-relay.com with your stack details; we'll tell you which version fits.