Skip to content

CLI Overview

atl has five commands. All of them operate on the current project (the directory you ran atl in) unless otherwise noted.

CommandWhat it does
atl installInstall a team by registry name or Git URL.
atl listShow teams installed in this project.
atl removeUninstall a team.
atl updatePull latest for one or all installed teams.
atl searchSearch the public registry.

Global flags

FlagEffect
--help, -hPrint usage and exit.
--version, -vPrint the installed atl version.

Each command has its own --help page: atl install --help, atl search --help, and so on.

State atl keeps

Shared cache (one per machine):

~/.claude/repos/agentteamland/
└── <team-name>/          ← cloned Git repo, reused across all projects

Per-project state (per directory you run atl in):

<project>/
└── .claude/
    ├── .team-installs.json       ← which teams are installed, at what versions
    ├── agents/                   ← symlinks to team-provided agents
    ├── skills/                   ← symlinks to team-provided skills
    ├── rules/                    ← symlinks to team-provided rules
    └── ...

The symlinks point into the shared cache. That's why atl update takes effect in every project at once: you update the cache, not the project.

Exit codes

CodeMeaning
0Success.
1General error (invalid args, team not found, network).
2Validation failure (team.json didn't match the schema).
3Inheritance error (circular chain, missing parent).

Philosophy

  • Deterministic. Same inputs, same symlinks. No hidden state.
  • Idempotent. Re-running atl install on an already-installed team is a no-op (or a pull).
  • Observable. Every action prints what it did. Use the output, not a spinner.

Next

Released under the MIT License.