---
title: CLI
description: >-
  Install and authorize the Atoi CLI, launch the product TUI, and operate
  projects, workspaces, and tasks.
order: 1
---
The Atoi CLI is the authenticated command-line surface for product resources. It can list projects, inspect workspace bindings, start durable tasks, review changes, and launch the product TUI.

## Install the CLI

The published package currently declares Node.js 22 or newer. The installer uses npm, pnpm, or Bun when available and installs `@creative-int/atoi-cli` from GitHub Packages. Set `NPM_TOKEN` in the environment before running it; the installer uses a temporary restricted npm configuration and does not rewrite your user configuration.

```bash
curl -fsSL https://atoi.app/install.sh | bash
```

Confirm that the executable is available:

```bash
atoi --help
```

## Authorize an operator

Start the device authorization flow:

```bash
atoi account login
```

The CLI displays a device code and opens Atoi's `/cli/authorize` page. Sign in, verify that the browser code matches the terminal, and choose **Connect CLI**. Atoi creates a revocable operator identity; the CLI stores its credential in the system keychain when available, with a protected file fallback.

Check or remove the active identity with:

```bash
atoi account status --json
atoi account logout
```

Authenticated requests exchange that operator identity for a short-lived session. `atoi account session --json` is an internal machine-readable command used for that exchange. Its output contains a bearer credential; do not paste it into logs, shell history, or client configuration.

## Operate projects and tasks

These invocations are part of the shipped command surface:

```bash
atoi project list --json
atoi workspace show --project <project-id> --json
atoi task start --project <project-id> --profile safe --prompt "Audit the repository state"
atoi task wait <task-id> --json
atoi task changes <task-id>
atoi task apply <task-id> --confirm
```

Inspect the change set before applying it. `--confirm` is required for apply and other consequential task actions; it is not a global bypass for later approvals.

## Launch the product TUI

The CLI launches the interactive TUI with:

```bash
atoi tui
```

The launcher requires an interactive terminal and an available `atoi-tui` binary. In a repository checkout, build that binary before launching:

```bash
pnpm tui:build
atoi tui
```

The TUI is a product client for Atoi projects and tasks. It does not expose a separate top-level Code product.

## Understand the embedded runtime

Durable implementation is executed by the repo-embedded runtime in `packages/mono`. Its runtime identity is `atoi-mono`, and its configuration directory is `.atoi`. `/code/bridge/*` is the runtime HTTP API namespace, not a user-facing `/code` page.

The repository architecture names `atoi mono` as the owner command, but the currently shipped product CLI rejects the `mono` subcommand. Runtime contributors can build and inspect the embedded entry point directly:

```bash
pnpm -C packages/mono build
node packages/mono/dist/cli.js --help
```

<!-- TODO(verify): Reconcile the root AGENTS.md owner command `atoi mono` with the shipped product CLI, which currently rejects the `mono` subcommand. -->
