by Bitterbot-AI
A local-first AI agent with persistent memory, emotional intelligence, and a peer-to-peer skills economy.
# Add to your Claude Code skills
git clone https://github.com/Bitterbot-AI/bitterbot-desktopGuides for using ai agents skills like bitterbot-desktop.
Last scanned: 4/29/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-04-29T06:25:29.001Z",
"semgrepRan": false,
"npmAuditRan": false,
"pipAuditRan": true
}No comments yet. Be the first to share your thoughts!
Most AI agents are stateless wrappers around an LLM API. Close the terminal, and they forget you exist.
Bitterbot is different. It's a personal AI that lives on your devices, remembers your life, and actually does things, browses the web, runs code, talks to you on WhatsApp. While you sleep, it dreams: consolidating knowledge, discovering new skills, and evolving a persistent personality. It packages those learned skills and trades them with other agents on a P2P marketplace for USDC.
About · Docs · Getting Started
Runtime: Node ≥ 22 · Package manager: pnpm
git clone https://github.com/Bitterbot-AI/bitterbot-desktop.git && cd bitterbot-desktop
bash scripts/setup-deps.sh # installs Chromium, ffmpeg, ripgrep, etc.
pnpm install && pnpm build
Run the onboarding wizard — it walks you through model auth (API keys), memory embeddings, web search, channels, wallet, and workspace setup, and offers to spawn the gateway + Control UI for you at the end:
pnpm bitterbot onboard
When the wizard finishes, accept the "Ready to fire it up?" prompt and it runs pnpm dev:all in the background and opens the browser. If you skip it or come back later:
pnpm dev:all
Open http://localhost:5173 — that's the Bitterbot Control UI where you chat, view dreams, manage skills, and monitor the agent. The gateway (backend API on port 19001) and the P2P orchestrator start automatically.
pnpm dev:allspawns the gateway + the Vite Control UI in one terminal with color-tagged logs. Ctrl+C stops both.Two-terminal alternative (useful when debugging one process in isolation):
pnpm gateway:watch # Terminal 1 — auto-rebuilds on TS changes cd desktop && pnpm dev # Terminal 2 — Vite hot-reloadThe orchestrator (P2P sidecar) is spawned automatically by the gateway — you do not need to start it separately.
The Control UI's connection to the gateway is wired up automatically: the onboarding wizard writes desktop/.env for you with the gateway token and URL. If you skipped the wizard or need to regenerate it, copy desktop/.env.example to desktop/.env and paste the token from ~/.bitterbot/bitterbot.json → gateway.auth.token.
If you prefer to configure everything by hand instead of using the wizard:
cp .env.example .env
# Edit .env with your Anthropic API key (ANTHROPIC_API_KEY)
# and optionally: TAVILY_API_KEY, BRAVE_API_KEY, OPENAI_API_KEY, NEARAI_API_KEY
Then run pnpm bitterbot configure to set gateway port/bind/auth, channels, and other options interactively. Or edit ~/.bitterbot/bitterbot.json directly.
| Service | URL | Purpose |
| ---------- | ----------------------- | ----------------------------- |
| Gateway | ws://127.0.0.1:19001 | WebSocket API for all clients |
| Control UI | http://localhost:5173 | Browser-based dashboard |
You can also talk to your agent from the terminal:
bitterbot agent --message "What have you learned about me so far?"
Bitterbot's memory isn't a vector database with a retrieval step. It's a cognitive architecture grounded in computational neuroscience.
GENOME.md). The agent's actual personality (the Phenotype) evolves organically based on lived experience, constrained by your genome.Every 2 hours, the agent goes offline to dream. Seven specialized modes optimize its brain, selected by an FSHO coupled oscillator that reads the current state of the memory landscape:
| Mode | What It Does | | ----------------- | ---------------------------------------------------------------------- | | Replay | Strengthens high-importance memory pathways (no LLM cost) | | Mutation | "What if?" thinking, mutates prompts to discover more efficient skills | | Extrapolation | Projects user patterns forward to anticipate future needs | | Compression | Merges redundant memories into denser, token-efficient representations | | Simulation | Tests hypothetical scenarios against accumulated knowledge | | Exploration | Investigates knowledge frontiers identified by the Curiosity Engine | | Research | Autonomous web research loop to optimize underperforming skills |
Each cycle is scored by a Dream Quality Score that measures crystal yield, merge efficiency, orphan rescue, Bond stability, and token efficiency, closing the feedback loop so the dream engine learns which modes work best.
Dreams rewrite the agent's working memory, updating its self-concept, theory of mind about you, and active context. The personality is an output of experience, not a static prompt. On first launch, the agent develops a persistent personality within hours.
Most AI memory systems focus on storage and retrieval. We're building toward something different: a system where memory, emotion, curiosity, and identity form a single self-regulating cognitive loop.
See Memory Architecture for technical details.
If you find this architecture interesting, please consider starring the repo to follow our progress!
Every Bitterbot agent ships with a workspace that defines who it is:
GENOME.md Immutable DNA. Safety axioms, hormonal baselines, core values, personality constraints. Dreams can never override this.MEMORY.md Living working memory, rewritten every dream cycle. Contains the Phenotype (self-concept), the Bond (theory of mind about you), the Niche (ecosystem role), and active context.PROTOCOLS.md Operating procedures. How the agent behaves in groups, when to speak, when to stay silent.TOOLS.md Environment-specific notes. Camera names, SSH hosts, voice preferences, the agent's cheat sheet.The Genome constrains evolution. The Phenotype expresses it. The result: an agent that grows and adapts