infinibot
v2026.10.7
Published
Personal AI assistant — multi-channel gateway with agent orchestration
Readme
InfiniBot OS — Personal AI Assistant
A personal AI control room you run on your own machine. Chat, voice, video editing, business CRM, kanban projects, mobile companion app, federation across devices, and ~20 more features — all behind one local gateway. Your keys, your data, your hardware.
InfiniBot answers you on the channels you already use (WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, Microsoft Teams, WebChat). It can speak and listen on macOS/iOS/Android, render a live Canvas, edit videos, manage your business pipeline, and run autonomous tasks in the background.
⚡ Quick Start
No account is needed. A self-hosted InfiniBot has no sign-in, no plan limits and no message caps: everything is unlocked, and you bring your own model keys (or a local model via Ollama).
Install (npm package)
One line per platform. Each installs the infinibot npm package and opens the setup wizard:
| Platform | One-liner |
|----------|-----------|
| macOS / Linux / WSL | curl -fsSL https://infinibotos.com/install.sh \| bash |
| Windows (PowerShell) | iwr -useb https://infinibotos.com/install.ps1 \| iex |
| Any OS with Node 22.12+ and git | npm i -g infinibot && infinibot onboard |
| Try without installing | npx -y infinibot@latest onboard |
The scripts add Node.js and git if they are missing; they never touch ~/.infinibot. Then:
infinibot gateway # Dashboard → http://127.0.0.1:18789 (log in with your gateway password)infinibot quickstart runs the same setup in your browser instead of the terminal, and infinibot update upgrades later. Details: docs/install/.
The rest of this section builds from a source checkout instead, which is what you want for development.
0 · Prerequisites for a source build (any OS)
- Node.js 22.12+ (
nvm installpicks up the repo's.nvmrc) - pnpm: run
corepack enable(ships with Node), ornpm install -g pnpm - git
1 · Clone, install, build
git clone https://github.com/MrYungCEO/InfiniBot.git
cd InfiniBot
pnpm install # installs exactly what pnpm-lock.yaml pins
pnpm build:all # backend + control UI (same as: pnpm build && pnpm ui:build)Or run the setup script. It checks your Node/pnpm versions, then does the same install + build:
bash scripts/satellite-setup.sh # macOS / Linux
powershell -ExecutionPolicy Bypass -File scripts/satellite-setup.ps1 # WindowsIt never touches your git remotes or branches. Add --update (-Update on Windows) to fast-forward the current branch first. That step is skipped if you have local changes.
Windows: clone outside OneDrive (OneDrive sync corrupts
node_modules).
2 · Onboard
pnpm infinibot onboardThe wizard picks a model provider (paste an API key, or use Ollama) and sets a gateway password. It writes the config to ~/.infinibot/infinibot.json. To run it without prompts:
pnpm infinibot onboard --non-interactive --accept-risk --skip-daemon --skip-health \
--gateway-auth password --gateway-password "your-strong-password" \
--anthropic-api-key "sk-ant-..." # or --openrouter-api-key / --openai-api-key / ...Want a plain
infinibotcommand? Runpnpm link --globalonce in the repo. Everypnpm infinibot …below then also works asinfinibot ….
3 · Start the gateway
pnpm infinibot gateway
# Dashboard → http://127.0.0.1:18789 (log in with your gateway password)Useful flags: --port 47913; --bind lan for LAN access (needs a password); --auth password --password "…" to override the configured auth.
4 · Add a satellite (second device)
After the first device is up and running as master, see docs/federation/satellite-setup.md. On the satellite, run the same install steps above. The master's "Add Satellite Node" step generates the connection JSON the satellite needs.
For the full Quick Start with verification, troubleshooting, and platform notes: docs/QUICKSTART.md.
Silence federation-spawn prompts in Claude Code (one-time, per device)
If you drive InfiniBot through Claude Code, the harness will prompt every time it tries to spawn a sub-agent on a remote federated node — both mcp__infinibot__infinibot_sessions_spawn and its alias mcp__infinibot__sessions_spawn are gated separately. Pre-allowlist them once in ~/.claude/settings.json:
{
"permissions": {
"allow": [
"mcp__infinibot__infinibot_sessions_spawn",
"mcp__infinibot__sessions_spawn"
]
}
}Or run the bundled idempotent helper:
python3 scripts/allow-federation-spawns.pyWorks from a clone, or as a one-liner without cloning:
curl -fsSL https://raw.githubusercontent.com/<owner>/<repo>/main/scripts/allow-federation-spawns.py | python3 -The script merges into .permissions.allow, never clobbers existing entries, writes atomically, and keeps a .bak.
Run on every device that hosts a Claude Code session driving the federation (master and each satellite). After that, cross-node spawns go through silently.
Why not automatic? The Claude Code harness intentionally blocks any agent from auto-writing its own
permissions.allow— including via memory, sub-agent delegation, or a gateway startup hook. The one-time human-applied edit is the only path it accepts.
Pick your path (deep dive)
| You want… | Go to |
|---|---|
| The fast path | Quick Start above |
| Run from source after git clone | Run from source |
| A guided walkthrough with screenshots | Open setup.html in your browser |
| Just spin it up in Docker | Docker quickstart |
2 · Run from source
You cloned the repo. Here's the 5-minute path to a running gateway:
# 1. Node 22.12+ and pnpm
corepack enable # or: npm install -g pnpm
# 2. Install dependencies (from the committed lockfile) and build
pnpm install
pnpm build:all # backend (dist/) + control UI (dist/control-ui)
# 3. Onboard: model provider + gateway password
pnpm infinibot onboard
# 4. Start the gateway
pnpm infinibot gateway
# 5. Open the dashboard
# macOS: open http://127.0.0.1:18789
# Linux: xdg-open http://127.0.0.1:18789
# Windows: start http://127.0.0.1:18789Type your gateway password on the login screen → you're in.
pnpm buildwipesdist/, including the control UI, so always rebuild the UI after it.pnpm build:alldoes both in the right order.
What you'll see first
The Welcome walkthrough auto-loads on the /learn page — five short steps that teach you the navigation, send your first message, set your language preferences, and point you at the deeper guides. Total time: ~5 minutes.
From there, pick whichever feature matters to you:
- 💬 Chat & Sessions — single chat, multi-session grid, voice, sub-agents
- 🎬 Video Studio — composition editor, AI asset analysis, ComfyUI rendering
- 📋 Projects & Kanban — agent-runnable tasks with criticality + GitHub precheck
- 💼 Business Center — multi-business CRM, Whop/Stripe income sync, Notion two-way
- 📱 Mobile — Expo Go QR pairing or build a personal IPA
- 🌐 Federation — pair multiple machines into one agent fabric
- 🎓 Learn — 19 interactive walkthroughs + a Master Certification
Every feature has a step-by-step walkthrough on the /learn page. Complete the cert-required tracks and the system mints an InfiniBot AI Agent Systems Master certificate with your name and a verification fingerprint.
Common flags
# Accept connections from your LAN (default: localhost only)
pnpm start gateway --bind lan --auth password --password "..."
# Federation master mode — accept satellite pairings from other machines
pnpm start gateway --master-mode --bind lan --tailscale on --auth password --password "..."
# Disable Tailscale binding (if you don't have it installed)
pnpm start gateway --bind lan --tailscale off --auth password --password "..."
# Custom port
pnpm start gateway --port 47913 --auth password --password "..."Recommended .env for local dev
Drop this in the repo root as .env so you don't have to export keys every shell:
# Required for the agent to talk
ANTHROPIC_API_KEY=sk-ant-...
# Optional — fall through to these when Anthropic rate-limits
GEMINI_API_KEY=...
OPENROUTER_API_KEY=...
# Optional — voice (TTS), revenue providers, image generation
ELEVENLABS_API_KEY=...
STRIPE_SECRET_KEY=sk_...
WHOP_API_KEY=...
GEMINI_API_KEY=... # also powers Nano Banana image gen if you have it
COMFY_URL=http://127.0.0.1:8000 # local ComfyUI for storyboard / video studio.env is gitignored. The gateway loads it on startup.
3 · Docker quickstart
export INFINIBOT_GATEWAY_PASSWORD="your-strong-password" # required
docker compose build
docker compose up -d infinibot-gateway
# Dashboard → http://localhost:18789It boots with no account and no onboarding. The first time you log in from a browser, the gateway asks to pair that browser, because Docker traffic doesn't count as "local". Approve it once:
docker compose exec infinibot-gateway node dist/index.js devices list # find the pending request id
docker compose exec infinibot-gateway node dist/index.js devices approve <request-id>Then reload the page. State lives in the infinibot-state volume. Pass provider keys as env vars (ANTHROPIC_API_KEY, OPENROUTER_API_KEY, …) or add them later in the dashboard. To run CLI commands against the same state: docker compose run --rm infinibot-cli onboard. Plain Docker works too:
docker build -t infinibot:local .
docker run -p 18789:18789 -e INFINIBOT_GATEWAY_PASSWORD=change-me \
-v infinibot-state:/home/node/.infinibot infinibot:local4 · Federation Code Sync
InfiniBot's Federation Code Sync keeps every device in your federation on the same code revision, using GitHub as the hub:
- Any device can push code changes → GitHub → every other device pulls automatically
- Conflict-safe: detects uncommitted work before pulling, pauses with a clear message
- Cross-OS daemons: systemd (Linux), launchd (macOS), Scheduled Task (Windows)
- Meta tracking:
.federation-sync.jsonrecords each device's hostname, role, and last sync commit
Bootstrap a new satellite
# 1. Clone the repo and install deps
gh repo clone MrYungCEO/infinibotOS
cd infinibotOS
pnpm install
# 2. Set your identity
export FEDERATION_ROLE=satellite
export FEDERATION_GIT_REMOTE=origin
export FEDERATION_GIT_BRANCH=main
# 3. First sync (dry-run to verify)
pnpm federation-sync sync --dry-run
# 4. Live sync
pnpm federation-sync sync
# 5. Install the auto-sync daemon
bash scripts/bootstrap-federation-sync.sh satelliteManual commands
pnpm federation-sync status # Show HEAD, ahead/behind, uncommitted
pnpm federation-sync sync # Push local commits → pull remote changes
pnpm federation-sync sync --dry-run # Safe preview
pnpm federation-sync sync --remote origin --branch main
pnpm federation sync-status # Via CLI (federation sync-status)Environment variables
| Variable | Default | Purpose |
|---|---|---|
| FEDERATION_ROLE | master | Device role in the federation tree |
| FEDERATION_GIT_REMOTE | origin | Git remote to sync with |
| FEDERATION_GIT_BRANCH | main | Branch to track |
| FEDERATION_REPO_PATH | cwd | Path to the git repository |
| FEDERATION_NODE_ID | — | Federation node ID for metadata |
How it works
- Device A commits code → runs
federation-sync sync→ pushes toorigin/main - Device B's daemon (or manual run) fetches → sees it's behind → fast-forwards
- If Device B has uncommitted work → sync pauses and prints the conflict
.federation-sync.jsonrecords each device's identity in the sync trail- All operations log to
logs/federation-audit/code-sync-YYYY-MM-DD.log
Logs follow the existing logs/federation-audit/ pattern already used by the federation system.
What's actually inside
InfiniBot ships ~20 production-ready feature areas. The full list with a one-line description per feature lives in docs/index.md. Highlights:
| Surface | What it does | |---|---| | Chat / Voice / Grid | Multi-model, multi-session, multi-device chat with wake-word voice | | Agency World | Live 2D world where every agent walks between work zones in real time as it calls tools — the headline mesh view (toggle with the 3D Neural Mesh) | | Projects | Kanban with agent-runnable tasks, GitHub precheck, criticality gates | | Business | Multi-business CRM, revenue sync (Whop/Stripe/Square), Notion two-way | | Video Studio | Composition editor, AI asset analysis, ComfyUI image gen, ProRes render | | Storyboard | End-to-end AI video: prompt → script → scenes → images → VO → MP4 | | Federation | Master/satellite topology, Tailscale meshing, cross-device sessions | | Mobile | Expo Go QR pairing + EAS Build for personal IPAs | | Multi-user | Per-user home dirs, page gating, agent directory locking, language/context | | Learn | 19 interactive walkthroughs + Master certification | | Apps registry | Unified catalog of every project/site/directory you've built | | Skills + MCP | Claude Code skills + MCP servers for richer agent tool surfaces | | Cron + Autonomy | Scheduled tasks, idle-detection-driven work, Telegram approval gates | | Vault | Run a paid community/courses/membership product locally | | Funnels | Sales funnels with AI lead qualification + KPI tracking |
Each one has a dedicated page in the dashboard and a step-by-step walkthrough in /learn.
Documentation
- 📘
setup.html— friendly one-page setup with copy-buttons + FAQ - 📚
docs/index.md— full feature index - 🎓
/learn(in-app) — 19 interactive walkthroughs from beginner → master - 🛠
docs/QUICKSTART.md— single-command install - 🌐
docs/federation.md— multi-device setup - 📱
docs/storyboard.md— AI video pipeline - 🏙
docs/agency-world.md— the live 2D agent-mesh world
Use infinibot doctor to diagnose a misbehaving install.
Operating systems
| OS | Status | Notes | |---|---|---| | macOS (12+) | ✅ Native | iMessage, voice wake-word, all features | | Linux | ✅ Native | All features except iMessage | | Windows 11 | ✅ Native | Most features. WSL2 strongly recommended for federation + mobile | | Windows 10 | ⚠️ Use WSL2 | Native install works but some helpers expect bash |
Runtime: Node 22+. Works with npm, pnpm, or bun.
Troubleshooting
| Symptom | Fix |
|---|---|
| unknown method: ... on first request | Restart the gateway after pnpm install so the methods registry rebuilds |
| Login screen rejects your password | Stop the gateway, restart with --password "<your-password>" — passwords aren't read from .env |
| ComfyUI not reachable in storyboard / video studio | Default URL is http://127.0.0.1:8000. Override with COMFY_URL=http://your-host:port |
| Voice mode says "no Claude terminal selected" | Voice auto-spawns one when you Connect — give it 2 seconds |
| Federation satellite won't pair | Check master is running with --master-mode and the password matches on both sides |
| Anything else | infinibot doctor runs every diagnostic and prints what's wrong |
Contributing
Pull requests welcome. The project is a TypeScript monorepo (gateway server in src/, dashboard UI in ui/src/). Run pnpm test before sending PRs. See CONTRIBUTING.md.
License
InfiniBot — the AI OS is licensed under the
Functional Source License 1.1, Apache-2.0 future license
(FSL-1.1-ALv2). You can use, modify and self-host it for free, including
inside your company. You need a commercial license only to offer InfiniBot,
or a product that competes with it, to others as a commercial product or
service. Every release becomes Apache-2.0 two years after it ships.
- Plain-English FAQ:
LICENSING.md - Cloud, OEM and enterprise options:
COMMERCIAL.md - Name and logo use:
TRADEMARKS.md - Upstream and third-party credits:
NOTICE - Hosted-cloud fleet control plane (
src/fleet/**): proprietary, seesrc/fleet/LICENSE
Claude, Anthropic, OpenAI, Codex, Gemini, Google, OpenCode and other third-party names and logos are trademarks of their respective owners, used only to identify compatibility. They are not covered by InfiniBot's license and do not imply endorsement, sponsorship or affiliation.
"It's not a tool. It's a control room." — InfiniBot
