diff --git a/README.md b/README.md index fae13d25..ce2e85d6 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,7 @@

AgentCompany

-

- Run an AI company from your desktop.
- Give it a mission. Watch agents hire, delegate, and deliver. -

+

Run an AI company from your desktop.

Latest Release @@ -17,119 +14,109 @@

- Download  |  Website  |  What it does  |  Quick Start + Download  |  Website

---

- AgentCompany Dashboard — active agents, tasks, and company metrics + AgentCompany dashboard

-## What is AgentCompany? +## What it does -You type a company name, a mission, and a first goal. AgentCompany boots a CEO agent who hires specialists, forms departments, and runs the business — writing code, drafting plans, producing research, shipping deliverables. You watch, approve, and steer through a desktop command center. +Type a company name and a goal. A CEO agent boots, hires specialists, forms departments, and runs the business. You approve or steer from the desktop. -Local-first. No external services. Your data stays on your machine. - -Inspired by **[Paperclip](https://github.com/paperclipai/paperclip)**. +Local, SQLite-backed, no external services. Inspired by [Paperclip](https://github.com/paperclipai/paperclip). --- -## What's in the box +## 26 providers, no CLI -### 26 AI providers, one install +The runtime links [pi-mono](https://github.com/mariozechner/pi) directly. No `claude` / `codex` / `gemini` binaries on your PATH. -No CLIs to install on your PATH. No `claude` / `codex` / `gemini` binaries. The agent runtime is linked directly via [pi-mono](https://github.com/mariozechner/pi). +**OAuth (5):** Claude Pro/Max · ChatGPT Plus/Pro (Codex) · GitHub Copilot · Gemini CLI · Antigravity -**5 OAuth subscriptions** — sign in with the accounts you already pay for: -Claude Pro / Max · ChatGPT Plus / Pro (Codex) · GitHub Copilot · Google Gemini CLI · Google Antigravity +**API key (18):** Anthropic · OpenAI · Google · Mistral · Groq · Cerebras · xAI · OpenRouter · Vercel AI Gateway · ZAI · OpenCode · OpenCode Go · Hugging Face · Kimi · MiniMax · MiniMax CN · Fireworks · Fireworks Firepass -**18 API-key providers:** -Anthropic · OpenAI · Google Gemini · Mistral · Groq · Cerebras · xAI · OpenRouter · Vercel AI Gateway · ZAI · OpenCode · OpenCode Go · Hugging Face · Kimi For Coding · MiniMax · MiniMax CN · Fireworks · Fireworks Firepass +**Cloud (3):** Azure OpenAI · AWS Bedrock · Google Vertex AI -**3 Cloud providers:** -Azure OpenAI (Responses API) · AWS Bedrock · Google Vertex AI +Credentials are SecretVault-encrypted in SQLite. -Credentials are stored encrypted at rest in a SecretVault-backed SQLite table. No plaintext, no `~/.pi/agent/auth.json`, no scattered env files. +--- -### Two execution modes, per company +## Two execution modes -- **AI CEO** — fully autonomous. Hiring, task assignment, and deliverable publishing run without you. -- **AI Co-Founder** — human-reviewed. Hiring and deliverables pause for your decision at `hire_agent` / `document_review` / `plan_review` / `strategy_review` approval gates. +- **AI CEO** — autonomous. Hiring, tasks, deliverables run without you. +- **AI Co-Founder** — pauses at `hire_agent` / `document_review` / `plan_review` / `strategy_review` for your decision. -Switch any time in Settings → Execution mode. +Switch at Settings → Execution mode. --- ## Features ### Self-organizing teams -Your AI CEO draws the org chart — recruiting specialists, creating departments, and establishing reporting lines from a single goal. +CEO builds the org chart from one goal.

- Auto-generated org chart with CEO and department heads + Org chart

-### Real agent-to-agent messaging -Agents coordinate through channel and direct threads — not scripted status updates. Inter-agent messages feed into each recipient's conversation transcript as first-class turns, so context travels with the work instead of being re-rendered from scratch every run. +### Agent messaging +Threads and DMs between agents. Messages land in each recipient's transcript as pi `AgentMessage` turns.

- Real-time messaging between AI agents + Agent messaging

-### Autonomous task management -Goals break into tasks. Agents pick them up, report progress, and escalate blockers on their own. +### Tasks +Goals break into tasks. Agents pick them up, report progress, escalate blockers.

- Autonomous task queue with goals and status tracking + Task queue

-### Human-in-the-loop approvals -Material decisions surface to the board: hiring, document delivery, plan and scope reviews, strategy reviews, budget overrides, production deploys. Approve, reject, or ask for a revision — the company respects the chain of command. +### Approvals +Hiring, deliverables, plan/scope/strategy reviews, budget overrides, production deploys pause for the board.

- Human approval workflow for agent decisions + Approvals

-### AI document generation -Agents draft business plans, marketing strategies, and technical specs — kept in a shared document center linked to the tasks that produced them. +### Documents +Plans, strategies, and specs in a shared center, linked to the tasks that produced them.

- Document center with AI-generated deliverables + Document center

-### One-minute company creation -Name it, write the mission, pick a provider, choose the mode, launch. Agents are at work before your coffee. +### Launch in a minute +Name, mission, goal, provider, mode.

- Company creation onboarding flow + Onboarding

