Boop is a personal agent reached over iMessage, published as a template rather than a finished product. Messages arrive through a Sendblue webhook with signed inbound requests, typing indicators, and deduplication, and the runtime is chosen at setup: the Claude Agent SDK using a local Claude Code login, or the local Codex app-server runtime using a codex login session. Either path runs on an existing subscription, so no separate provider API key is needed for the agent runtime.
The architecture is a dispatcher with workers. A lean interaction agent reads the message and recent history, recalls or writes memories, creates automations, and decides whether to answer directly or spawn a sub-agent; it holds only memory, spawn, automation, and draft tools, with web access, files, and integrations denied to it. Execution agents are spawned per task, load only the integrations named in the spawn call, and return a tight answer. Any external action stages a draft first and is committed only on confirmation.
Memory is tiered into short, long, and permanent stores held in Convex, with post-turn extraction, decay, and cleaning, and vector recall backed by a local BGE-large model or optional Voyage or OpenAI embeddings. A daily consolidation pipeline runs proposer, adversary, and judge passes to merge duplicates, resolve contradictions, and prune noise; it runs every 24 hours by default and can also be triggered manually.
Integrations come from Composio, where one API key exposes around a thousand toolkits with hosted OAuth and token refresh, connected from the debug dashboard and named by slug in the spawn call. Custom MCP servers can be added to the project and registered so the dispatcher treats them the same way. Two capabilities are off by default: a Patchright-backed local Chrome profile for login-required or visually driven pages, and read-only macOS connectors for iMessage, Apple Notes, and Apple Reminders.
Reusable playbooks ship as SKILL.md files. Under the Claude runtime the Agent SDK loads them from .claude/skills/; under Codex they live in .agents/skills/, so cross-runtime behaviour is mirrored in both directories. Skill descriptions share a soft character budget in context. A React debug dashboard shows usage and known cost, agent timelines, automations, a tabular and force-directed view of memory, events, and connections.
Features
- iMessage transport: inbound and outbound messages through Sendblue, with webhook auto-registration on each restart
- Dispatcher and workers: a tool-restricted interaction agent that spawns focused execution sub-agents per task
- Runtime choice: Claude Agent SDK on a Claude Code login, or the local Codex app-server runtime
- Tiered memory: short, long, and permanent stores with post-turn extraction, decay, and cleaning in Convex
- Vector recall: local BGE-large embeddings by default, with Voyage or OpenAI as options
- Memory consolidation: a daily proposer, adversary, and judge pipeline that merges, resolves, and prunes
- Automations: recurring jobs scheduled from a text message, polled every 30 seconds, with results pushed back to chat
- Draft-and-send: external actions are staged as drafts and committed only after confirmation
- Composio integrations: one API key for around 1,000 toolkits with hosted OAuth, connected from the dashboard
- Custom MCP tools: your own servers registered in the integration registry alongside Composio toolkits
- Optional local access: a Patchright Chrome profile and read-only Apple iMessage, Notes, and Reminders connectors, both off by default
- Debug dashboard: usage, cost, tokens, agent timelines, automations, a memory graph, events, and connections
