Show HN: Anyclaude-SDK – Claude Code-Style SDK for OpenAI/Anthropic Endpoints Anyclaude-SDK, a new open-source SDK that brings Claude Code-style agent capabilities to any OpenAI- or Anthropic-compatible LLM endpoint, has been released on npm. The SDK supports multi-agent teams, MCP servers, and runs in the browser via WebContainer, Node, and Bun without requiring a backend or OAuth. It exposes the same interface as the official Anthropic Claude agent SDK, allowing code written for that SDK to work unchanged. Claude Code agent capabilities — tools, the tool loop, multi-turn conversations, MCP, sub-agents, multi-agent teams , sessions — against any OpenAI- or Anthropic-compatible LLM endpoint , running in the browser WebContainer https://webcontainers.io , Node , and Bun . No backend required, no OAuth, no native binaries. Live demo: a full IDE running in your browser ·Docs: anyclaude-docs.puter.site ·React UI kit: anyclaude-react It exposes the same query async-generator interface and the same SDKMessage envelope as @anthropic-ai/claude-agent-sdk , so code written against the official SDK can iterate our output unchanged. Multi-agent teams go beyond one agent: a coordinator delegates board tasks to worker sub-agents in parallel, you can dispatch a message to a running worker and have it land on its next tool round push delivery, like the message queue , supervise them live with background dispatch, block for the next finished worker with event-driven — integrate each result as it lands, no busy-polling , and even run agents in wait for worker separate Web Workers or browser tabs that share one mailbox via BroadcastChannelMailbox . See Teams & sub-agents https://anyclaude-docs.puter.site/teams.html . npm install anyclaude-sdk @webcontainer/api @webcontainer/api is an optional peer dependency — only needed if you use WebContainerWorkspace . You can supply your own FileSystem / CommandExecutor . js import { WebContainer } from '@webcontainer/api' import { query, WebContainerWorkspace, createOpenAIClient, ALL CLAUDE CODE TOOLS, } from 'anyclaude-sdk' // 1. Boot a WebContainer and wrap it as a workspace. const wc = await WebContainer.boot const workspace = new WebContainerWorkspace wc // 2. Point at any OpenAI-compatible endpoint. const llm = createOpenAIClient { apiKey: import.meta.env.VITE OPENAI API KEY, baseUrl: 'https://api.openai.com/v1', // or Groq, Together, OpenRouter, local… model: 'gpt-4o', } // 3. Run the agent — same shape as the official SDK. for await const msg of query { prompt: 'List the files and summarize the project', workspace, llm } { if msg.type === 'assistant' { for const block of msg.message.content { if block.type === 'text' console.log block.text } } else if msg.type === 'result' && msg.subtype === 'success' { console.log 'Done:', msg.result } } Connect external MCP servers or define in-process tools. Because browsers block direct cross-origin MCP fetches CORS , pass a mcpProxy for remote servers: js import { createSdkMcpServer, tool } from 'anyclaude-sdk' const calc = createSdkMcpServer { name: 'calc', tools: tool 'add', 'Add two numbers', { type: 'object', properties: { a: { type: 'number' }, b: { type: 'number' } }, required: 'a', 'b' }, args = { content: { type: 'text', text: String args.a + args.b } } , } query { prompt, workspace, llm, mcpServers: { calc, // in-process, no network docs: { type: 'http', url: 'https://mcp.example.com' }, // remote }, // Route remote MCP through a CORS proxy function, {url} / {rawUrl} template, or bare prefix : mcpProxy: 'https://my-proxy.example/?url={url}', } Remote tools are exposed as mcp