ACEGet ACE
ACE/Docs/Introduction

Product documentation

Build with multiple agents, then ship through a real workflow.

ACE is an Agentic Coding Environment for people who want AI agents to plan, build, review, verify, and deliver project work without turning every task into a pile of terminal tabs.

3
model families
4
workflow styles
2
runtime channels

Adoption case

Who ACE is for

ACE is for builders who want AI to do real project work but do not want to manually coordinate every model, branch, tool, review, preview, and release step. It works for founders building prototypes, operators creating internal tools, designers turning ideas into runnable projects, and developers who want stronger review before accepting AI-generated work.

The reason to use ACE is not only speed. The stronger reason is control. ACE keeps the work in normal local repositories, separates tasks into isolated workspaces, and gives the user a visible path from idea to artifact.

Why the extra structure matters
One model can be fast, but important work benefits from disagreement, review, and synthesis. ACE makes that collaboration part of the product instead of something the user has to coordinate manually.

Getting started

First launch

ACE installs as a desktop app for macOS and Windows. On macOS the production app lives at /Applications/ACE.app and the developer channel app lives at /Applications/ACE Dev.app; on Windows ACE installs from the Windows build on the download page. On first launch, ACE checks whether the required local tools are installed and authenticated.

  • Claude CLI powers Claude Code execution.
  • Codex CLI powers OpenAI Codex execution.
  • Gemini uses Gemini CLI for paid API, Standard, Enterprise, and supported Google Cloud access, or OpenRouter as a fallback. Antigravity task execution remains unavailable until its CLI supports safe per-run discovery isolation; authorization alone does not enable it.
  • A GitHub account, connected in the browser, powers repository cloning, PR creation, and GitHub account flows.

Provider accounts remain provider accounts. ACE coordinates the workflows, but model authentication still runs through the connected provider tools or supported saved-key paths.

Setup philosophy
ACE does not hide the local developer environment from the user. It makes required tools visible, checks them before model work starts, and keeps failures actionable instead of letting a run collapse halfway through.

Workspace model

Projects and workspaces

ACE starts from a project. A project can be a new local git repository, an existing local repository, or a repository picked from your connected GitHub account.

For existing repositories, ACE creates a git worktree. Each task gets its own folder and branch while sharing the repository history. That keeps parallel AI work isolated without hiding anything from git.

  • New projects are initialized as normal git repositories.
  • Existing projects run in task-specific worktrees.
  • GitHub repositories are cloned or refreshed with your connected GitHub account.
  • Users can inspect diffs, commit, push, and open PRs from the app.

That workspace model is why ACE can run multiple agents without turning the main checkout into a shared scratchpad. Parallel work is useful only when each attempt has room to succeed or fail independently.

Direct work

Chat mode

Chat mode is the fastest path through ACE. The user selects a workspace, types a prompt, chooses the models or mode, and watches model output stream back through the app.

Simple chat

Fast direct work with the first enabled model that produces a useful response.

Parallel

Claude and Codex answer together, then ACE chooses or synthesizes the strongest complete result.

Iterate

A writer and reviewer loop improves the work with scored feedback and convergence rules.

Board

A visual workflow of agents, documents, stages, loops, synthesis, and actions.

Prompt intake
ACE records the selected workspace, mode, models, mission, and any attached context before launching a job.
Provider preflight
The backend checks whether the requested provider tools are installed and authenticated before work begins.
Streaming
Model output, job state, tool events, errors, preview readiness, and verification results stream back over WebSocket.
Finish state
The user can inspect generated files, terminal output, artifacts, diffs, commits, pushes, or PR handoff from the workspace.

Agent workflows

Board workflows

Board mode turns collaboration into a visible process. Instead of sending one prompt to one model, the user can build a workflow of specialist agents, documents, edges, loops, synthesis nodes, and actions.

  • Agent nodes can use ready-made prompts for planning, research, building, review and QA, release management, scheduling, tool execution, or human decisions. Custom roles can generate their own editable prompt.
  • Document nodes carry web content, repository notes, docs, images, audio, data, or plain notes into the workflow.
  • Edges define collaboration, review, debate, delegation, or advanced custom interaction between stages.
  • Loops can run exact rounds, continue until approved, or stop when a quality score target is reached.
  • Action nodes can save markdown or prepare workflow output for handoff.

For complex requests, ACE can carry a mission contract through the workflow. That contract records deliverables, acceptance criteria, constraints, required artifacts, verification gates, side effects, and failure conditions, so downstream agents stay anchored to the requested outcome.

Strictness
Workflows can run loosely for exploration or more strictly with contracts, review gates, score thresholds, and explicit failure conditions.
Follow-up routing
Follow-up prompts can continue with the right workspace, board, stage, agent, or artifact context instead of restarting from scratch.
Human gates
Board flows can pause for user approval where an autonomous step would be too risky or where judgment is required.
Cron concepts
Scheduled workflow concepts are modeled separately from one-off manual runs, so repeatable processes can become productized later.

Providers

Models and setup

ACE can use Claude, Codex, and Gemini model families. Users can turn models on or off per workspace. If a selected workflow requires a provider that is missing or not authenticated, ACE blocks the run with a model auth preflight instead of failing later.

This is a practical trust feature. The user sees what needs to be connected before the agents start work, and ACE can normalize writer or reviewer roles when the originally selected model is unavailable.

