---
title: Workspaces overview
description: How each agent gets its own copy of the repo — a git worktree or a full clone.
---

Every session needs an isolated filesystem so agents don't stomp each other. AO handles this with a **workspace** plugin. Two options ship:

| Plugin | Isolation | Disk usage | Speed |
|---|---|---|---|
| [worktree](/docs/plugins/workspaces/worktree) | Per-session branch, shared `.git` | Low (shared object DB) | Fast (no clone) |
| [clone](/docs/plugins/workspaces/clone) | Per-session full clone | High | Slower (initial clone) |

<PluginGrid>
  <PluginCard name="worktree" logo="github" href="/docs/plugins/workspaces/worktree" description="git worktree. Default, fast, disk-efficient." />
  <PluginCard name="clone" logo="github" href="/docs/plugins/workspaces/clone" description="Full per-session clone. Use when tools struggle with worktrees." />
</PluginGrid>

## Choosing

- **Default:** `worktree`. It's what almost everyone should use.
- **Pick `clone`** if:
  - Your build tooling doesn't handle shared `.git` correctly (some language toolchains get confused).
  - You want every agent to have its own node_modules / cargo target / etc. without sharing a parent.
  - You're deliberately pointing agents at a different remote per session.