--- ## Quick Start -### Download - -**[Download AgentCompany](https://github.com/ZacharyZhang-NY/AgentCompany/releases)** - -macOS (Apple Silicon & Intel), Windows, Linux. +[Download the latest release](https://github.com/ZacharyZhang-NY/AgentCompany/releases) — macOS (Apple Silicon & Intel), Windows, Linux. ### Build from source ```sh -# Prerequisites: Node.js 22+, pnpm 10+ +# Node.js 22+, pnpm 10+ pnpm install pnpm dev ``` ### First run -1. **Launch.** Onboarding probes your shell PATH for `node` — agents invoke the local HTTP API through `node -e`, so a shell Node is required. Platform-specific install commands are shown if it's missing. -2. **Configure a provider.** Settings → Providers. OAuth providers open your default browser; API-key providers take a key; Azure/Bedrock/Vertex take their respective endpoint + credential config. -3. **Create a company.** Name, mission, first goal, execution mode, workspace path. -4. **Go.** The CEO starts within seconds. +1. Onboarding probes your shell PATH for `node` (agents call the local HTTP API via `node -e`). +2. Settings → Providers. Sign in or drop a key. +3. Create a company: name, mission, goal, mode, workspace. --- @@ -147,17 +134,13 @@ pnpm build:verify ## Packaging ```sh -pnpm build # Compile + package for current platform → /build/release -pnpm build:dir # Compile + unpackaged directory -pnpm build:current # Build for current host platform -pnpm release:local # Signed / upload release pipeline (see docs/release/local-r2.md) +pnpm build # Package for current platform → /build/release +pnpm build:dir # Unpackaged directory +pnpm build:current # Current host platform +pnpm release:local # Signed release pipeline — see docs/release/local-r2.md ``` -- **Targets:** macOS (`.dmg`), Windows (`.exe` / NSIS), Linux (`.AppImage`) -- Packaging via `electron-builder` -- Local builds use ad-hoc signing (`CSC_IDENTITY_AUTO_DISCOVERY=false`) -- Defaults to `--publish never`; override with `AGENTCOMPANY_ELECTRON_PUBLISH` -- Cloudflare R2 release hosting + auto-update: `docs/release/local-r2.md` +Targets: macOS `.dmg`, Windows `.exe` (NSIS), Linux `.AppImage`. Built with `electron-builder`. Local builds use ad-hoc signing (`CSC_IDENTITY_AUTO_DISCOVERY=false`). Defaults to `--publish never`. --- @@ -165,40 +148,37 @@ pnpm release:local # Signed / upload release pipeline (see docs/release/local-r2 ``` src/ - main/ # Electron main process - agent-runtime/ # RuntimeBridge, SqliteSessionStore, CostWriter - credentials/ # CredentialStore, CredentialResolver, OAuthLoginService - api-server/ # Agent-facing HTTP API (tasks, messages, approvals, ...) - orchestration/ # Scheduler, run dispatch, turn context - prompt-builder/ # System prompt assembly + API docs injection - thread-integration/ # Thread runtime event routing - worker/ # utilityProcess worker — direct `new Agent(...)` via pi-mono - database/ # SQLite schema + migrations - preload/ # Context-isolated bridge — typed DesktopApi via contextBridge - renderer/ # React 19 UI — components, hooks, i18n, state - shared/ # Contracts, types, Zod schemas shared across processes + main/ + agent-runtime/ RuntimeBridge, SqliteSessionStore, CostWriter + credentials/ CredentialStore, Resolver, OAuthLoginService + api-server/ Agent HTTP API + orchestration/ Scheduler, run dispatch + prompt-builder/ System prompt assembly + thread-integration/ Thread runtime event routing + worker/ utilityProcess worker — direct new Agent(...) + database/ SQLite schema + migrations + preload/ Typed DesktopApi via contextBridge + renderer/ React 19 UI + shared/ Zod schemas shared across processes ``` -### Key design decisions - -- **Local-first.** SQLite on your machine. SecretVault-encrypted credentials. No external services required for core operation. -- **Process isolation.** `contextIsolation: true`, `nodeIntegration: false`, Zod-validated IPC. Renderer never imports `@mariozechner/pi-*`; all agent traffic is proxied through main → utilityProcess worker. -- **Runtime direct.** `@mariozechner/pi-agent-core` is a first-class dependency. The worker calls `new Agent({...})` directly — no adapter shim, no CLI shell-out. -- **Session as transcript.** Each agent's conversation persists as `session_entries` rows of pi `AgentMessage[]`. Long sessions auto-compact via `shouldCompact` + `compact` from pi-coding-agent; state survives app restarts. -- **Thread runtime.** `conversation_threads` + `conversation_events` + `thread_wait_states` sit above pi's `AgentMessage` stream so the inbox / approval / review UX is a first-class runtime concern, not UI-only veneer. +- SQLite local; no external services. +- `contextIsolation: true`, `nodeIntegration: false`, Zod-validated IPC. +- Worker constructs `new Agent({...})` from `@mariozechner/pi-agent-core` directly. +- Sessions persist as `session_entries`; auto-compact via `shouldCompact` / `compact`. +- Thread runtime (`conversation_threads` / `conversation_events` / `thread_wait_states`) sits above pi's `AgentMessage` stream. --- ## Tech Stack -| Layer | Technology | -|-------|-----------| +| Layer | Tech | +|-------|------| | Framework | Electron 39.8.0 | -| Runtime | Node.js 22+ (bundled in Electron; shell `node` required for agent HTTP callbacks) | -| Language | TypeScript 5.9 (strict) | +| Language | TypeScript 5.9 | | UI | React 19, Tailwind CSS 4, Framer Motion, Zustand | | Build | electron-vite, Vite 7, electron-builder | -| Database | SQLite via `node:sqlite` (WAL mode) | +| Database | SQLite via `node:sqlite` (WAL) | | Validation | Zod 4 | | Agent runtime | `@mariozechner/pi-ai`, `@mariozechner/pi-agent-core`, `@mariozechner/pi-coding-agent` | | Testing | Vitest, Playwright | @@ -208,9 +188,3 @@ src/ ## License [MIT](LICENSE) - ---- - -

- Built with quiet authority. Ship your AI company. -