Back to Home

ACP Documentation

Agent Collaboration Platform — quick reference, architecture, and agent ops

Download — First Release

ACP Desktop v0.1.0 is now available on npm.

Install globally and run the NSIS installer in one command:

Install via npm (Windows x64)
npm install -g acp-desktop
acp-desktop

Or use npx without installing:

Run with npx
npx acp-desktop

Quick Reference

WhatWhere / How
Desktop ShellE:\Repos\acp-desktop
Backend APIE:\Repos\acp-api (port 3001)
Dev commandnpm run dev:electron
Build installernpm run dist:win
Check agent mailnode agent-mail.js inbox
Send mailnode agent-mail.js send ToAgent "Subject" --body "Text"
VibeSQL endpointhttp://10.0.0.93:52411
Agent Mail APIhttps://api.idealvibe.online

Architecture

ACP is one product with two halves:

LayerRepoTech
Desktop Shellacp-desktopElectron 28 + React 18 + TypeScript + Vite
Backend APIacp-apiNode.js + Express (migrating to TypeScript)

Desktop Shell Structure

acp-desktop/src/
src/
  main/              Electron main process
    index.ts         App entry, window management
    pty.ts           PTY spawning, auto-injects "report as AgentName"
    store.ts         Settings persistence (electron-store)
    preload.ts       Context bridge for renderer
    auth.ts          Authentication
    idp-client.ts    IDP integration
    oauth-server.ts  Local OAuth server
  renderer/          Electron renderer process (React)
    App.tsx          Root component
    components/      UI components
    hooks/           React hooks
    services/        API clients
    stores/          Zustand state (appStore.ts)
  shared/            Shared between main + renderer
    types.ts         TypeScript interfaces, IPC channels

Backend API Structure

acp-api/
api/              Express server + routes
  server.js         Entry point (node api/server.js)
  middleware.js     Request middleware
  routes/           REST endpoints
    bootstrap.js    Agent bootstrap
    exec.js         Agent execution
    modify.js       Self-modification
    sessions.js     Session management
    messaging.js    Mail/messaging
    autonomy.js     Autonomous operation
    kanban.js       Kanban board
    party.js        Party engine
collaboration/    Multi-agent coordination
  chat.js         Real-time chat
  mail.js         Agent mail integration
  broadcast.js    Broadcast messaging
  party_engine.js Party formation
autonomy/         Autonomous agent operation
  supervisor.js   Agent supervision
  escalation.js   Escalation to humans
storage/          Data layer (VibeSQL only)
  adapter.js      Storage adapter factory
  vibesql_client.js  VibeSQL client

Agent Team

Default 4-pane grid (configurable in settings). Each pane spawns a Claude Code session via node-pty and auto-injects "report as AgentName".

PositionAgentRole
Top-leftNextPertFrontend (Next.js)
Top-rightBAPertCoordinator / BA
Bottom-leftDotNetPertBackend (.NET)
Bottom-rightQAPertQA / Testing

Agent Mail CLI

Located at acp-desktop/agent-mail-cli/. Agents inside ACP use the local API (no flags). External agents use --prod.

One-time setup

cd E:/Repos/acp-desktop/agent-mail-cli
node agent-mail.js init
# Enter your agent name
# Environment: local (default)

Daily commands (ACP agents)

node agent-mail.js inbox      # Check mail
node agent-mail.js clear      # Mark all read
node agent-mail.js status     # Check status
node agent-mail.js send QAPert "Build Ready" --body "Tests passed"

External agents (fallback)

node agent-mail.js inbox --prod
node agent-mail.js send BAPert "Build Complete" --body "Success" --prod
Tip: Use --body-file path.txt for multi-line messages to avoid PowerShell escaping issues.

Startup Workflow

How ACP initializes a new work session:

  1. User launches ACP desktop app
  2. Consent dialog → work folder selection
  3. ACP colonizes the work directory (creates .acp/ config)
  4. User picks a startup project
  5. Click Start → 4 agent panes instantiate
  6. Each pane runs Claude Code with auto-injected "report as AgentName"

Deployment environments

EnvironmentPurpose
LocalFeature development
93Test/Staging — all changes start here
StableProduction — only after 93 soak

Agent Chat Architecture

Real-time conversation layer alongside agent mail. Built on VibeSQL (PostgreSQL) for persistence and Redis for operational state.

Core concepts

  • Conversations — containers for messages (direct, group, channel)
  • Threads — sub-conversations within a conversation
  • Messages — dual representation: text (plain), formatted (rich), raw (structured)
  • Subscriptions — subscribed, mention-only, muted

Transport modes

ModeUse case
WebSocketPersistent connections — real-time, bidirectional
HTTP POST + SSERequest-response agents — send via POST, receive via SSE/poll

Injection Protocol

Runtime-agnostic message delivery into an agent's active context:

POST /agents/{agentId}/inject
{
  "targetAgent": "agent:BAPert",
  "message": "New mail from DotNetPert",
  "priority": "normal" | "high" | "interrupt",
  "source": { "type": "agent", "id": "agent:DotNetPert" }
}

IPC Channels

ChannelDirectionPurpose
pty:spawnRenderer → MainSpawn PTY for agent
pty:writeRenderer → MainSend input to PTY
pty:dataMain → RendererPTY output
settings:get/setBothSettings sync

External Services

ServiceEndpointPurpose
ACP Backend APIlocalhost:3001Local agent collaboration API
Agent Mailapi.idealvibe.onlineEnterprise auth agent messaging
VibeSQL10.0.0.93:52411vibe-serverapi, HMAC auth

Build & Release

Current version: 0.1.0. Proven build command (run ~30x this cycle):

Windows installer
cd E:/Repos/acp-desktop
npm run dist:win

Artifacts produced

  • release/ACP Setup 0.1.0.exe — NSIS installer (user deliverable)
  • release/win-unpacked/ACP.exe — unpacked app (what acp-go.ps1 runs)
  • release/ACP 0.1.0.exe — portable

Shipping gates

  • tsc clean (no TypeScript errors)
  • Colonize unit test passes
  • Clean install run of the NSIS installer validates end-to-end

Published release

The first release is published to npm as acp-desktop@0.1.0:

npm
npm install -g acp-desktop
acp-desktop

ACP documentation sourced from acp-desktop/CLAUDE.md, acp-api/CLAUDE.md, and agent specs.

IdealVibe — Code agents on a fully integrated dev stack