Download Latest Version v2026.518.2 source code.tar.gz (4.2 MB)
Email in envelope

Get an email when there's a new version of OpenACP

Home / v2026.424.2
Name Modified Size InfoDownloads / 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 InstanceContext and InstanceRegistry — track and manage multiple OpenACP instances on one machine
  • --local, --global, --dir, --from, --name CLI flags for instance targeting
  • openacp status --all and --id for 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/afterSwitch middleware hooks for plugins
  • Per-agent history labeling and promptCount persistence for smarter resume decisions

Identity System

  • Full identity service with /whoami command, username validation, and identity re-linking via identitySecret
  • REST API routes: POST /identity/setup, GET /identity/me
  • Auto-registration middleware attaches identity to sessions automatically
  • JWT tokens now include userId for 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 TokenStore persistence 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
  • ConnectionManager for SSE connection lifecycle with per-user tracking
  • Circular event buffer for reconnect support
  • Prompts routed through message:incoming middleware chain
  • User-level notifications via ctx.notify() from any plugin

Output Mode & Rich Display

  • New OutputMode type: compact, detailed, viewer
  • ToolStateMap, DisplaySpecBuilder, ThoughtBuffer, StreamAccumulator for rich tool card rendering
  • ViewerStore output type with /output/:id route and tunnel outputUrl integration
  • /outputmode command for session-level override (cascades global → adapter → session)
  • Diff stats computation and enriched viewer links

Conversation History

  • HistoryRecorder accumulates turn events and writes structured history
  • HistoryStore, HistoryProvider, and context builder for agent memory
  • TurnMeta threading through message pipeline with agent:afterTurn hook

Auto-Approved Commands

  • Plugins can declare autoApprovedCommands glob patterns in their manifest
  • Matching bash commands are automatically approved without user confirmation
  • Plumbed through OpenACPCore.createSession and SessionFactory

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 createSession is 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 adapters
  • openacp restart — restart the daemon with --foreground/--daemon flags
  • openacp attach — connect to a running daemon
  • openacp remote — generate remote access token + QR code for the OpenACP App
  • openacp autostart — install/uninstall/check system autostart
  • Smart default command: running openacp with daemon active shows rich status menu with keypress navigation

Telegram Improvements

  • /retry command — 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
  • autoApprovedCommands field in OpenACPPlugin manifest 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_WAITING emit race condition in queue notifications
  • Tunnel: Add events:emit permission 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 channel param in POST /api/sessions
  • API: Wire --channel flag in CLI and assistant prompts
  • Config: Auto-install Discord plugin when enabling via config editor
  • Fix: openacp plugin add ignores 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-discord compatibility alias, but manual re-install may be required: openacp plugin add @openacp/plugin-discord
Source: README.md, updated 2026-04-24