DocsAgent Workflows
View as Markdown

Agents

Git worktrees and Docker containers for AI agent isolation

Overview#

Agents in Agentastic are isolated development environments where AI coding assistants work without interfering with your main workspace. Each agent gets either a git worktree (a separate checkout of your repository) or a Docker container (a fully isolated environment).

Git Worktrees#

What is a Worktree?#

A git worktree is a linked working copy of your repository. Unlike branches (which share a single working directory), worktrees give each branch its own complete directory with all your files.

code
~/projects/ ├── my-app/ # Main worktree (your workspace) ├── my-app-worktrees/ │ ├── feature-auth/ # Agent 1's worktree │ ├── feature-api/ # Agent 2's worktree │ └── bugfix-login/ # Agent 3's worktree

Why Worktrees?#

  • No conflicts - Each agent edits its own copy of files
  • Parallel work - Multiple agents can work simultaneously
  • Easy comparison - Diff between your work and agent's work
  • Safe experimentation - Delete a worktree if you don't like the results

Worktree Storage Locations#

Configure where worktrees are created in Settings > Agents:

LocationPath PatternBest For
Inside Reporepo/.worktree/branch-nameSelf-contained projects
Adjacent (Default)repo-worktrees/branch-nameClean separation
Global~/worktrees/repo/branch-nameCentralized management

Creating a Worktree#

From Agent Home:

  1. Open Agent Home
  2. Enter your prompt and branch name
  3. Click Send - the worktree is created automatically

From Settings:

  1. Open Settings > Agents
  2. Click Create Agent
  3. Choose branch and options

From Terminal:

bash
git worktree add ../my-project-worktrees/feature-x -b feature-x

Switching Between Worktrees#

ActionShortcut
Switch WorktreeCtrl+Tab
Next AgentCmd+Option+Down
Previous AgentCmd+Option+Up

Or use the Navigator sidebar to click on a worktree.

Removing a Worktree#

  1. Settings > Agents - Right-click, select Remove
  2. Terminal: git worktree remove path/to/worktree
  3. Cleanup stale refs: git worktree prune

Organizing Agents in the Navigator#

Open the Agents tab in the Navigator with Cmd+4. Each row shows the agent's icon, an activity indicator when its agent is running, and a cloud badge for cloud worktrees.

Grouping Modes#

Switch how worktrees are grouped from the ⋯ menu at the bottom of the Agents navigator (a checkmark marks the active mode):

ModeLayout
Group by Repository (default)Worktrees grouped under their repository, then by pinned status and label
Sort by Recent ActivityA flat, time-bucketed list across all repositories, ordered by latest agent activity
Sort by Creation DateThe same flat list, bucketed and ordered strictly by when each worktree was created

Flat Views#

Both flat modes bucket worktrees into time ranges, so you don't have to hunt for recent work:

  • Pinned — worktrees you've pinned, always first
  • Today
  • Last 7 Days
  • Last 30 Days
  • Backlog — nothing in the last 30 days
  • Archived — worktrees you've archived

Sort by Recent Activity keeps your most recent work on top: a worktree moves up to a more recent bucket whenever its agent runs or you work in its terminal, and an agent waiting for your input floats to the top of its bucket.

Sort by Creation Date is a stable timeline: worktrees are bucketed and ordered by creation time (newest first), and agent activity never reshuffles them.

In either mode, pin an agent (right-click → Pin) to keep it at the top, and Archive finished work to tuck it into the Archived section without deleting it.

Renaming Agents#

Give an agent a shorter, friendlier name without touching anything technical. Right-click its row in the Agents navigator and choose Rename. The custom name shows on the first line of the row; the Git branch stays on the second line.

Renaming is display-only — it never renames the branch, the worktree directory, the terminal, or the running agent process. The Rename dialog applies immediately; renames made through the API or dev agent rename land with a brief Braille reveal animation in the sidebar (skipped if you have Reduce Motion turned on).

