nickvasilescu/bops

★ 148⑂ 44

Bops: a team of AI bots that run your business ops, each with its own computer, email and phone number. bops.bot

About nickvasilescu/bops

nickvasilescu/bops is an open-source project on GitHub, mainly written in TypeScript. Bops: a team of AI bots that run your business ops, each with its own computer, email and phone number. bops.bot It currently holds 148 stars and 44 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the Today's Trending board, currently at rank #77 with 0 new stars today.

GitHub Repository Details

Repository nickvasilescu/bops · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

https://github.com/nickvasilescu/bops/blob/HEAD/Bops

Bops

A team of AI bots that runs your business ops.
Each bot has its own computer, email and phone number, and remembers everything.

Download for Mac · bops.bot · Self-host · FSL-1.1-ALv2

https://github.com/nickvasilescu/bops/blob/HEAD/Bops: Boppy's chat on the left, and its computer on the right building a lead list on four screens at once

Bop it. Text it. Call it.

Bops is a Mac app. You chat with your bots like teammates, and they do the work on their own cloud computers: inbox, pipeline, invoices, reports. Text them from your phone, call them and talk live, email them a task, or add them to Slack, Telegram and Discord. Wherever you reach them, they know who you are and what they did yesterday.

https://github.com/nickvasilescu/bops/blob/HEAD/One of Boppy's screens up close, with Watch and Take control

Its own computer, four screens. A bot works on up to four things at once. Watch any screen live, take control, then hand it back.

https://github.com/nickvasilescu/bops/blob/HEAD/Penny asking before paying an invoice

Asks before it acts. Reading runs at once. Sending, paying and deleting wait for your OK.

https://github.com/nickvasilescu/bops/blob/HEAD/The Vault: connected apps, several accounts each, and which bots use them

Your apps, your rules. About 1,000 apps through Composio, several accounts each. Every bot gets only the access you give it.

https://github.com/nickvasilescu/bops/blob/HEAD/Otto answering a request sent from Slack

Wherever you work. Ask in Slack, by text, by email or on a call. The answer comes back the same way.

What it does

Coming soon: WhatsApp, and a real phone per bot.

Get Bops

Requires macOS on Apple silicon.

How it works

Bops.app (Electron) ── loads ──► Bops server (Next.js, port 3210, on your Mac)
                                   ├─ chat, threads, routines, watches (state in .data/)
                                   ├─ OpenAI: chat, agent runs, GPT-Live calls
                                   ├─ Orgo: bots' computers (CDP and screens over Tailscale, or Orgo's API)
                                   ├─ Codex + cua-driver: work on your Mac
                                   ├─ Honcho (memory), Composio (apps), AgentMail (email), AgentPhone (texts, calls)
                                   └─ public webhooks ◄── edge/ (a small relay, e.g. on Fly) ◄── AgentPhone, OpenAI

Everything runs on your Mac except the bots' computers and the providers. edge/ is optional: it gives the webhooks for texts and calls a public HTTPS address and forwards them to your Mac over Tailscale.

Requirements

Self-host it

npm install
cp .env.example .env.local   # fill in at least OPENAI_API_KEY (and ORGO_API_KEY to skip signing in)
npm run app                  # opens Bops.app, which starts the server on port 3210

Or run the server alone with npx next dev --port 3210 and open http://localhost:3210.

The app opens on Sign in with Orgo: approve the code on orgo.ai, and Bops runs on your Orgo account. Self-hosters with BOPS_SELF_HOSTED=1 and ORGO_API_KEY skip this.

Then open Settings → You and add your name and a line about yourself: every bot uses it.

The app is designed for hosted Bops, where every service is run for the user, so Settings shows only what's theirs to set. Signed in with Orgo, the app reaches every service through Bops Cloud (cloud/README.md) on the user's Orgo key, so no provider keys sit on the Mac. BOPS_SELF_HOSTED=1 (on in .env.example) calls each service directly with the keys in .env.local instead, and adds a Self-hosting section: network, email domain, phone service and computer ids.

The bots' computers

