A local-first proactive AI companion for macOS
BoBeBot.com
BoBe lives on your desktop as a transparent overlay. It watches what you're working on, builds memories over time, tracks your goals, and reaches out when it thinks it can help — like a thoughtful colleague who actually pays attention.
BoBe owns its data and runtime locally by default. You choose whether inference uses your GitHub Copilot subscription or a local Ollama model; only the context needed for a cloud answer leaves the Mac.
| Observes your work | Periodic screen captures analyzed by a vision model to understand context |
| Remembers you | Maintains a local memory document; the agent can append durable facts through a bounded daemon tool |
| Tracks your goals | Keeps human-readable goals, creates them after confirmation, and uses active goals proactively |
| Reaches out proactively | A decision engine evaluates when help is valuable — not a chatbot waiting for input |
| Respects your flow | Cooldown logic and engagement awareness prevent interruptions |
| Uses tools | Read-only file access plus extensible MCP server integration |
| Customizable personality | Soul documents shape how BoBe communicates |
| Platform | Architecture | Minimum Version | Status |
|---|---|---|---|
| macOS | Apple Silicon (arm64) | macOS 15 Sequoia | ✅ Supported |
| Ubuntu daemon | x86_64 | — | 🧭 Compatibility target; no packaged release or continuous validation |
Mobile and physical-device surfaces are future platform directions, not shipped applications. See docs/platform-architecture.md.
Download the latest BoBe.dmg from the Releases page, drag BoBe to Applications, and launch it.
git clone https://github.com/athatheo/BoBe.git
cd BoBe
just runRequires macOS 15+, Rust 1.97.1+, Xcode 16+, and just. See CONTRIBUTING.md for full prerequisites.
On first launch, BoBe's eight-stage setup wizard walks you through:
- Choose your AI — GitHub Copilot cloud or local Ollama
- Authenticate or install — sign in through BoBe's signed Copilot CLI helper, or let BoBe install Ollama and models
- Personalize — tell BoBe your name and optionally create a first goal
- Choose proactivity — tune how often BoBe observes and reaches out
- Grant permissions — screen awareness is optional
- Prepare voice — install the speech models used by the Mac
After setup, BoBe appears as a floating overlay on your desktop with a menu bar icon.
| Engine | Description |
|---|---|
| GitHub Copilot | Cloud inference using the user's Copilot subscription and CLI authentication. |
| Ollama | Local inference. BoBe can install the runtime and selected models. |
All settings are configurable through BoBe's settings panel (click the menu bar icon → Settings). Settings persist to ~/.bobe/config.toml.
Environment variable overrides are available for advanced use:
BOBE_ENGINE__ENGINE=local
BOBE_CAPTURE__ENABLED=false
BOBE_CAPTURE__INTERVAL_SECONDS=30Data is stored under ~/.bobe/ by default. Set BOBE_DATA_DIR to relocate the canonical data root; BOBE_DATABASE__URL remains available as an explicit SQLite override.
BoBe handles sensitive data including screen captures, personal context, and integration secrets. See SECURITY.md for our vulnerability reporting policy.
Key security properties:
- Loopback by default — the daemon binds to
127.0.0.1unless remote mode is deliberately configured - Secrets stored in macOS Keychain and handled in-memory with the
secrecycrate - Arbitrary file writes and shell commands are denied; memory/goal mutations use bounded daemon-owned tools
- MCP commands validated against a configurable blocklist
- CORS locked to localhost origins
- Remote/reverse-proxy access must configure an API bearer token and TLS certificate/key; adding a public allowed host without both is rejected at startup, including when the daemon itself binds to loopback behind a proxy
We welcome contributions! See CONTRIBUTING.md for development setup, architecture, coding conventions, and the full project structure.
This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.