A rename also never moves the row. Sidebar order is keyed to the worktree itself, so an agent stays put — and stays at the same ⌥⌘↑/↓ and ⌥⌘1–9 position — when you rename it or when an automatic naming task names it for you.

Docker Containers#

For maximum isolation, run agents inside Docker containers. Each container has:

  • Isolated filesystem and network
  • Pre-installed AI tools
  • Your worktree mounted at /workspace
  • Configurable resource limits

Enabling Containers#

  1. Install Docker Desktop
  2. Open Agent Home
  3. Toggle Mode from "Worktree" to "Container"
  4. Select a container image
  5. Launch your agent

Available Images#

ImageDescription
agentastic/cloud-baseAll-in-one: Claude Code, Codex, and common agent tools
docker/sandbox-templates:claude-codeOfficial Claude Code sandbox
paulgauthier/aider-fullAider AI assistant
node:22-bookwormNode.js environment
python:3.12-bookwormPython environment

Container Mounts#

Containers automatically get these mounts:

HostContainerPurpose
Your worktree/workspaceCode editing
Container home dir/rootTool state persistence
~/.gitconfig/root/.gitconfigGit identity (optional)
~/.ssh//root/.ssh/SSH keys (optional)

Network Modes#

ModeDescription
BridgeFull network access (default)
RestrictedLimited to specific endpoints
NoneNo network access

Configure in Settings > Agents > Network Mode.

Supported AI Agents#

Agentastic's public catalog includes 52 built-in agent definitions and auto-discovers them when installed. Here are some of the most popular:

Every agent runs in a real terminal. 24 of them can also run as a structured Chat transcript — Claude Code and Codex through native integrations, and everything that speaks Agent Client Protocol through a shared ACP transport. Pick the default per agent under Settings > Agents > Launch Interface, and flip any running session between the two at any time.

Agentastic#

bash
brew install agentasticai/tap/agentastic

Our own terminal coding agent. Supports auto-approve (--dangerously-bypass-approvals-and-sandbox), resume (resume --last), an initial prompt, model and reasoning-effort selection, and code review (agentastic review). It also has a non-interactive agentastic exec mode for scripting. See the agent page.

Prime Agent (Prime Intellect)#

bash
curl -fsSL https://app.primeintellect.ai/prime-agent/install.sh | sh

Prime Intellect's open-source RLM agent. Agentastic supports positional prompts, latest-session resume with --continue, native thinking levels, ACP Chat, and project skills. See the provider reference.

Claude Code (Anthropic)#

bash
npm install -g @anthropic-ai/claude-code

Codex (OpenAI)#

bash
npm install -g @openai/codex

Poolside#

bash
curl -fsSL https://downloads.poolside.ai/pool/install.sh | sh pool login

Open Interpreter#

bash
curl -fsSL https://www.openinterpreter.com/install | sh

Command Code (Langbase)#

bash
npm i -g command-code

Gemini (Google)#

bash
npm install -g @google/gemini-cli

Antigravity (Google)#

bash
curl -fsSL https://antigravity.google/cli/install.sh | bash

Jules (Google)#

bash
npm install -g @google/jules

Grok Build (xAI)#

bash
curl -fsSL https://x.ai/cli/install.sh | bash

Muse Code (Meta)#

bash
curl -fsSL https://dev.meta.ai/install.sh | bash

Devin (Cognition)#

bash
curl -fsSL https://cli.devin.ai/install.sh | bash

Hermes Agent (Nous Research)#

bash
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

Official docsGitHub

Cursor#

bash
curl https://cursor.com/install -fsSL | bash

Cursor's terminal coding agent. Supports auto-approve (--yolo), resume (--continue), initial prompt, and sandbox control (--sandbox enabled|disabled). See the official docs.

GitHub Copilot#

bash
npm install -g @github/copilot

Junie (JetBrains)#

