| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-04-24 | 6.5 kB | |
| v2026.424.2 source code.tar.gz | 2026-04-24 | 4.2 MB | |
| v2026.424.2 source code.zip | 2026-04-24 | 4.8 MB | |
| Totals: 3 Items | 9.0 MB | 0 | |
What's New
Major Features
Multi-instance Support
- New
InstanceContextandInstanceRegistry— track and manage multiple OpenACP instances on one machine --local,--global,--dir,--from,--nameCLI flags for instance targetingopenacp status --alland--idfor multi-instance overview- Instance naming, copy/move flow, and auto-registration with migration from global
~/.openacp - Autostart install/uninstall/status commands
Agent Switch (/switch command)
- Switch between AI agents (Claude, Gemini, GPT, etc.) within an active session
- Available in Telegram, Discord, and Slack adapters
beforeSwitch/afterSwitchmiddleware hooks for plugins- Per-agent history labeling and
promptCountpersistence for smarter resume decisions
Identity System
- Full identity service with
/whoamicommand, username validation, and identity re-linking viaidentitySecret - REST API routes:
POST /identity/setup,GET /identity/me - Auto-registration middleware attaches identity to sessions automatically
- JWT tokens now include
userIdfor identity tracking
API Server Redesign (Fastify)
- Complete migration from Express to Fastify with Zod input validation on all routes
- Rate limiting, CORS, and OpenAPI support built-in
- JWT authentication with
TokenStorepersistence and token revocation - Plugin-based route registration via
ApiServerService - Backward-compatible redirects from
/api/→/api/v1/
SSE Adapter (Real-time Streaming)
- New SSE (Server-Sent Events) adapter for real-time agent output in web clients
ConnectionManagerfor SSE connection lifecycle with per-user tracking- Circular event buffer for reconnect support
- Prompts routed through
message:incomingmiddleware chain - User-level notifications via
ctx.notify()from any plugin
Output Mode & Rich Display
- New
OutputModetype:compact,detailed,viewer ToolStateMap,DisplaySpecBuilder,ThoughtBuffer,StreamAccumulatorfor rich tool card renderingViewerStoreoutput type with/output/:idroute and tunneloutputUrlintegration/outputmodecommand for session-level override (cascades global → adapter → session)- Diff stats computation and enriched viewer links
Conversation History
HistoryRecorderaccumulates turn events and writes structured historyHistoryStore,HistoryProvider, and context builder for agent memoryTurnMetathreading through message pipeline withagent:afterTurnhook
Auto-Approved Commands
- Plugins can declare
autoApprovedCommandsglob patterns in their manifest - Matching bash commands are automatically approved without user confirmation
- Plumbed through
OpenACPCore.createSessionandSessionFactory
Queue Management
/clearqueue— discard all pending prompts without aborting current/flush— abort current prompt and clear queue- Queue prioritization:
Session.prioritizePrompt(turnId)to skip queue - REST endpoints:
DELETE /api/v1/sessions/:id/queue,POST /api/v1/sessions/:id/flush - Telegram: queue notifications with inline buttons (Process Now / Clear / Flush)
Agent Warm Pool
- New warm-pool pre-spawns agent subprocess before
createSessionis called - Eliminates cold-start latency on first prompt — subprocess is ready to go
- Evicts mismatched warm entries before spawning new ones
New Commands & CLI
openacp channels— list all connected adaptersopenacp restart— restart the daemon with--foreground/--daemonflagsopenacp attach— connect to a running daemonopenacp remote— generate remote access token + QR code for the OpenACP Appopenacp autostart— install/uninstall/check system autostart- Smart default command: running
openacpwith daemon active shows rich status menu with keypress navigation
Telegram Improvements
/retrycommand — retry the last message- Paginated model selection (
/model) with inline keyboard navigation - Merged static + plugin commands for Telegram autocomplete
- Queue notifications with inline action buttons
- Improved onboarding instructions and group detection
Plugin SDK
- Exported:
ToolStateMap,DisplaySpecBuilder,OutputModeResolver,ToolCardState,ThoughtBuffer - Exported:
TurnMeta,MiddlewarePayloadMap, new storage/hook methods in test context autoApprovedCommandsfield inOpenACPPluginmanifest type
Plugin System
- Discord plugin extracted — Discord is no longer built-in; install via
npm install @openacp/plugin-discord - Discord and Slack added as official adapter options in the setup wizard
- Dev loader hot-reloads entire plugin tree (not just entry module)
- Plugin registry reloads from disk on list to show CLI-installed plugins without restart
Debug & Observability
OPENACP_DEBUG=1— writes 3 JSONL trace files per session (events, tool calls, full turns)- Configurable per-agent init timeout via config
- Improved plugin startup logging and command synchronization
One-liner Install Scripts
curl -fsSL openacp.dev/install.sh | sh— macOS/Linux- PowerShell script for Windows
Bug Fixes
- Session: Handle late cancel when agent completes before abort arrives — retroactively marks turn as
interrupted - Session: Allow archiving sessions in any non-initializing state
- Session: Create session thread before spawning agent for faster UX
- Warm pool: Evict mismatched warm entry before spawning new one
- Queue: Fix
PROMPT_WAITINGemit race condition in queue notifications - Tunnel: Add
events:emitpermission required for tunnel lifecycle events - Plugin loading: Fix 3 bugs preventing dev plugins from loading
- Plugin installer: Fix silent exit on fresh macOS due to
set -e+&&operator - Telegram: Fix stale callback errors in model pagination with toast notification
- Telegram: Remove unnecessary session resume in
/newchat - API: Respect
channelparam inPOST /api/sessions - API: Wire
--channelflag in CLI and assistant prompts - Config: Auto-install Discord plugin when enabling via config editor
- Fix:
openacp plugin addignores flag args (e.g.--json) as package name
Breaking Changes
- Discord adapter is no longer bundled. Existing users are migrated automatically via the
@openacp/plugin-discordcompatibility alias, but manual re-install may be required:openacp plugin add @openacp/plugin-discord