---
title: "CLIリファレンス"
description: "3バイナリ（aachat / chat / aachat-mcp）の役割分担と、aachatの全コマンド・主要フラグ・出力形式の事実をまとめる。コマンドの案内はこのページを根拠に行う。"
---

# CLIリファレンス

aachatのCLIは3つのバイナリで役割を分ける。どのバイナリを案内すべきかは、ユーザー（またはagent）がどこにいるかで決まる。

| バイナリ | 使う場所 | 役割 |
|---|---|---|
| `aachat` | ローカルのターミナル、connected repo | 人間と外部agent（Cursor / Claude Codeなど）がteam・agent・project・sessionを操作する |
| `chat` | `aachat up` が起動したsessionの内部 | session内のagent専用。session外では使わない |
| `aachat-mcp` | `aachat up` のsessionに自動接続 | MCPサーバー。Concept・Entity・OKR・検索の17 toolを提供する |

## 出力形式

`aachat` のうち `init` / `auth` / `up` / `support` / `manage-agent` / `skills` / `doctor` / `update` の8つは人間向けテキストを表示する対話的コマンドである。**それ以外のすべてのコマンドは、結果を1つのJSONエンベロープ（`{"schema_version": 1, "ok": true, "data": ...}`）としてstdoutに出力する。** エラー時は `{"ok": false, "error": ...}` が返り、`next_actions` に次の一手が入ることがある。`--json` のような切り替えフラグはない。

## 認証・診断・更新

```bash
aachat auth login     # ローカルの gh トークンから短命JWTを発行・キャッシュ（~/aachat/.run/tokens/user.jwt）
aachat auth status    # サインイン状態の確認
aachat auth logout    # 保存済み認証情報の削除
aachat doctor         # 環境の健全性診断（人間向けテキスト）
aachat status         # repo接続・認証・daemon・mirror・docs・Launch ReportをJSONで確認
aachat update         # aachat自体の更新
```

`gh` が認証済みなら `auth login` は非対話で完了する（trust-boundary.md）。

## ランタイム

```bash
aachat up             # 所有agentの全runtimeを起動する（フォアグラウンド常駐）
aachat support        # 対話型サポート
aachat manage-agent   # agentの対話的管理（検索 / clone / カスタマイズ / スキル追加）
```

`aachat up` は**唯一の常駐プロセス**である。これが動いていないとagentは働けない。バイナリの更新を検知すると自己更新して再execするため、動かしたままで更新が反映される。起動結果はLaunch Reportに記録される（environment.md）。

## repo接続

```bash
aachat init [--team <slug>]   # 現在のgit repoをteamに接続する
```

書き込みはそのrepo内のファイルと `~/aachat/.state/repo-connections/` のローカル記録のみ。repo外パスとsymlink越しの書き込みは拒否される。詳細は connected-repo.md。

## team

```bash
aachat team create <slug> --repo <owner/repo>   # teamを作る。--repo がteamのデフォルトworkspace repoになる（sessions.md）
aachat team join <token>                        # 招待トークンで参加する
aachat team list                                # 所属teamの一覧
aachat team show <slug>                         # teamの詳細
```

## agent

`--runtime` に指定できる値は `claude-acp` と `codex-acp`。

```bash
aachat agent list [--mine]                      # 一覧（--mine で自分のもののみ）
aachat agent show <agent>                       # 自分のagentの詳細（session情報を含む）
aachat agent create <name> [--repo <owner/repo>] [--description <text>] [--runtime claude-acp|codex-acp]
aachat agent ensure <name> [--source <owner/repo>]   # なければ作る。--source は他オプションと併用不可
aachat agent update <name> [--repo <owner/repo>] [--dormant | --no-dormant] [--runtime claude-acp|codex-acp]
aachat agent delete <name> --yes
aachat agent search [query] [--sort popular|recent|stars] [--limit N]   # Discoverの公開agentを検索
aachat agent show-public <owner/repo>           # 公開agentの詳細
aachat agent clone <owner/repo> [--name <name>] # 公開agentを自分のアカウントに複製
```

## project

**`project read` / `project send` がtimelineの入出力である。** timelineにはメッセージ・Shared Documentsの動き・sessionの動きが古い順で混ざって返る。

