Overview

The autonomous code factory.

Ara closes the loop with cloud coding agents: point them at a repository and they carry an issue from first signal to merged fix, end to end. The loop it runs:

  1. Signal an issue from logs, analytics, user behavior, a failed check, or a report
  2. Create the environment: macOS, Linux, Windows, or web
  3. Reproduce the failure and capture baseline evidence
  4. Implement the fix with any model you provide
  5. Verify it with tests, logs, and recordings
  6. Open a pull request or merge request with the patch and evidence
  7. You review and merge the change request, the human gate
  8. Update the wiki to reflect the change
Ara engineer, ASCII art figure holding a hammer

Hand it to your coding agent

Paste this into Codex, Claude Code, Cursor, or any coding agent to hand off your repository and start developing on the cloud:

Read https://ara.so/setup.md and follow it to get one of my repos running on Ara.

The environment model

Every repository you connect gets an Environment: the saved definition of the box its sessions run in. At the start of each session, Ara boots the Image and injects your repo, secrets, tools, and guides on top of it. The Image itself is built from a Recipe, base, env, and setup steps, just like a Dockerfile.

1Image: # the container each session boots
2 built from a Recipe: # base · env · setup
3
4injected on top, each session:
5 Repo: # your code, cloned in
6 Secrets: # encrypted org / repo secrets
7 MCP servers: # tools + OAuth (Sentry, Linear)
8 Ara skills: # the agent's skill library
9 Session Start Script: # deps + codegen, every session
10 Runbook: # "how this repo runs" guide
11 Knowledge: # reference docs for the prompt

If you know Docker: the Recipe is your Dockerfile, the Image is the built image. Everything injected on top is per session, so changing it never rebuilds the Image.

A concrete example

acme-ara / acme-monorepo, a Bun app with a little Python tooling:

1Image: # built once from this Recipe, then pinned
2 base: python
3 env: PYTHONUNBUFFERED=1
4 setup: uv pip install ruff mypy # baked in
5
6injected each session:
7 Repo: acme-ara/acme-monorepo → /work
8 Secrets: DATABASE_URL, STRIPE_SECRET_KEY
9 MCP servers: Sentry, Linear # your OAuth
10 Ara skills: built-in skill library
11 Session Start: bun install; bun run prisma generate
12 Runbook: "Run bun test before a PR"
13 Knowledge: test → bun test, lint → bun run lint

Only the Recipe (base, env, setup) becomes an Image and needs a build. Secrets and MCP tools are injected fresh each session, so rotating a key or adding a tool never rebuilds anything. Full detail in Environment.

Start here

Ready to drive it yourself? Create an ara_ API key in your workspace settings under Ara API, then follow the Quickstart to ship your first pull request or merge request.

Two ways in

  • Web app. Connect GitHub repositories or GitLab projects, open sessions, and review change requests at ara.so.
  • API. Drive everything programmatically with an ara_ key. This is the surface these docs cover.