Persistent Agent Workspace
AI agents that remember, collaborate, and never start from zero.
aipass.ai · Feedback · r/AIPass · Discussions
When the task gets complex, you become the coordinator — copying context between tools, dispatching work manually, keeping track of who's doing what. You are the glue holding your AI workflow together.
Multi-agent frameworks tried to fix this. But they isolate every agent in its own sandbox. Separate filesystems. Separate context. One agent can't see what another just built. Nobody picks up where a teammate left off.
That's not a team. That's a room full of people wearing headphones.
AIPass is a CLI-native scaffold that adds persistent memory, identity, and coordination to your AI agents. You bring your project — AIPass adds the agent layer on top. No dashboard to run, no cloud to sign into. Everything is plain files on your machine: agent state lives in your project directory, plus a thin install layer outside it (Claude Code hooks, PATH entries, ~/.aipass/) — the Uninstall section covers both.
- Agents are persistent. They remember across sessions. Expertise develops over time. Nobody starts from zero.
- Bring your own project. AIPass adds agent infrastructure to whatever you're building. It's a scaffold, not a product — you shape it.
- Everything is local. Memory is JSON files. Communication is local mailbox files. No cloud services, no data leaves your machine — agents that talk to outside APIs are opt-in, with your own keys.
- Shared workspace. All agents work on the same filesystem, same project, same time. No sandboxes.
- One command for everything.
drone @agent commandreaches any agent. Learn it once, use it everywhere.
Runs on your existing Claude subscription. AIPass drives the same Claude Code binary you already run — Pro or Max. No extra API keys, no extra costs for core functionality.
git clone https://github.com/AIOSAI/AIPass.git
cd AIPass
./aipass installOne command does it all: builds the environment, puts aipass + drone on your PATH, bootstraps the 18-agent reference fleet — and, in an interactive shell, ends in a conversation. On the way into that conversation it runs a health check (aipass doctor --fix — heals what it can, automatically). The AIPass concierge opens right in your terminal, in the aipass agent's directory, with your install report and any hook-wiring problems doctor found in hand: it greets you by name, shows you around, and walks you through what your machine still needs — every machine is different.
Along the way, in an interactive shell, expect up to three quick prompts: your git identity (name + email, only if not already configured globally — this is yours, not ours, so skipping at the email prompt skips the step, and a bad address is never silently stored), your name, so the concierge knows what to call you, and how the session should run (asks before system-changing commands by default, or full autonomy). On Linux, sudo may ask for your password once to place the /usr/local/bin symlinks. Anything skipped or still missing gets collected into an "action needed" summary before the welcome conversation opens — no project prompt, nothing else to answer. Project creation comes later, when you're ready (see below).
Come back tomorrow, say "hi", and it picks up exactly where you left off. That's the whole interface.
Options: --no-chat skips the welcome chat — and with it the doctor preflight, which runs as part of the chat handoff. --no-baud skips the phone face and baud-cli step (aipass baud install lands it later). Non-interactive shells (CI, or stdin not a terminal) complete with defaults and exit 0 — no prompts, no spawned sessions; the handoff prints as a next-step command instead. The installer wires Claude Code hooks automatically — merging with any hooks you've already configured, never overwriting them. ./aipass is a thin repo-root launcher over setup.sh; after setup it forwards to the installed aipass binary.
Install also changes things outside the repo, and you should know what: it adds AIPass deny rules to your user-level Claude Code settings (no raw git commit/push/reset/rebase/config, no reading ~/.secrets/) — these apply to every Claude Code project on the machine, not only AIPass; it appends a claude shell function to your .bashrc/.zshrc that, inside an agent directory, resumes that agent's seat instead of starting a blank session (everywhere else it passes straight through); it sets git config --global pull.rebase true when it sets your git identity; and it installs the @anthropic-ai/sandbox-runtime npm package globally if it is missing. It also fetches the BAUD phone face and, on linux-x86_64, the baud-cli binary from a GitHub release, verifies them against the release's checksums, and lands them under ~/.aipass/baud/ — best-effort, so a missing or unreachable release is reported and the install continues. Re-running install on Linux or macOS deletes and rebuilds .venv. The Uninstall section lists every file it touches.
Two ways in. From anywhere inside your AIPass environment, aipass new builds a complete project around a resident manager agent:
aipass new my-project --template python # Project + resident manager agent + git birth commitIt asks one question (create the resident agent? — --no-agent skips it), mints the project registry, spawns a full citizen (identity, memory, mailbox, birth certificate) at projects/my-project/src/my_project/my_project, makes the first commit on main and leaves you on a dev branch — and, in an interactive shell, drops you straight into a conversation with your new manager.
Or bring your own directory, anywhere on disk:
cd ~ && mkdir my-project && cd my-project
aipass init run # Guided setup — project, first agent, ends in the conversationEither way your agent has identity, memory, a mailbox, and access to every AIPass service — planning, quality audits, dispatch, real-time monitoring. One extra step for a directory outside the AIPass tree: it can call the fleet right away, but for the fleet to dispatch work to it, declare it once with drone @memory roots add <path>.
aipass init . # Just the scaffold, current directory (no guided setup)
aipass init agent my_agent # Add another agent
aipass doctor # Check system health
aipass doctor --cross-os # Pre-flight check for Linux, macOS and Windows differences
aipass feedback off # Silence the occasional how-are-we-doing askThe clone already includes all 18 agents working together — the reference implementation that maintains AIPass itself:
cd src/aipass/devpulse
claude # Talk to the orchestratordrone @seedgo audit aipass # Quality checks across all agents
drone @flow create . "Add user auth" # Create a work plan
drone @ai_mail dispatch @agent "Subject" "Body" # Send a task + wake an agentNeed help? Ask in Discussions or file feedback — both take 30 seconds.
Memory. Every agent owns a .trinity/ directory — identity, session history, learnings — read on startup, updated as it works. Memory starts as plain JSON, no setup required. When files fill up, older entries automatically archive into ChromaDB for long-term semantic search. Nothing is lost.
One structure. Every agent — yours and the reference fleet — shares the same core layout (abridged — a fresh spawn also gets docs/, tools/, a dashboard file and a few dot-directories). If you know one agent, you know all of them:
src/my_project/<agent>/
├── .trinity/ # Identity + memory (persists across sessions)
├── .ai_mail.local/ # Mailbox (receives tasks, sends results)
├── .aipass/ # Branch prompt (how this agent introduces itself)
├── apps/ # Entry point → modules → handlers
├── artifacts/ # Birth certificate + agent-produced files
├── logs/ # Per-agent logs
├── tests/ # The agent's own test suite
└── README.md # Domain knowledge (read on startup)
One router. drone @branch command [args] reaches any agent — routing and @agent resolution handled for you. Git is the one tiered surface: every agent can read (drone @git status, log, diff), and write access is earned per repo by that project's manager. Raw git and gh are refused for every agent, reads included: if drone @git can't do it, it can't be done. Agents use the same commands to reach each other: they dispatch work, share findings, and wake whoever they're waiting on.
AIPass ships with 18 core agents that maintain and develop the framework itself — proving the architecture works at scale. Four of them are the floor every AIPass agent stands on: your agents are created by spawn, reached through drone, and import cli and prax (display and logging) at startup. The rest you never have to run in your own project — they're here as examples and as services your project can call.
devpulse (orchestrator)
├── aipass — concierge + onboarding (aipass init, doctor, profile)
├── drone — command routing + @agent resolution
├── seedgo — automated quality standards
├── prax — real-time monitoring + runaway-log detection across all agents
├── ai_mail — agent-to-agent communication + task dispatch
├── flow — plan lifecycle, templates, auto-archival
├── spawn — branch lifecycle — creates, updates, and deletes agents anywhere on your filesystem
├── hooks — hook engine, sound control, per-project config
├── memory — automatic archival, ChromaDB, semantic search
├── api — external API gateway — keys, secrets, Google OAuth, LLM calls, host server (optional extra)
├── trigger — event bus + error medic — fingerprints log errors, wakes the owning branch
├── cli — terminal formatting and rich output
├── backup — local-first snapshots + restore (optional Drive sync)
├── daemon — task scheduler — interval, hourly, daily, once and rotation jobs (each branch owns its schedule)
├── skills — discoverable capability units any agent can run
├── commons — the social space — post, comment, vote, gather
└── canary — permanent test citizen — spawned, broken, and re-scaffolded so the working fleet never is
Agent details
Day to day you talk to one: devpulse — the orchestrator. It coordinates everyone else. (At install time, the aipass concierge greets you first and handles setup.)
Core infrastructure — how agents connect:
| Agent | Role |
|---|---|
| aipass | Concierge — aipass init, doctor, profile, onboarding |
| drone | Routes drone @branch command to the right agent |
| ai_mail | Agent-to-agent messaging and task dispatch |
| memory | Memory lifecycle — automatic archival, ChromaDB vectors, semantic search, vector verification of closed plans |
| api | Gateway for every external API — key and secret store, Google OAuth2, OpenRouter calls, usage tracking, host API server (needs the optional [host] extra) |
| spawn | Creates, updates, and deletes agents — the branch lifecycle manager |
Quality and operations — how the system stays healthy:
| Agent | Role |
|---|---|
| seedgo | Automated quality standards, enforced across all agents |
| prax | Real-time monitoring, logs, dashboards, runaway-log detection |
| flow | Plan lifecycle — seven plan types, auto-archival, hands closed plans to memory for vectorisation |
| hooks | Hook engine — per-project config, sound control, event dispatch, persistent alerts |
| trigger | Event bus and error dispatch — medic fingerprints log errors, deduplicates, and wakes the responsible branch |
| cli | Terminal formatting and rich output |
| backup | Local-first backups — snapshots, versioning, restore (optional Google Drive sync) |
| daemon | Task scheduler — interval, hourly, daily, once and rotation jobs, ticked by a systemd user timer; each branch owns its schedule |
| canary | Permanent test citizen — absorbs spawn/dispatch/resume tests so no working agent is the experiment; everything in it is test data |
Capabilities and community — what agents can do and where they gather:
| Agent | Role |
|---|---|
| skills | Capability framework — discoverable, self-contained skill units any agent can run |
| commons | The social space — agents post, comment, vote, and gather as a community |
Beta. Actively developed by a solo developer working with the AI agents themselves, plus a handful of outside contributions — every PR, every test, every fix is human-AI collaboration.
| Metric | Value |
|---|---|
| Version | See git tags |
| Agents | 18 core + user-created |
| Quality | Automated standards, gated in CI across every agent |
| Tests | Every agent ships its own suite; the whole fleet runs on Linux for Python 3.10–3.13, and on Windows and macOS for 3.12 |
Test quality, in progress. A passing suite only proves something if its tests can fail. seedgo audits every agent's tests for the ones that can't — tests that check the mock instead of the code, assertions that pass on any output, tests that touch live state — and the fleet is being worked through agent by agent, rewriting or retiring what doesn't hold up. That work lands on the dev branch first.
- Python 3.10+
- Claude Code
- Linux, macOS, or Windows via Git Bash (tested in CI; WSL should work but is untested)
sudoaccess optional (Linux uses it for/usr/local/binsymlinks — falls back to~/.local/binwithout it; macOS never asks)- Node.js + npm optional (install uses them to add the
@anthropic-ai/sandbox-runtimesandbox; without them that step is listed under "action needed" with the command to run later) - API keys / OAuth optional (OpenRouter, Google — only for optional add-on integrations)
Uninstall
AIPass keeps agent state inside your project directory. To remove it:
# Remove AIPass files from your project.
# ⚠️ In a brought-your-own project, src/, README.md, CLAUDE.md, pyproject.toml
# and .gitignore may be partly or wholly YOURS (init never overwrites existing
# files) — remove only what AIPass created and review the rest by hand.
rm -rf .aipass/ .claude/ src/<project>/<agent>/ # the agent dir holds its own mailbox, memory, logs
rm -f CLAUDE.md AGENTS.md README.md *_REGISTRY.json .gitignore pyproject.toml .venv
rm -f src/<project>/__init__.py src/<project>/tests/conftest.py # init's package stub
# If you ran the backup system, also remove its local state + the generated ignore file
rm -rf .backup/ && rm -f .backupignore.venv in a project is a symlink to the AIPass runtime, not a copy.
The installer also writes a layer outside the project. Remove all of it to erase AIPass completely:
~/.claude/settings.json— hook wiring, plusenv.AIPASS_HOME,env.CLAUDE_CODE_DISABLE_AUTO_MEMORY,env.CLAUDE_CODE_DISABLE_AGENT_VIEW, the AIPass deny rules (git write verbs,~/.secretsreads) and oneaskrule (edits under~/.claude/); each time doctor re-wires the hooks it leaves a datedsettings.json.bak.*copy beside it. Also~/.claude/commands/memo.md.aipass/dronesymlinks in/usr/local/binor~/.local/bin.- Your shell rc (
.bashrc/.zshrc/.bash_profile): a PATH line,AIPASS_HOMEandPYTHONUTF8exports, and theclaude()boot-shim function between theAIPass boot shimmarkers. On Windows, adronewrapper in your PowerShell profile. ~/.aipass/— cross-project state: the fleet registry, trust registry, commons database, admin key, skills, the BAUD phone face andbaud-cliunderbaud/, Telegram bot state (the Telegram skill is retired and switched off, but its state lands here if you turn it on).~/.secrets/aipass/if seeded.git config --global pull.rebase true, set only if install also set your identity.- Only if a
codexbinary was on PATH at install:~/.codex/config.tomlis rewritten. - Only if you ran
drone @daemon install-timer: a systemd user timer, removed bydrone @daemon uninstall-timer. - macOS only, when no Python 3.10+ is found and an existing Homebrew cannot provide one: a
uv-managed interpreter under~/.local/. Linux with no Python 3.10+ stops the install and says so.
No cloud accounts, no external services — everything to clean up is on your machine.
Use spawn's delete command to cleanly archive and deregister:
drone @spawn delete @agent_name # asks for confirmation; --yes skips itThis copies the agent's directory to .archive/deleted_branches/ (minus .venv, .git, caches), removes it from the registry, then deletes the original. The fleet's own core agents (spawn, drone, devpulse, the registry owner) refuse deletion.
Subscriptions & Compliance
AIPass runs on your existing Claude subscription — Pro or Max. No API keys required for core functionality. No extra costs beyond your existing subscription.
This works because AIPass runs Claude Code as an official subprocess — the same binary you'd run yourself in a terminal. It doesn't extract credentials, proxy API calls, or intercept tokens. Your subscription stays within the provider's infrastructure at all times.
- Extract or redirect subscription OAuth tokens
- Intercept CLI-to-provider communication
- Bypass rate limits or prompt caching
- Impersonate official CLI clients
Claude Code is proprietary but officially supports hooks and subprocess usage.
API keys are only needed for the optional OpenRouter integration (the OpenAI SDK is used as its transport; there is no separate OpenAI provider). For server/automated deployments, API key authentication is recommended per Anthropic's guidance.