AI teammates you can give real work to, for free.
Bots that use their own computer, learn your workflows, work in parallel, and come back with finished work.
Plus a video brain that transcribes, understands and searches every video you own.
Quick start · Features · Screenshots · Demo video · How it works · Contributing
▶ A real, unedited capture of the desktop app running on a laptop with a local model. Watch the MP4
Always-on AI teammates arrived in 2026, but they sit behind expensive plans. OpenBot gives you the same idea for $0, on your own machine, with your own data.
| OpenBot | Grok Bot (xAI) | dots (OpenAI) | muse.ai | |
|---|---|---|---|---|
| Price | Free, MIT | SuperGrok Heavy / Cursor Ultra | ChatGPT Pro / Business Premium | Paid plans |
| Runs fully local & private | ✅ | ❌ | ❌ | ❌ |
| Bots with their own computer | ✅ sandboxed workspace | ✅ | ✅ | — |
| Group chats where bots hand off work | ✅ | ✅ | — | — |
| Learn a workflow once, repeat it (skills) | ✅ | ✅ | ✅ | — |
| Scheduled routines & proactive mode | ✅ | ✅ | ✅ | — |
| Allow / Ask / Block rules + approvals | ✅ | ✅ | ✅ | — |
| AI video search (speech + visuals) | ✅ | — | — | ✅ |
| Transcripts, chapters, clips, embeds | ✅ | — | — | ✅ |
| Bring any model (Ollama, Groq, Gemini…) | ✅ | ❌ | ❌ | — |
Option A: download the app. Grab OpenBot-…-mac-arm64.zip from the latest release, unzip it, move it to Applications, then right-click → Open (the app is unsigned). You'll still need ffmpeg and a free model: brew install ffmpeg ollama && ollama pull qwen3:8b.
Option B: run from source (macOS, Linux or Windows):
# 1. Install the free tools (macOS shown; Linux/Windows work too)
brew install node ffmpeg ollama
ollama pull qwen3:8b # any tool-capable model works
# 2. Get OpenBot
git clone https://github.com/satiricalguru/OpenBot.git
cd OpenBot && npm install
# 3. Launch the desktop app
npm run appTip
Prefer the browser? Run npm start and open http://localhost:4321.
To build a double-clickable OpenBot.app, run npm run dist; it lands in dist/mac-arm64/.
The first video you add downloads the open Whisper and CLIP models (~250 MB) once. After that everything runs offline.
Pick one in Settings → Brain. You can switch any time, or give each bot its own model.
| Provider | Cost | Good for |
|---|---|---|
| Ollama (default) | Free, local | Private, offline. Try qwen3:8b, llama3.1, gemma4, gpt-oss |
| LM Studio | Free, local | Any OpenAI-compatible local server |
| Groq | Free tier | Very fast Llama models |
| OpenRouter | :free models |
Lots of open models |
| Google Gemini | Free tier | OpenAI-compatible endpoint |
flowchart LR
subgraph App["🖥️ OpenBot desktop app (Electron)"]
UI["Messenger UI<br/>animated bots · Computer panel"]
end
UI <-- "REST + live events (SSE)" --> S["Local server<br/>Node + SQLite"]
S --> R["Agent runtime<br/>tools · rules · approvals"]
R --> T1["🌐 Web search & browse"]
R --> T2["⌨️ Sandboxed terminal & files"]
R --> T3["🧠 Memory · skills · routines"]
R --> T4["🤝 Handoffs & background tasks"]
R --> L["🦙 Free LLM<br/>Ollama · Groq · Gemini"]
S --> V["Video pipeline<br/>ffmpeg"]
V --> W["🗣️ Whisper<br/>speech → text"]
V --> C["👁️ CLIP<br/>frames → vectors"]
V --> E["🔎 MiniLM<br/>semantic search"]
Project structure
electron/ desktop shell: window, menu-bar icon, theme sync
server/
agents/ agent loop (runtime.js), tools + rules (tools.js), scheduler
video/ ffmpeg pipeline, Whisper/CLIP/MiniLM models, search & Q&A
llm.js Ollama + OpenAI-compatible providers
index.js REST API + live events
public/
js/bot.js procedural animated bot characters
js/chat.js messenger-style chat view
js/icons.js icon set
app.css design system (dark default + light)
scripts/
capture.cjs regenerates README screenshots/GIFs/video
docs/assets/ README media
Configuration
| Env var | Default | |
|---|---|---|
PORT |
4321 |
Server port |
OPENBOT_HOST |
127.0.0.1 |
Set 0.0.0.0 to share on your network (add auth first!) |
OPENBOT_DATA |
./data (dev) · ~/Library/Application Support/OpenBot/data (app) |
Database, videos, workspaces, models |
Agent tools
| Tool | Default rule | What it does |
|---|---|---|
web_search, browse |
Allow | Search DuckDuckGo, read pages |
read_file, list_files, write_file |
Allow | Work inside the bot's own workspace |
run_command |
Ask | Shell, sandboxed to the workspace |
http_request |
Ask | Call APIs and webhooks |
delete_file, schedule_routine |
Ask | Side effects need your OK |
remember, recall, save_skill |
Allow | Long-term memory and skills |
search_videos, ask_video, list_videos |
Allow | Use the video library |
message_agent, assign_task |
Allow | Collaborate with teammates |
notify_user |
Allow | Ping you when done |
- Everything (chats, files, videos, embeddings) stays in a local SQLite database and folder.
- The server listens on
127.0.0.1only, with no telemetry and no accounts. - Risky actions default to Ask. See SECURITY.md.
Warning
OpenBot has no login. Don't expose it to the internet without putting authentication in front of it (for example Cloudflare Access or Tailscale).
- Real browser control for bots (Playwright) with a live screen view
- Slack / Telegram bridges so you can text your bots
- Windows & Linux installers
- Signed macOS build
- Multi-user mode with auth
Ideas and PRs are welcome. See CONTRIBUTING.md.
If OpenBot is useful to you, a ⭐ helps others find it.
MIT licensed · Built with Node, Electron, SQLite, ffmpeg, transformers.js, Whisper, CLIP and your favorite open model.
OpenBot is an independent project and is not affiliated with xAI, OpenAI or muse.ai.









