Update #7. Covers two releases since the last post, 2.6.0 (Jun 23) and 2.6.1 (Jul 2). The through-line this cycle: reach your agents from outside the terminal, and let projects that aren't AIPass use the framework.
You can now text a running agent from Telegram - and it lands in the live session, not a separate bot. A Telegram message to a branch's bot gets typed straight into that agent's already-running Claude Code terminal. The bridge finds the live session by reading the PID files Claude Code writes under ~/.claude/sessions/, matches it to the tmux pane by working directory, and injects your message with tmux send-keys. When the agent finishes, a Stop hook tails the session transcript and sends the reply back to Telegram. It is a real round trip into a live coding session, proven end to end from an actual phone. Four bots run under systemd on my box right now. (PRs #646, #650)
The honest limitation, stated plainly: it only works locally. Anthropic's terms don't allow a cloud bot to use your Claude login, so the session has to run in tmux on your own machine, and it needs bot credentials and a small boot shim. That is a hard ceiling, not a to-do. I would rather tell you the boundary than sell around it.
Install changed - it is clone-only now, and pip install is retired. If you followed an earlier post that said pip install aipass, that path is no longer the supported one. The new install is one path: git clone the repo, run ./setup.sh (puts the aipass and drone commands on your PATH), then go to your own project and run aipass init. The reason the clone matters is that setup.sh wires the hooks into your CLI and gives you the full agent reference implementation to read - a bare package install can't do that.
**aipass init now starts empty by default.** This is a real reversal of an old rough edge. New projects used to get the entire agent scaffold dropped on them day one, which read as overwhelming. Now init opens with a template chooser, and empty project is the default - you get just your project folder, nothing else. The full framework (aipass_framework) is the second option, opt-in. Start clean, add agents when you actually want them.
Agents can now live in any project, not just inside AIPass. drone and spawn used to hardcode the src/aipass layout to find things. They now locate a project and its agents by walking up for a registry file and .trinity/ markers, so an agent created into any project gets tracked by that project's own registry, not AIPass's. This is the plumbing that lets the framework run other projects. (One helper still keys on the AIPass registry name - not fully generic yet, being honest.)
A kernel-enforced filesystem sandbox for agents - off by default. Set a flag and each dispatched agent launches inside a bwrap + seccomp mount namespace. Reads stay fully open, but deletes and overwrites of protected paths (.git, sibling agent trees) fail at the kernel no matter how they're phrased - rm, os.remove, find -delete, the editor, all hit a read-only filesystem. Privileged deletes route through an out-of-process broker with an HMAC identity handshake. If the sandbox can't initialize, the spawn aborts rather than quietly running unprotected. It is inert unless you turn it on, and it is Linux-only. (DPLAN-0202)
The system can wake itself on a schedule. Each branch owns a .daemon/schedule.json; a systemd user timer fires every couple of minutes, scans for due jobs, and wakes those branches with no human in the loop. The wake runs in its own transient systemd unit so it survives the timer's cleanup. Install-it-yourself and Linux/systemd-only for now.
Memory reliability, told straight: rollover had been silently dead for weeks. The mechanism that rolls old memory entries out to vector search when a file fills up was quietly not firing - a hook was reading its limits from the wrong place and always fell through to a fallback that never triggered. It is fixed end to end, and the fallback that hid the failure was deleted so it fails loudly next time instead of silently. Also unified all four memory file sections onto one schema and moved the config behind a single self-healing loader (it had drifted across nine readers with disagreeing defaults).
Backup is fully rebuilt, and it was dropping files it shouldn't have. @backup now does snapshot plus a versioned baseline-and-diff store plus Google Drive sync, with a real restore command. Along the way we caught it skipping every dotfile from the offsite copy - which meant the memory directories, the vectors, and the mailboxes were not being backed up. Fixed; the offsite copy now matches the local one.
Compass - a decision log you can search. A new /compass command records design decisions into a local SQLite database with full-text search, tagged by outcome (good / bad / impressive / interesting). Separate from the memory system on purpose: memory ingests everything, compass is the curated record of calls that mattered.
Prompt injection is tiered now. The single always-on prompt block that got re-sent every turn is split in two: a small kernel (~2KB) that fires every turn, and the full navigation map (~8KB) that fires at session start, after compaction, and every fifth turn. More navigation context reaches the agent, less is paid per turn. The old single-prompt loader was retired.
Supply-chain trust. The release workflow now signs each build with Sigstore (keyless - no signing key exists to steal), on top of PyPI Trusted Publishing. Tightened the last CI workflow that was running with broad token permissions, and closed the clear-text-logging findings so no secret value ever prints to stdout - which matters here because Claude Code reads command output into its context.
Fresh numbers:
- Stars: 228 (up from 190 last update)
- Forks: 32
- Citizens: 17 (up from 13 - added @daemon, @skills, @commons)
- Latest release: 2.6.1
- Tests: 8,400+
- CI: green
Full changelog in the repo at CHANGELOG.md.
https://github.com/AIOSAI/AIPass/blob/main/CHANGELOG.md
Raw dev logs always here at r/AIPass.