bash
curl -fsSL https://junie.jetbrains.com/install.sh | bash

OpenHands#

bash
uv tool install openhands

Letta Code#

bash
npm install -g @letta-ai/letta-code

Cortex Code (Snowflake)#

bash
curl -LsS https://ai.snowflake.com/static/cc-scripts/install.sh | sh

Aider#

bash
curl -LsSf https://aider.chat/install.sh | sh

MiMo Code#

bash
npm install --global --prefix "$HOME/.local" @mimo-ai/cli@latest

Qoder CLI#

bash
npm install --global --prefix "$HOME/.local" @qoder-ai/qodercli@latest

OpenClaude#

bash
npm install --global --prefix "$HOME/.local" @gitlawb/openclaude@latest

Ante#

bash
curl -fsSL https://ante.run/install.sh | ANTE_INSTALL_DIR="$HOME/.local/bin" bash

Agentastic places these npm packages and Ante in ~/.local/bin, which it checks directly. This prevents a successful install from disappearing into a version-manager-specific npm prefix that is missing from the app's shell PATH.

Oh My Pi#

bash
curl -fsSL https://omp.sh/install | sh -s -- --binary

Agentastic selects OMP's native binary installer so an older Bun installation cannot block setup.

OpenClaw#

bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --prefix "$HOME/.local" --no-onboard

The CLI-only installer supplies a supported Node runtime and places openclaw in ~/.local/bin, which Agentastic detects directly.

All Built-in Agents#

AgentCLI CommandInstall
Agentasticagentasticbrew install agentasticai/tap/agentastic
Prime Agentprime-agentcurl -fsSL https://app.primeintellect.ai/prime-agent/install.sh | sh
Claude Codeclaudenpm install -g @anthropic-ai/claude-code
Codexcodexnpm install -g @openai/codex
Warp Agent CLIwarpcurl -fsSL https://app.warp.dev/download/agent-cli | bash
Poolsidepoolcurl -fsSL https://downloads.poolside.ai/pool/install.sh | sh
Open Interpreterinterpretercurl -fsSL https://www.openinterpreter.com/install | sh
Command Codecommand-codenpm i -g command-code
Cursorcursor-agentcurl https://cursor.com/install -fsSL | bash
Geminigemininpm install -g @google/gemini-cli
Antigravityagycurl -fsSL https://antigravity.google/cli/install.sh | bash
Julesjulesnpm install -g @google/jules
Grok Buildgrokcurl -fsSL https://x.ai/cli/install.sh | bash
Muse Codemusecurl -fsSL https://dev.meta.ai/install.sh | bash
Devindevincurl -fsSL https://cli.devin.ai/install.sh | bash
Hermes Agenthermescurl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Qwen Codeqwennpm install -g @qwen-code/qwen-code
Droiddroidcurl -fsSL https://app.factory.ai/cli | sh
Ampampnpm install -g @ampcode/cli@latest
OpenCodeopencodenpm install -g opencode-ai
GitHub Copilotcopilotnpm install -g @github/copilot
Charmcrushnpm install -g @charmland/crush
Auggieauggienpm install -g @augmentcode/auggie
Goosegoosecurl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash
Kimikimiuv tool install kimi-cli
Kilocodekilonpm install -g @kilocode/cli
Kirokiro-clicurl -fsSL https://cli.kiro.dev/install | bash
Rovo Devacli rovodev runbrew install atlassian/acli/acli && acli rovodev auth login
Clineclinenpm install -g cline
Continuecnnpm install -g @continuedev/cli
Codebuffcodebuffnpm install -g codebuff
Freebufffreebuffnpm install -g freebuff
Mistral Vibevibecurl -LsSf https://mistral.ai/vibe/install.sh | bash
Pipinpm install -g @mariozechner/pi-coding-agent
Aideraidercurl -LsSf https://aider.chat/install.sh | sh
Autohand Codeautohandcurl -fsSL https://autohand.ai/install.sh | bash
Letta Codelettanpm install -g @letta-ai/letta-code
OpenHandsopenhandsuv tool install openhands
Cortex Codecortexcurl -LsS https://ai.snowflake.com/static/cc-scripts/install.sh | sh
Juniejuniecurl -fsSL https://junie.jetbrains.com/install.sh | bash
mini-SWE-agentminiuv tool install mini-swe-agent
OB-1ob1curl -fsSL https://dashboard.openblocklabs.com/install | bash
MiMo Codemimonpm install --global --prefix "$HOME/.local" @mimo-ai/cli@latest
Qoder CLIqoderclinpm install --global --prefix "$HOME/.local" @qoder-ai/qodercli@latest
OpenClaudeopenclaudenpm install --global --prefix "$HOME/.local" @gitlawb/openclaude@latest
Anteantecurl -fsSL https://ante.run/install.sh | ANTE_INSTALL_DIR="$HOME/.local/bin" bash
Oh My Piompcurl -fsSL https://omp.sh/install | sh -s -- --binary
OpenClawopenclaw tui --localcurl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --prefix "$HOME/.local" --no-onboard
CodeBuddy Codecodebuddynpm install -g @tencent-ai/codebuddy-code
Zerozeronpm install -g @gitlawb/zero
CodeRabbit (review)coderabbitcurl -fsSL https://cli.coderabbit.ai/install.sh | sh
Greptile (review)greptilecurl -fsSL https://greptile.com/cli/install | bash