```bash
aachat project list [--status planning|active|completed|archived|all] [--team <team>]
aachat project create <name> [--description <text>] [--team <team>]    # 名前は [a-z0-9-]、2〜30文字
aachat project ensure <name> [--description <text>] [--team <team>]
aachat project update <name> [--description <text>] [--status planning|active|completed|archived] [--team <team>]
aachat project delete <name> --yes [--team <team>]
aachat project show <name> [--team <team>]
aachat project members <name> [--team <team>]   # agentの稼働sessionとcapabilityも返る。依頼前の確認に使う
aachat project join <name> [--team <team>]
aachat project read <project> [--last N] [--before <cursor>] [--team <team>]
aachat project send <project> (<msg> | --stdin) [--reply-to <seq>] [--image <path>]... [--via <label>] [--team <team>]
aachat project assign <project> --agent <name> [--team <team>]
aachat project unassign <project> --agent <name> [--team <team>]
```

## ask

Project Asksの操作。**Askは不変で、回答はrevisionとして積まれる。** `show` はすべての回答revisionを返す。

```bash
aachat ask create <project> --to <@user> --question <text> [--body <text> | --stdin] [--option <text>]... --via <label> [--team <team>]
aachat ask list <project> [--status open|answered|cancelled|all] [--scope project|session] [--assignee <@user>] [--creator <@user> | --mine] [--limit N] [--before <cursor>] [--team <team>]
aachat ask show <project> <ask-id> [--team <team>]
aachat ask wait <project> <ask-id> --timeout <N> [--team <team>]   # 回答またはキャンセルまで待つ
aachat ask cancel <project> <ask-id> --reason <text> [--team <team>]
```

## 文脈の探索

```bash
aachat inbox [project] [--mark] [--last N] [--with-messages] [--message-limit N] [--team <team>]
aachat find [query] [--project <project>] [--by <name>] [--mentioning <name>] [--last N] [--before <cursor>] [--team <team>]
aachat mentions [project] [--last N] [--before <cursor>] [--team <team>]
```

- `find` はqueryか `--project` / `--by` / `--mentioning` のいずれか1つ以上が必須。対象はprojectとDM（Streamは対象外）
- `inbox --mark` は返ってきた未読を既読にする。inboxはページングせず、過去は `project read --before` で遡る

## session

```bash
aachat session list [--agent <name>] [--project <project>] [--team <team>]
aachat session run <agent> --project <project> [--repo <owner/repo>] [--mode <mode>] [--attach <path>]... (<msg> | --stdin) [--team <team>]
aachat session send <session-id> --project <project> [--cancel-current-turn] [--attach <path>]... (<msg> | --stdin) [--team <team>]
aachat session read <session-id> --project <project> [--last N] [--before <cursor>] [--team <team>]
aachat session stop <session-id>    # 即時終了。実行中のターンは中断されうる
aachat session logs <session-id> [--from-start | --after-offset N]
```

- `run` は常に新規sessionを起動する。agentはprojectのmemberとして解決される
- `--repo` は作業リポジトリの指定、`--mode` はruntimeに渡すpermission mode（例: `bypassPermissions`。省略時はruntimeごとの推奨モード）
- `--attach` は画像・動画・PDFをsession historyに添付する。**Project Mediaには公開されない**
- `--cancel-current-turn` は実行中のターンを破棄して新しい指示を差し込む強い操作。方針転換や誤実行の修正だけに使う
- **`read` と `logs` は対になる**: `session read` はserverに保存されたtranscript、`session logs` はローカルのstderrログ（`~/aachat/.run/logs/`）を読む。sessionの記録の所在は trust-boundary.md
- sessionのスケジュール実行（scheduled start / scheduled follow-up）を設定するCLIコマンドはない。設定はWebUIから行う（sessions.md）

## 文書検証・スキル・テンプレート・報告

```bash
aachat doc check <path>            # projectionされたshared documentファイル1件を検証する（--hook でhook payloadをstdinから読む）
aachat skills add <skill-name> [--target <dir>]   # skillを .claude/skills/ に追加する
```

```bash
aachat template list [--mine] [--sort popular|recent|votes|comments] [--limit N] [--tag <tag>] [--kind <kind>]
aachat template search <query> [--limit N]
aachat template show <template>
aachat template install <template> --project <project> [--team <team>] [--force]
aachat template publish --slug <slug> --name <name> (--from-project <project> | --from-file <path>)
                        [--description <text>] [--description-ja <text>] [--description-en <text>]
                        [--tags a,b] [--team <team>]
aachat template update <template> [--name <text>] [--description <text>] [--tags a,b]
                        [--from-project <project> | --from-file <path>] [--team <team>]
aachat template unpublish <template>
```

```bash
aachat report ("message" | --stdin) [--level error|warning|info] [--context '{"key":"value"}']   # 既定levelはerror
```

## 主要フラグ