Bot computers launch from an Orgo template built from this repo: node orgo/bops-base.mjs publish. Set BOPS_ORGO_TEMPLATE to your build's ref if the default isn't in your account. Bops keeps its computers in one Orgo workspace (the signed-in user's workspace named "bops", or BOPS_ORGO_WORKSPACE when self-hosting on ORGO_API_KEY) and never creates or deletes computers outside it.

Texts and calls (optional)

1. Deploy edge/ (see edge/fly.toml): it needs a Tailscale login and BOPS_UPSTREAM (your Mac's tailnet address, port 3210). 2. Point AgentPhone's webhook and your OpenAI project's webhook (live.transport.incoming) at it: /hooks/agentphone and /hooks/openai. 3. Set the AGENTPHONE_*, BOPS_AGENTPHONE_HOOK_URL and OPENAI_WEBHOOK_SECRET settings, then add your mobile in Settings → How your bots reach you.

US texting needs an A2P 10DLC registration for your brand.

Releasing the Mac app

scripts/release.sh          # or: npm run app:release

It fetches the orgo-relay agent (scripts/fetch-relay.sh, into vendor/orgo-relay/), builds the server (next build, output: "standalone"), and makes dist-desktop/Bops--arm64.dmg and .zip (Apple silicon). The app carries the server in Contents/Resources/server and runs it with its own Node (no Node or source folder needed on the user's Mac); its state lives in ~/Library/Application Support/Bops/server/.data and its log in ~/Library/Logs/Bops/server.log. The relay agent ships as Contents/Resources/bin/orgo-relay. No .env file goes into the app; settings for one Mac can go in ~/Library/Application Support/Bops/.env.local. Before finishing, the script starts the bundled server once as a fresh install would, with no keys and an empty home folder (port 3299), and checks that the page and the app's state answer. The bundled server listens on 127.0.0.1 only: bot computers' app calls and phone webhooks, which come over the tailnet, don't reach it unless that .env.local says BOPS_LISTEN_ALL=1 (then proxy.ts lets other addresses reach only those paths). While it's loopback only, Orgo threads get no app tools.

What a release needs:

Without a Developer ID certificate the script says so and builds unsigned, for testing on this Mac only (macOS also forgets Screen Recording and Microphone grants between unsigned builds).

The app is signed with the hardened runtime and only two entitlements (build/entitlements.mac.plist): JIT, which Electron needs, and the microphone, for calls. Screen Recording and Accessibility have no entitlement: the user allows them in System Settings. Every binary inside, the relay included, is signed with the app.

Why not the Mac App Store: its sandbox would stop Bops from running its own server and the relay, starting Codex and Chrome for the bots, and driving other apps for computer use.

npm run app:build (and app:install) still make a development app that runs next dev from this folder, unsigned (-c.mac.identity=null, so electron-builder doesn't pick whatever Apple Development certificate is in the keychain). The release script pins signing to the Developer ID certificate and fails if anything else signed the app.

Project layout

| Path | What's there | |---|---| | app/ | Next.js routes: the UI and app/api/* | | components/app/ | The app's UI; components/message-ui/ is the iMessage-style chat kit | | lib/server/ | Everything server-side: chat engine, sessions, providers, state (store.ts) | | lib/types.ts | The app state's shape | | desktop/ | The Electron shell | | vm/ | What runs on the bots' computers (screen MCP, browser helpers) | | orgo/ | The Orgo template builder | | edge/ | The public webhook relay | | docs/ | Notes on the Orgo API |

Security

License

FSL-1.1-ALv2 (Functional Source License, "fair source"): use, modify and self-host Bops freely, except to offer a competing commercial service. Each version becomes Apache-2.0 two years after release.

"Bops" and the Bops logo are trademarks of Organic Intelligence, Inc.; see TRADEMARK.md.

GitHub Stars & Activity

148Stars
44Forks
0Open issues
TypeScriptLanguage

GitHub Popularity

GitHub stars148
Forks44
Open issues0
Primary languageTypeScript
License-
Stars gained today0
Created-
Last pushed-

Trending History

Daily boardrank #77 · ▲ 0 stars

Related AI Projects

1

deepseek-ai / deepseek-harness

TypeScript★ 245,133⑂ 0
→
2

n8n-io / n8n

TypeScript★ 206,820⑂ 0
→
3

firecrawl / firecrawl

TypeScript★ 189,447⑂ 0
→
4

langgenius / dify

TypeScript★ 158,032⑂ 0
→
5

anthropics / claude-code

TypeScript★ 149,748⑂ 25,718▲ 161 stars
→
6

thedotmack / claude-mem

TypeScript★ 97,602⑂ 8,594▲ 578 stars
→
7

twentyhq / twenty

TypeScript★ 58,039⑂ 9,468▲ 74 stars
→
8

garrytan / gbrain

TypeScript★ 30,646⑂ 4,596▲ 40 stars
→

More AI Rankings