247420/thebird
247420 / anentrypoint

agentic os.
zero server.

thebird is a browser-native operating system — agentic AI chat, a full POSIX terminal, live preview, and an IndexedDB filesystem. loads in the browser like a webpage. no Docker. no server. no install.

why? safe agentic orchestration needs an isolated runtime — traditionally that means a Docker container per user. thebird replaces that with the browser: POSIX + Node.js in V8, sandboxed by design, spun up in milliseconds, accessible anywhere. your api key never leaves localStorage.

source ↗
$ npm install acptoapi
zero cold start
browser loads in ms. no container spin-up. no provisioning.
🔒
sandboxed by default
V8 isolate + browser security model. no root access. no escape.
🌐
works anywhere
any device with a browser. phones, tablets, locked-down corp laptops.
🗄️
persistent storage
IndexedDB filesystem survives reloads. install npm packages. write files.
🔑
api key stays local
stored in localStorage. never sent to any proxy. zero server trust required.
why browser-native?

the docker problem

every agentic AI workflow needs a safe place to run code — read files, execute shell commands, install dependencies. the default answer is Docker: one container per user, per session. that means servers, provisioning, cost, latency, and ops burden. thebird eliminates all of it by moving the sandbox into the browser tab.

browser as runtime

V8 already implements a full JavaScript engine. xstate v5 provides a state machine for orchestrating shell execution. IndexedDB gives you a persistent filesystem. a service worker intercepts HTTP to serve files from that filesystem. thebird wires these four primitives together into a real POSIX shell + Node REPL, no native dependencies required.

fast agentic loop

when an AI agent wants to run a command, it calls run_command. the shell executes it in V8, returns stdout. no HTTP round trip to a backend, no container spawn, no SSH. latency is measured in microseconds. the agent can iterate 100x faster than any remote sandbox.

acptoapi: any provider

the AI routing layer (acptoapi) translates any Anthropic-format message to Gemini, OpenAI, or 20+ providers in-browser. no proxy server needed. the format registry × provider registry design means adding a new provider is one file. circuit breaker, retry, stream guards, capability stripping — all in-browser.

capabilities

agentic chat

tool-calling AI chat running entirely in-browser via acptoapi. tools: read_file, write_file, list_files (idb-backed), run_command, read_terminal, send_to_terminal. no proxy server required. streaming events.

in-browser tool-use streaming

posix terminal

browser-native shell (xstate v5 state machine, V8 eval) backed by IndexedDB. built-ins: ls, cat, cd, mkdir, rm, cp, mv, echo, env, export, node, npm install, grep, sed, sort, uniq, tr. node repl with persistent scope + require() from idb node_modules.

posix node repl idb-fs

live preview

iframe served by a service worker reading files from IndexedDB at /preview/*. hot-reloads 5s after any file write. build and run html/css/js apps entirely in-browser, no webpack, no vite, no bundler needed.

service worker hot reload serverless

acptoapi bridge

translate any Anthropic-format message to Gemini, OpenAI-compat, or any configured provider. format registry × provider registry. xstate streaming actor. flowie transform pipelines. normalized event stream.

multi-provider streaming zero-config

idb filesystem

persistent IndexedDB-backed virtual filesystem. files survive page reloads. npm packages install and require() from idb node_modules. http.createServer polyfill for running express-style servers entirely in-browser.

persistent node compat serverless

sdk clients

drop-in Anthropic and OpenAI SDK clients via acptoapi. new Anthropic({provider,apiKey}) backed by any provider. works in-browser and in node. circuit breaker, capability stripping, stream guards included.

anthropic sdk openai sdk browser

http proxy server

server.js exposes a local Anthropic-compatible proxy at localhost:3456 backed by acptoapi. route /v1/messages to any provider. /debug/state endpoint for live circuit-breaker and provider state inspection.

local proxy observability

multi-provider routing

createRouter() picks provider+model per request based on taskType and token count. circuit breaker per provider, capability registry, retry with backoff. gemini, openai-compat, 20+ providers. failover automatic.

routing circuit breaker retry
project receipt● live
statuslive · ships continuously
licenseMIT
runtimebrowser (V8) + node ≥18
server requirednone — 100% serverless
depsacptoapi, floosie, @google/genai, xstate
frontendno framework · vanilla js + webjsx
storageIndexedDB (no server, no cloud)
api keylocalStorage only · never leaves browser
providers
gemini openai together fireworks perplexity groq ollama openrouter 20+ more
architecture
thebird  (browser web os)
  ├── docs/          browser UI (GH Pages)
  │     ├── chat     agentic AI · tool calling
  │     ├── terminal posix shell · node repl · idb-fs
  │     └── preview  service worker · hot reload
  ├── serve.js       local static file server
  └── server.js      anthropic-compat proxy

acptoapi  (npm — runs in browser + node)
  ├── lib/formats/   anthropic · openai · gemini · acp
  ├── lib/providers/ gemini · openai-compat · router
  ├── lib/machine.js xstate v5 streaming actor
  ├── lib/translate  any format → any provider
  └── lib/sdk/       Anthropic + OpenAI SDK clients

browser sandbox  (replaces Docker)
  ├── V8             javascript execution engine
  ├── xstate v5      shell state machine orchestrator
  ├── IndexedDB      persistent virtual filesystem
  └── ServiceWorker  HTTP server from IDB files
quick start
open in browseranentrypoint.github.io/thebird ↗
local devnode serve.js → localhost:8080
proxy servernode server.js → localhost:3456
acptoapi sdknpm install acptoapi
sourcegithub.com/AnEntrypoint/thebird ↗
· no server · source ↗