Model choice is workflow choice
Simple requests can use one fast model. Higher-stakes work can ask multiple model families to produce, critique, and synthesize. ACE makes that escalation a normal product control instead of a manual copy-paste routine.

Nit-gritty

Backend architecture

ACE is a desktop app with a bundled local runtime. The runtime contains a Next.js UI, a local server, WebSocket orchestration, git workspace management, model CLI runners, billing access checks, preview launch, and verification gates.

runtime flowACE
User prompt
  -> workspace job
  -> model auth preflight
  -> Claude, Codex, Gemini, or board agents
  -> live WebSocket events
  -> synthesis, verification, preview, or PR workflow
Electron shell
Starts the desktop app on macOS and Windows and owns packaging, protocol handling, updater behavior, and native integration.
Runtime
Contains the Next.js UI, server bundle, public assets, and runtime update metadata.
WebSocket server
Streams model output, job state, processing events, preview readiness, and errors back to the interface.
Orchestrator
Runs simple chat, parallel execution, synthesis, iterative loops, agent workflows, and stage-based board workflows.
CLI runners
Launch Claude, Codex, and Gemini command-line tools inside the selected workspace.
Workspace manager
Creates git-backed workspaces, including standalone repositories, worktrees, and GitHub clones.
Verification
Runs gates for files, artifacts, previews, commands, git diffs, citations, and workflow outputs.
Billing access
Uses Supabase identity and Stripe subscription state to control access without mixing billing into model execution.

Delivery

Runtime delivery

ACE separates the desktop shell from the runtime. The shell is the installed desktop app on macOS and Windows. The runtime contains the UI and local server bundle that ACE can update from GitHub releases.

  • Developer-channel runtime changes flow through GitHub dev, publish to duocode-runtime-dev, and are pulled by ACE Dev.app.
  • Production runtime changes flow from dev to main, publish to duocode-runtime-latest, and are pulled by ACE.app.
  • Normal UI and server changes ship as runtime updates.
  • Desktop releases are reserved for Electron shell, updater, signing, packaging, protocol, native helper, or app version changes.
  • Hosted landing, billing, and auth callback changes require the Cloudflare deployment flow.
Developer runtime
Changes merge to GitHub dev, publish as duocode-runtime-dev, and are consumed by ACE Dev.app.
Production runtime
A deliberate dev-to-main release publishes duocode-runtime-latest, which production ACE.app consumes.
Runtime manifest
The app uses runtime metadata to decide whether a newer server and UI bundle is available for the current channel.
Hosted site
Landing, billing, and auth callback changes are separate Cloudflare-hosted routes and do not ship through runtime publishing.
Installed app behavior
Local workspace edits are not active in an installed app until the relevant PR is merged, the runtime publish workflow succeeds, and that installed app pulls the new runtime.

Trust model

Security and privacy

ACE is local-first for project work and explicit about external provider use. Generated files, branches, and workspaces live on the user machine unless the user pushes them or connects a service that moves the data elsewhere.

  • Generated files and branches stay on the local machine unless the user pushes them or uses a connected service.
  • Model execution goes through provider CLIs, so prompts and selected context can be sent to the connected provider accounts.
  • Workspaces are normal git folders, not a proprietary project format.
  • Verification gates make output easier to inspect, but generated code still needs review.
Authentication
ACE coordinates provider access but does not replace provider login. Claude, Codex, Gemini, GitHub, Supabase, and Stripe each keep their own account boundary.
Billing data
Subscription state controls app access. It should not be treated as model context or mixed into generated project work.
Side effects
Agents can edit files and run commands in their workspace. Users should review side effects before pushing, deploying, or merging.
Runtime updates
Runtime updates are downloaded by the installed app from the configured release channel, so users can receive UI and server fixes without a full desktop reinstall.

Users should keep secrets out of prompts and agent-readable files, confirm model provider policy before using sensitive code, review generated diffs before pushing, and use stricter workflows for release-bound work.

Secrets vault
Settings, then Secrets, stores named environment variables for agent runs and previews. On macOS, values are encrypted with a Keychain-held key; without a usable Keychain, ACE uses an owner-only plaintext vault protected by filesystem permissions. Agents see only the names, values are injected into provider CLI processes as environment variables, and ACE scrubs exact values found within each provider event and again from reassembled run records and completion payloads. If a provider divides one value across events, its separate halves can briefly appear in the live stream even though the final aggregate is scrubbed. Guarded safety runs exclude secrets entirely, and Llama (local Ollama over HTTP) never receives the values or their names. Scrubbing cannot catch a transformed value, so scope secrets to what a task needs.

Support

Troubleshooting

Most ACE issues are easier to understand once the runtime boundary is clear. The installed app updates from GitHub runtime releases, not from a local Conductor workspace or a developer server.

Change missing in app
Confirm the relevant PR merged, the runtime publish workflow succeeded, and the installed app pulled that runtime.
Model blocked
Open the provider CLI directly, finish login or setup, then rerun the ACE prompt so the preflight can pass.
Workspace issue
Check that the source folder is a git repository, that worktrees can be created, or that your connected GitHub account can clone the target repository.
Preview issue
Inspect the terminal output for missing dependencies, missing scripts, unavailable ports, or a dev server that failed to start.
Sign-in or billing issue
Check the hosted callback and billing routes because Cloudflare-hosted changes are outside the runtime publish path.