The Co-Founder beforeToolCall hook (introduced in 77f81a7) gated every
non-readonly pi tool call as a `dangerous_command` approval. Because
agents call `POST /api/companies/:id/messages`, `/agents` (hire), and
every other company mutation via bash→node/curl, the first bash call in
every Co-Founder run got parked on a 30-minute approval timeout. Users
observed it as "agents never talk to each other" and "every bash command
waits for approval"; both symptoms are the same bug.
The business-level approval flow (`hire_agent`, `document_review`,
`plan_review`, etc. in execution-policy.ts) already gates the events
users actually care about, at the HTTP route layer where the event
originates (routes-agents.ts:368 for hiring, document routes for
deliverables). Stacking a pi-level hook on top was duplicate gating with
the wrong taxonomy.
Removed:
- src/main/agent-runtime/approval-hook.ts (entire file, 137 LOC)
- `beforeToolCall` conditional in worker-runner.ts and the
corresponding RPC method in worker-types.ts and runtime-bridge.ts
- `approvalHook` field + `resolveApproval` callback + shutdown
`cancelAll` in runtime-bridge.ts / service-graph-pi-runtime.ts /
wire-api-server.ts
Unchanged:
- `dangerous_command` approval type itself (still used by automation
workflows and routes-misc.ts)
- CEO mode (already never attached the hook)
- All business-level approval types and their wiring
AgentCompany
Launch autonomous AI companies from your desktop.
Set a goal. Watch AI agents self-organize, delegate, and deliver.
PLEASE USE A CODING PLAN, IT COMSUMES A LOT OF TOKENS
I will add support for Ollama and Github Copilot in the near future.
Download | Website | Features | Quick Start
What is AgentCompany?
AgentCompany is a cross-platform desktop app that turns a single goal into a coordinated AI team. You provide a company name, description, and mission. A CEO agent self-organizes departments, delegates tasks, and produces deliverables — code, content, research, business plans, and more — while you observe and approve through a chat-based command hub. Inspired by Paperclip
Supported AI Runtimes
| Runtime | Status |
|---|---|
| Claude Code | Ready |
| Codex CLI | Ready |
| Gemini CLI | Ready |
Features
Self-Organizing Teams
Your AI CEO builds the org chart — recruiting specialists, creating departments, and establishing reporting lines from a single goal.
Real-Time Agent Communication
Agents coordinate through channel and direct-message threads. Watch decisions unfold in real time.
Autonomous Task Management
Goals break down into tasks automatically. Agents pick up work, report progress, and escalate blockers without intervention.
Human-in-the-Loop Approvals
Critical decisions surface for your review. Approve, reject, or redirect — your company respects the chain of command.
AI Document Generation
Agents draft business plans, marketing strategies, and technical specs — stored in a shared document center.
One-Click Company Creation
Name it, describe the mission, connect a runtime, and launch. Agents start working in under a minute.
Quick Start
Download
Grab the latest release for your platform:
Available for macOS (Apple Silicon & Intel), Windows, and Linux.
Build from Source
# Prerequisites: Node.js 22+, pnpm 10+
pnpm install
pnpm dev
Verification
pnpm typecheck
pnpm lint
pnpm test:unit
pnpm test:integration
pnpm test:e2e
pnpm build:verify
Packaging
pnpm build # Compile + package for current platform → /build/release
pnpm build:dir # Compile + unpackaged directory
pnpm build:current # Build for current host platform (see note below for other OS)
pnpm release:local # Signed/uploading release pipeline (see docs/release/local-r2.md)
- Targets: macOS (
.dmg), Windows (.exe/ NSIS), Linux (.AppImage) - Packaging uses
electron-builder - Local builds use ad-hoc signing (
CSC_IDENTITY_AUTO_DISCOVERY=false) - Defaults to
--publish never; override withAGENTCOMPANY_ELECTRON_PUBLISH - Cloudflare R2 release hosting + auto-update pipeline:
docs/release/local-r2.md
Architecture
src/
main/ # Electron main process — database, services, IPC, orchestration
preload/ # Context-isolated bridge — DesktopApi via contextBridge
renderer/ # React 19 UI — components, hooks, i18n
shared/ # Contracts, types, Zod schemas shared across processes
packages/
adapter-utils/ # Shared adapter utilities
adapter-claude-local/
adapter-codex-local/
adapter-gemini-local/
Key Design Decisions
- Local-first: SQLite database, secrets in OS keychain, no external services required
- Security:
contextIsolation: true,nodeIntegration: false, Zod-validated IPC, JWT agent tokens - Agent coordination: Agents delegate tasks, escalate blockers, and produce deliverables through the orchestration runtime
Tech Stack
| Layer | Technology |
|---|---|
| Framework | Electron 39.8.0 |
| Runtime | Node.js 22+ |
| Language | TypeScript 5.9 (strict) |
| UI | React 19, Tailwind CSS 4, Framer Motion |
| Build | electron-vite, Vite 7, electron-builder |
| Database | SQLite (WAL mode, schema in src/main/database/) |
| Validation | Zod 4 |
| Testing | Vitest, Playwright |
License
Built with quiet authority. Ship your AI company.






