Show HN: Cybara – An open-source AI agent platform built with Bun
Cybara is a self-hosted AI agent operating system that combines a Bun-based agent runtime with a web UI, CLI, desktop shells, mobile companion, encrypted local wallet controls, channel adapters, MCP support, and a broad tool layer. It supports multi-agent orchestration, browser automation, secure messaging across major platforms, and encrypted wallet operations.
Uh oh!
There was an error while loading. Please reload this page.
Notifications You must be signed in to change notification settings
Fork 0
Star 4
BranchesTags
Open more actions menu
Folders and files
NameName
Last commit message
Last commit date
Latest commit
History
1,720 Commits
1,720 Commits
.codex/environments
.codex/environments
.github
.github
app-store-assets/ios
app-store-assets/ios
apps
apps
docker/sandbox-browser
docker/sandbox-browser
docs
docs
nix
nix
output
output
packaging
packaging
script
script
scripts
scripts
shared
shared
site
site
skills
skills
snap
snap
src-tauri
src-tauri
src
src
templates
templates
tests
tests
ui
ui
.dockerignore
.dockerignore
.env.example
.env.example
.gitignore
.gitignore
AGENTS.md
AGENTS.md
CITATION.cff
CITATION.cff
CLAUDE.md
CLAUDE.md
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
CONTRIBUTING.md
Dockerfile
Dockerfile
LICENSE.md
LICENSE.md
README.md
README.md
SECURITY.md
SECURITY.md
THIRD-PARTY-NOTICES.md
THIRD-PARTY-NOTICES.md
biome.json
biome.json
bun.lock
bun.lock
bunfig.toml
bunfig.toml
cybara.png
cybara.png
eslint.config.js
eslint.config.js
flake.nix
flake.nix
install.ps1
install.ps1
install.sh
install.sh
knip.json
knip.json
osv-scanner.toml
osv-scanner.toml
package.json
package.json
tsconfig.json
tsconfig.json
Repository files navigation
Self-hosted AI agent platform for real work: code, channels, browser automation, and on-chain execution.
Cybara combines a Bun-based agent runtime with a web UI, CLI, desktop shells, mobile companion, encrypted local wallet controls, channel adapters, MCP support, and a broad tool layer. Run agents that can code, automate browsers, manage messaging workflows, and execute wallet operations while keeping operator control in the loop.
Quick Install
Prefer the desktop GUI? Download Cybara for macOS, Windows, or Linux from cybara.ai/download, or get every installer directly from GitHub Releases.
Install the latest Cybara CLI on macOS or Linux:
curl -fsSL https://cybara.ai/install.sh | bash
On Windows PowerShell:
powershell -c "irm https://cybara.ai/install.ps1 | iex"
Then launch Cybara:
cybara
The installer selects the correct release for the current platform and verifies its published SHA256 checksum. You can also run Cybara without installing it with bunx cybara.
Cybara in Action
Web and Tauri chat with persisted workspaces, plans, grouped live activity, file changes, embedded previews, context controls, and agent selection.
Terminal chat with responsive layouts, a wide-screen session inspector, wrapped Markdown, persisted sessions, queueing, steering, approvals, capability completion, and slash commands.
What Cybara Is
Cybara is an agent operating system for developers and operators who want one stack for:
AI chat and multi-agent orchestration
local and remote tool execution
browser and API automation
secure messaging channels across platforms including Telegram, Discord, Slack, WhatsApp, Signal, iMessage, Matrix, Mattermost, Microsoft Teams, Feishu/Lark, DingTalk, WeCom, Zulip, LINE, Google Chat, IRC, ntfy, Twitch, Nextcloud, Synology, Zalo, Home Assistant, Web, Webhook, SMS, and Email
encrypted wallet operations across ETH/BTC/SOL with policy controls
If you need an agent platform that can plan, execute, verify, and report with strong operator control, Cybara is built for that.
Capability Snapshot
A broad built-in tool library with compatibility aliases and intent-aware exposure, so agents receive only the relevant allowed subset for a turn
A broad provider catalog with dynamic model discovery (src/core/providers.ts), including Azure OpenAI, Azure AI Foundry, Anthropic on Vertex AI, and Google Gemini on Vertex AI
Channel adapters for the major messaging platforms (src/core/channels/adapters)
Model provider router with weighted / round-robin / lowest-cost / priority / mixture-of-agents strategies, circuit breaker, rate limits, spend caps, and coding-plan limit awareness
Mixture of Agents (MoA): fan a turn out to several proposer agents and synthesize one answer — available both as a mixture_of_agents tool and as a router strategy
Self-improving skills: agents can codify a verified multi-step procedure with skill_save, and the loader picks it up for future sessions
ACP (Agent Client Protocol) v1 server for connecting compatible editors to a workspace-confined Cybara agent over stdio (cybara acp)
A web UI with dashboard, chat, IDE, terminal, tools, MCP, mobile pairing, wallet, and settings surfaces
Bundled skills (skills/), including fal.ai media guidance and mactop hardware monitoring when available on macOS
Anthropic prompt caching, multi-key credential pools + rate-limit rotation, and a centralized LLM error taxonomy
Smart context compaction (token-aware chunking + structured summaries with identifier preservation)
Project instruction and context loading for AGENTS.md, SOUL.md, IDENTITY.md, USER.md, and TOOLS.md at the selected workspace root
Interactive tool approval with per-session/persistent allowlists, filesystem checkpoint/snapshot+rollback, and transform hooks (tool_result/llm_output/terminal_output)
Token streaming to the UI (real-time assistant text deltas via WebSocket)
MCP host mode (expose cybara's tools to other MCP clients) + MCP client (consume external servers)
A unified plugin hub for reusable skill bundles, MCP services, and encrypted account apps with read-only defaults and approval-gated writes
Local workspace indexing with lexical search plus optional local Transformers.js embeddings; packaged desktop sidecars bundle Transformers.js, ONNX Runtime native binaries when available, and ONNX Web/WASM fallback assets
Source migration from supported legacy agent installations with dry-run previews, conflict handling, skill/memory import, and opt-in secret import
Shared speech settings for local Kokoro, operating-system, and cloud speech plus managed or full-duplex hands-free conversation
Gateway operator controls for localhost auth policy, API-key reveal/rotation, gateway restart, and log viewing
Media generation (image/video/music) via swappable provider registry, dynamic tool discovery, a tool-calling code sandbox, desktop control with safety hardening, and a multi-agent kanban orchestration tier
Tauri desktop app + native SwiftUI macOS app + React Native mobile companion + Bun server/CLI runtime
Build From Source
Source development uses Bun only for dependency installation, tasks, and tests.
Clone
git clone https://github.com/metaspartan/cybara.git cd cybara
Install dependencies
bun install
Start full dev stack (backend + built UI + watch)
bun run dev
Then open:
UI: http://localhost:4269
API health: http://localhost:4269/api/health
Update an installed CLI with:
cybara update # verify SHA256, then download + install cybara update --check # just report whether a newer release exists (non-zero if stale) cybara update --force # reinstall even when already current
The desktop app now checks the same GitHub release channel from Settings -> Desktop Updates and can install signed app updates in place.
Production deployment guidance: docs/production.md
Desktop And Native Apps
Cybara ships two desktop shells over the same Bun sidecar/runtime contract:
Tauri desktop for macOS, Windows, and Linux, including signed updater artifacts through GitHub Releases
Native SwiftUI macOS shell in apps/macos/Cybara, packaged as a .app bundle with the compiled sidecar, web UI, secp256k1.wasm, and local indexing runtime assets
bun run tauri:dev # Tauri desktop dev mode bun run tauri:build # Tauri production build bun run tauri:build:release # Tauri build with updater config/signatures bun run native:macos:run # Build UI + sidecar, then run the SwiftUI shell bun run native:macos:package # Build native SwiftUI .app + zip
See docs/desktop.md and apps/macos/Cybara/README.md.
Mobile Companion
Cybara Mobile is a dark Liquid Glass-inspired React Native app for iOS and Android. It connects to a Cybara gateway already running from CLI, Tauri/Web UI, native macOS, or a hosted deployment, then manages remote sessions and operator settings.
bun run mobile:dev bun run mobile:ios bun run mobile:android bun run mobile:expo-check
on the device running Cybara
cybara mobile connect --url http://192.168.1.20:4269 --device "Carsen iPhone"
The CLI and Web UI/Tauri Mobile page create QR pairings with revocable per-device tokens, so a phone can be revoked without rotating the root gateway API key. Pairing can use LAN access or a configured remote access URL from Settings → Gateway, including private mesh networks such as Tailscale/ZeroTier/NetBird or password-protected HTTPS tunnels. The mobile surface covers gateway health, sessions, agents, providers, provider plan limits, metrics, speech settings, tool approvals, wallet policy, channels, tasks, memory, terminal/log entrypoints, gateway controls, and settings summaries. See apps/mobile/README.md.
Release CI exports Expo bundles for iOS and Android and can also build signed Android AAB/APK and iOS IPA/TestFlight artifacts when the relevant store signing secrets are configured.
Docker
Build and run a production container:
docker build -t cybara:latest . docker run --rm -p 4269:4269 \ -e CYBARA_API_KEY=cybara_dev_key \ -v ~/.cybara:/root/.cybara \ cybara:latest
Then open http://localhost:4269.
Core Features
Multi-Agent Runtime
Multiple agent types (main, research, coder, planner, ops, subagent, worker)
Subagent spawning and lifecycle management
Session-aware execution with persistence and recovery
Agent tool allowlist and permission enforcement support
Tooling Layer
Tool categories currently shipped:
file: read/write/edit/search/grep/workspace_index/apply_patch — with a hard path-safety deny-list (credentials, SSH keys, .env) enforced before every write
process: exec/process/git
browser: browser/web_fetch/web_search/canvas
memory: search/get/save/context/durable save
core: sessions/agents/artifacts/wallet/http/env/data/nodes/clipboard/cron/gateway/etc.
lsp: diagnostics/definition/references/hover/languages
media: image/tts + image_generate / video_generate / music_generate via a swappable provider registry (OpenAI, fal.ai with FAL_KEY or FAL_API_KEY)
skill: calc/convert/pdf/ocr/summarization/video_frames/weather/mactop + skill_save (agents codify a successful procedure as a reusable skill for future sessions)
channel: message/telegram_media
planning: todo (session task-list with status discipline) + clarify (structured multi-choice questions to the user)
discovery: tool_search / tool_describe / tool_call (dynamic discovery over built-in + MCP + skills) + execute_code (run code that calls cybara tools programmatically)
media: computer_use (bundled background desktop control for capture/click/type/scroll/drag without stealing the cursor)
orchestration: the kanban multi-agent tier — show/list/complete/block/heartbeat/comment/create/unblock/link for durable task graphs — plus mixture_of_agents (fan out to N proposer agents, synthesize one answer)
See full reference: docs/tools.md
Execution Sandboxing
Configurable command sandbox for exec/git tool calls
Auto provider selection:
Apple Silicon: sandbox-exec
Linux: podman
Cross-platform container fallback: docker
Configurable network mode (allow or deny) for sandboxed execution
Managed via Settings UI (Command Sandbox) or config key sandbox_runtime
Encrypted Wallet + Crypto Automation
Local encrypted BIP39 vault (24-word seed phrase)
Multi-chain addresses and balances: ETH, BTC, SOL
Native transfers + tok
[truncated for AI cost control]