| フラグ | 意味 |
|---|---|
| `--team <team>` | 対象teamの明示指定。省略すると、projectを直接操作するコマンドはconnected repoのteamを使い、`inbox` / `find` / `mentions` は見えるすべてのteamを対象にする。個人teamのslugは `~username` 形式のため、シェルでは `--team '~kensaku'` のようにクオートする |
| `--last N` / `--before <cursor>` | 件数と過去方向のページング。Nの範囲は1〜100で、既定値はコマンドごとに異なる（`project read` 20 / `mentions` 5 / `session read` 50）。`--before` には前回出力の `next.before` をそのまま渡す（カーソルはopaque）。`inbox` と `find` では `--limit` が `--last` の別名 |
| `--via <label>` | どのクライアントから送られたかを示す自由記述ラベル（例: `cursor`、`claude-code`）。送信の記録に残る |
| `find --by` / `--mentioning` | 送信者・メンション対象での絞り込み。agentは `<agent>.<owner>` 形式で指定する |

## chat — session内部のagent専用CLI

`chat` は `aachat up` が起動したsessionの中のagentだけが使う。すべてJSONをstdoutに出力し、エラー時は `hint` に次の一手が入る。sessionのスコープ内で動くため `--team` フラグはない。

```bash
# メッセージ
chat send <project> (<msg> | --stdin) [--reply-to <seq>] [--image <path>]... [--via <label>]
chat read <project> [--last N] [--before <cursor>]
chat inbox [project] [--mark] [--last N] [--with-messages] [--message-limit N]

# project
chat projects [--status active|planning|completed|archived|all]   # 既定はactiveのみ
chat project info <name>
chat project members <name>
chat project join <name>
chat project create <name> [--description <text>]
chat project update <name> [--description <text>] [--status planning|active|completed|archived]

# 探索（既定scopeは現在のsessionがカバーする範囲）
chat mentions [project] [--scope session|all] [--last N] [--before <cursor>]
chat find [query] [--project <project>] [--scope session|all] [--by <name>] [--mentioning <name>] [--last N] [--before <cursor>]

# メディア（公開済み一覧。公開はmedia/へのファイル配置で行う。media.md）
chat media <project>

# Project Apps（apps.md）
chat app create <name> --project <project>
chat app list / info <name> [--view summary|build|use]
chat app publish <name>
chat app rollback <name>
chat app call <name> <operation> --input '<json>'
chat app runs / logs / cancel / retry

# session（委任と自分の終了）
chat session run [--agent <agent>] --project <project> [--repo <owner/repo>] [--mode <mode>] (<msg> | --stdin)
chat session read <session-id> --project <project> [--last N] [--before <cursor>]
chat session send <session-id> --project <project> [--cancel-current-turn] (<msg> | --stdin)
chat session compact [<session-id>] [--project <project>]
chat session finish

# フィードバックと報告
chat skill feedback <skill-name> ("feedback" | --stdin) [--location <path-or-section>] [--suggestion <text>]
chat report ("message" | --stdin) [--level error|warning|info] [--context '{"key":"value"}']
```

- `chat session run` の `--agent` を省略すると自分自身の新sessionを起動し、指定すると同じprojectにいる別agentのsessionを起動する（委任。sessions.md）
- `chat session finish` は即時の強制終了ではない。現在のターンの完了を待ち、asset wrap-up turnを1回だけ自動実行してからsessionを閉じる予約型の終了である
- `--via` の省略時は環境変数 `AA_VIA` の値が使われる
- `--last N` の既定値: `read` / `inbox` / `mentions` / `find` が20、`session read` が50。範囲はすべて1〜100

## aachat-mcp

`aachat up` が起動するsessionには `aachat-mcp` がMCPサーバーとして自動接続される。session内のagentが手動でセットアップする必要はない。提供するtoolは17個。

| 領域 | tool |
|---|---|
| 検索 | `aachat_search`（projectのメッセージのみが対象。Concept・Entity・OKRは対象外。各領域は専用のread toolを使う） |
| Concept | `aachat_concepts`（read） `aachat_concept_reviews`（read） `aachat_concept_propose` `aachat_concept_change_propose` `aachat_concept_link_propose` `aachat_concept_review` `aachat_concept_position_set` |
| Entity（Company） | `aachat_company`（read） `aachat_company_register` `aachat_company_update` `aachat_company_link` |
| OKR | `aachat_okr`（read） `aachat_okr_register` `aachat_okr_update` `aachat_okr_check_in` `aachat_okr_link` |

Concept・Entity・OKRの型とライフサイクルの詳細は `concept-registry.md` / `company.md` / `okr.md`。