Custom Agents#

Add any TUI agent in Settings > Connections. The command should accept a prompt or work interactively.

Picking the right agent#

Not sure which agent fits your workflow? Compare the popular options:

Agent Lifecycle#

code
1. Create └── Worktree created (or container started) └── Setup script runs └── Agent CLI launched 2. Work └── Agent receives your prompt └── Agent makes changes └── You monitor progress 3. Review └── View diff of changes └── Run code review (optional) └── Test in agent's environment 4. Complete └── Push and create PR, or └── Merge directly, or └── Discard changes 5. Cleanup └── Remove worktree └── Delete branch (optional) └── Container removed (if used)

CLI Control#

Agentastic agents can be controlled programmatically. (To give an agent a friendlier name, see Renaming Agents above.)

Inside Agentastic terminals, the internal dev CLI is injected automatically:

bash
dev notify --title "Need input" --body "Should I apply this migration?" dev browser snapshot dev repomix --editor dev create checkout-flow main

Outside the app, install the system-wide dev CLI from Agentastic -> Install Shell Integration...:

bash
dev agent create --repo ~/code/my-app --agent codex --prompt "Fix the failing checkout tests." dev --json agents dev tail <terminal_id> 80 dev send <terminal_id> "Run the focused tests again."

See Internal dev CLI, System-wide dev CLI, and Programmatic Control.

Best Practices#

Naming Conventions#

Use descriptive branch names:

  • feature-user-auth
  • fix-login-bug
  • refactor-api-client

One Task Per Agent#

Keep tasks focused. Instead of "build the whole feature," try:

  • "Add the database schema for users"
  • "Create the API endpoints"
  • "Build the frontend components"

Review Before Merging#

Always:

  1. Check the diff
  2. Run AI code review
  3. Test the changes
  4. Verify no regressions

Clean Up Regularly#

Remove old worktrees to:

  • Free disk space
  • Keep the agent list manageable
  • Avoid branch name conflicts

Troubleshooting#

"Branch already checked out"#

A branch can only exist in one worktree. Either remove the existing worktree or use a different branch name.

Container won't start#

  1. Verify Docker Desktop is running
  2. Check image exists: docker images
  3. Review container logs in Settings > Agents

Agent not discovered#

Ensure the agent CLI is:

  1. Installed globally
  2. In your PATH
  3. Executable (which agent-name)