---
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のreview・review投稿・削除提案の3 toolだけを提供する |

## 出力形式

public commandのうち`init`・`auth`・`publish`・`up`・`env`・`support`・`manage-agent`・`doc`・`skills`・`doctor`・`update`の11 rootは人間向けtextを使い、一部は対話的です。それ以外のpublic commandの結果は、stdoutに`{"ok": true, "data": ...}`または`{"ok": false, "error": ...}`のような一つのJSON envelopeで返ります。成功時の例外として、`aachat skill publish`・`skill sync`・`skill unpublish`・`skill install`は人間向けの確認行を出力します。`next_actions`があれば読みます。`--json`切替はありません。help/versionはtextです。

自動処理ではstdoutとstderrの診断を分け、終了statusと応答内容の両方を確認します。JSON commandの失敗はnonzero（1）、人間向けtextのエラーはstderrとnonzero statusで返ります。終了codeが成功でも、診断内のfailed/skippedがhealthyになるわけではありません。`doctor`の各checkと`status`のfieldを読んでください。

## 認証・診断・更新

```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` は非対話で完了する（[信頼境界](/ja/docs/trust-boundary)）。

## ランタイム

```bash
aachat up [--if-stopped]   # 常駐runtimeを起動。--if-stoppedは既存runtimeを置き換えない
aachat support        # 対話型サポート
aachat manage-agent   # agentの対話的管理（検索 / clone / カスタマイズ / スキル追加）
```

`aachat up`が常駐runtimeを所有します。起動時には管理対象のinstall済みbinaryの更新と再execを行う場合がありますが、常駐中の定期更新保証ではありません。通常の`up`は既存runtimeを再起動し、`up --if-stopped`は稼働中なら置き換えず成功終了します。再起動前に実行中の仕事を確認し、その後Launch Reportを読みます（[Environment](/ja/docs/environment)、[Desktop](/ja/docs/desktop)）。

## repo接続

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

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

## team

```bash
aachat team create <slug> [--repo <owner/repo>] # teamを作る。--repo は任意のデフォルトworkspace repo
aachat team update <slug> --stdin               # 明示した設定を一つのJSON objectから更新する
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> [--repo <owner/repo>] [--description <text>] [--runtime claude-acp|codex-acp]
aachat agent ensure <name> --source <owner/repo>
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を自分のアカウントに複製
```

## 環境承認とcatalog公開・導入

```bash
aachat env
aachat env list [--all]
aachat env approve <agent> <name>
aachat env revoke <agent> <name>
aachat publish <agent> [--go-public]
aachat skill publish .agents/skills/<skill-name> --agent <name> [--go-public]
aachat skill sync <catalog-uuid>
aachat skill unpublish <catalog-uuid>
aachat skill install <catalog-uuid> --agent <name>
```

`env`はlocalの名前単位の承認を管理し、serverへsecret値を保存する操作ではありません。revokeしてもproviderの値は削除しません（[Environment](/ja/docs/environment)）。

`publish`は確認済みのAgent公開repositoryを準備または登録します。`skill publish`はSkill専用の公開repositoryで使い、指定したSkillだけを登録します。元Agentを公開する必要はありません。どちらも`--go-public`で準備済みprivate repositoryの可視性を明示的に変えます。`skill sync`は公開GitHub commitをカタログへ読み込み、`skill unpublish`は単体Skillの掲載を停止します。GitHub上のファイルや可視性は変更しません（[Discover](/ja/docs/discover)）。

`skill install`は対象Agent repoの変更をcommit/pushした後にcatalog導入を記録します。ファイルをinstallする操作ではなく、`skills add`はlocal skill追加、`skill feedback`はLedger feedbackです（[Skills](/ja/docs/skills)）。

`agent ensure`は既存Agentを変更せず返します。存在しない場合は`--source`でcloneするか、repo/description/runtimeの作成optionを使います。sourceとこれらのoptionは同時に指定できません。

## 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> --lead <member> --stdin [--parent <parent>] [--description <text>] [--team <team>]    # 名前は [a-z0-9-]、2〜30文字
aachat project ensure <name> --lead <member> --stdin [--description <text>] [--team <team>]
aachat project update <name> [--description <text>] [--status planning|active|completed|archived] [--cancel-runs] [--team <team>]
aachat project update <name> --lead <member> [--team <team>]
aachat project reparent <child> --parent <parent> --stdin [--team <team>]
aachat project delegations <parent> [--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>] [--via <label>] [--type <type>] [--attach <path>]... [--team <team>]
aachat project edit <project> <seq> (<text> | --stdin) [--team <team>]
aachat project unsend <project> <seq> [--team <team>]
aachat project post-type update <project> <seq> --type <type> [--team <team>]
aachat project assign <project> --agent <name> [--team <team>]
aachat project unassign <project> --agent <name> [--team <team>]
aachat project document <project> [--team <team>]   # Shared Documents と canonical path
aachat project media <project> [--query <text>] [--limit N] [--before <cursor>] [--team <team>]
aachat project html <project> [--team <team>]
aachat project database <project> [--team <team>]   # schema catalog の読み取り。mutate は chat db
```

`create`はLeadとstdinのBriefを必須とする。descriptionは任意のcatalog noteでありBriefの代わりではない。たとえば`brief.md`へ目的・背景・期待成果・制約を書き、`aachat project create first-project --lead @<owned-agent> --stdin < brief.md`で渡す（`<owned-agent>`は実際の所有agent名に置き換える）。名前に`stream`・`dm`・`repo`は使えない。agent LeadならセットアップSessionが受付され、人間Leadなら通知される。agent Leadなら受付結果のSessionを確認し、必要なAskに答え、セットアップ完了後にPROJECT.mdとREPORT.mdを確認してから次の仕事を依頼する。人間Leadなら通知を入口にProjectとBriefを確認し、仕事を始める。親・所有条件と完了時のREPORTは[Projects](/ja/docs/projects)を参照する。

### セットアップ依頼を重複させずProjectをensureする

`create`と`ensure`はどちらも`--lead`と`--stdin`が必須です。`create`は新規作成し、`ensure`は既存なら`created: false`で変更せず返します。既存のBriefやLeadを置き換えません。存在する場合もparser上は両flagが必要です。

```bash
cat > brief.md <<'BRIEF'
目的: 日英の顧客ガイドを準備する。
背景: 読者が前提を見落とさず最初の仕事を完了できるようにする。
期待成果: ガイド原稿と例の確認記録。
制約: 現在の対応機能を使い、まだ公開しない。
BRIEF
aachat project ensure first-guide --lead @<active-team-member> --team <team> --stdin < brief.md
aachat project show first-guide --team <team>
```

`<active-team-member>`と`<team>`は実在の値に置き換えます。`ensure`で存在しないProjectを作る場合、LeadにはactiveなTeam memberだけを指定できます。追加依頼の前に`created`を確認してください。このcommandは受付済みのLead actionを返しません。Projectを作成した場合は`project show`とProject timelineで現在状態を確認します。既存Projectなら現在の目的とmemberを読み、必要な仕事を別途依頼します。Lead変更、子のREPORT読取、完全なreparent Briefの手順は[Projects](/ja/docs/projects)にあります。

### ProjectをArchiveする

Project Adminとして、対象のTeamとProjectを確認して実行する。Archiveは他の設定変更と分けて送る。

```bash
aachat project update <name> --status archived --team <team>
```

対話端末ではWorkflow Runの取消件数、停止対象Session、阻害条件を読んで確認に答える。非対話実行では、未完了Runがある場合に限り、その取消へ明示的に同意する `--cancel-runs` が必要になる。一般的なエラー回避として追加せず、[Projects](/ja/docs/projects)を確認する。未完了Runがない非対話実行はこのflagなしでも受付され得る。

返る `archive_in_progress` は処理の受付であり、完了ではない。完了は `archived` と `operation.completed_at` で区別する。同じコマンドを再度実行して既存の処理があれば、その状態を返す。失敗した処理を再開する操作はWebUIの **Retry** を使う（[復旧手順](/ja/docs/troubleshooting)）。

利用中の `aachat --version` と `aachat project update --help` を確かめる。`--cancel-runs` がhelpにない版ではこのflagを使わず、更新後のhelpを確認するか、Archive確認に対応したWebUIを使う。agent専用の `chat project update` にこのflagを転記しない。

## ask

既存のProject Askの閲覧・回答・キャンセル。作成と待機は内側の `chat ask`。外側agentは同じ会話のホストaskで人間に聞く。**Askは不変で、回答はrevisionとして積まれる。** `show` はすべての回答revisionを返す。

```bash
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 cancel <project> <ask-id> --reason <text> [--team <team>]
aachat ask answer <project> <ask-id> --expected-revision <N> (--answer <text> | --stdin) [--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>]

# connected repoのTeam Registry（Teamは検証済みfile pathとrepo connectionから解決）
aachat registry check <resource-file>
aachat registry plan <resource-file>
aachat registry submit <resource-file> [--reason <text>]
aachat registry refresh (<resource-file> | --all) [--discard-local]
```

- `find` はqueryか `--project` / `--by` / `--mentioning` のいずれか1つ以上が必須。対象はprojectとDM（Streamは対象外）
- `inbox --mark` は返ってきた未読を既読にする。inboxはページングせず、過去は `project read --before` で遡る
- 会社文脈を読む前に`aachat status`で対象Teamの投影を確認する。connected repoでは`daemon.workspace_mirror.team_projection`、共通rootでは`daemon.host_mirror.team_projections`内の該当entryを使い、`state`が`healthy`であることを確認する。その後、2つのRegistry index（`aachat/teams/<team>/concepts/_index.yaml`と`aachat/teams/<team>/entities/_index.yaml`）、必要な個別YAML、`aachat/meetings/`の該当本文を読む。個別YAMLの保存はlocal staged changeで、human Team APIを呼ぶのは`registry submit`だけ。indexとMeeting fileはread-only generated snapshotである

## session

```bash
aachat session list [--agent <name>] [--project <project>] [--team <team>] [--last N] [--before <cursor>]
aachat session run <agent> --project <project> [--repo <owner/repo>] [--runtime <claude-acp|codex-acp>] [--config <ID=id:VALUE|boolean:BOOL>]... [--attach <path>]... [<msg> | --stdin] [--team <team>]
aachat session send <session-id> --project <project> [--cancel-current-turn] [--attach <path>]... [<msg> | --stdin] [--team <team>]
aachat session show <session-id> --project <team/project>
chat session read <session-id> --project <project> [--last N] [--before <cursor>] [--decision | --submission <turn-id>] [--team <team>]
aachat session stop <session-id>    # 即時終了。実行中のターンは中断されうる
aachat session logs <session-id> [--from-start | --after-offset N]
aachat session permission list <session-id> --project <project> [--team <team>]
aachat session permission respond <session-id> <request-id> --project <project> (--option-id <id> | --cancel) [--team <team>]
aachat session schedule create <session-id> --project <project> --at <RFC3339> [--every 60-86400] (<prompt> | --stdin) [--team <team>]
aachat session schedule list <session-id> --project <project> [--team <team>]
aachat session schedule cancel <session-id> <schedule-id> --project <project> [--team <team>]
aachat session compact <session-id> --project <project> [--request-id <uuid>] [--team <team>]
```

- `run` は常に新規sessionを起動する。agentはprojectのmemberとして解決される
- `session list` の `--project` なしは Team Work Index。接続チーム内で読める project を cover する全 lifecycle の session を返し、他人の session も含む。`--project` は 1 project に絞る。各 session は所属の `project` と、追加 coverage があるときだけ `also_covers` を返す。`--last` の既定は 20（最大 100）
- `--repo` は作業リポジトリの指定。`--runtime` はこのSessionのRuntimeを選び、Runtimeとconfigの両方を省略すると保存済みinteractive起動設定を再利用でき、それ以外のdefault解決は[Agents](/ja/docs/agents)に従う。明示するtyped Runtime設定は `--config` を繰り返す（例: `--config mode=id:plan`）
- `--attach` は画像・動画・PDFをsession historyに添付する。**Project Mediaには公開されない**
- `run` / `send`はtextなしで`--attach`だけでも実行できる
- `--cancel-current-turn` は実行中のターンを破棄して新しい指示を差し込む強い操作。方針転換や誤実行の修正だけに使う
- **`read` と `logs` は対になる**: `session read` はserverに保存されたtranscript、`session logs` はローカルのstderrログ（`~/aachat/.run/logs/`）を読む。sessionの記録の所在は [信頼境界](/ja/docs/trust-boundary)
- `session read --decision` は bounded decision view。`--submission <turn-id>` は accepted submission を追跡する。両者は排他
- `session schedule` は既存sessionへの **scheduled follow-up** を作成・一覧・取消する。新Session / WorkflowのTriggerはWebUIまたは`chat trigger`で設定する（[Sessions](/ja/docs/sessions)）
- `session compact` は project-scoped session の compact をキューする。session は終了しない

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

```bash
aachat doc check <path>            # projectionされたshared documentファイル1件を検証する（--hook でhook payloadをstdinから読む）
aachat skills add <skill-name> [--target <dir>]   # ローカル skill を通常sourceの .agents/skills/ に追加する。Skill Ledger への feedback ではない
aachat skill feedback <skill-name> (<feedback> | --stdin) [--location <text>] [--suggestion <text>] [--team <team>]   # 稼働中 Skill Ledger skill への human feedback。内側 session では `chat skill feedback`
aachat concept publish <concept-id> --revision <revision-id> [--team <team>]
aachat concept decline <concept-id> --revision <revision-id> --reason <text> [--team <team>]
aachat meeting create <team> --title <text> --started-at <RFC3339> [--participant <name>]... --stdin [--client-nonce <uuid>]
aachat workflow create <project> <slug> --client-nonce <uuid> [--team <team>]
aachat workflow draft <project> <slug> [--team <team>]
aachat workflow validate <project> <slug> --source <dir> [--team <team>]
aachat workflow try <project> <slug> --source <dir> --expected-draft-version <N> --client-nonce <uuid> --stdin [--team <team>]
aachat workflow retry <project> <run-id> <step-key> --client-nonce <uuid> [--team <team>]
aachat workflow feedback <project> <run-id> <step-key> --stdin [--attempt-number <N>] [--team <team>]
aachat workflow attempts <project> <run-id> <step-key> [--last N] [--before <cursor>] [--team <team>]
aachat workflow attempt <project> <attempt-id> [--team <team>]
aachat workflow list <project> [--last N] [--before <cursor>] [--team <team>]
aachat workflow show <project> <slug> [--team <team>]
aachat workflow runs <project> <slug> [--last N] [--before <cursor>] [--team <team>]
aachat workflow run <project> <slug> --stdin [--client-nonce <uuid>] [--team <team>]
aachat workflow publish <project> <slug> [--source <dir>] [--team <team>]   # 選択したローカルDraftを公開する
aachat workflow status <project> <run-id> [--team <team>]
aachat workflow cancel <project> <run-id> [--team <team>]

aachat trigger list <project> [--limit N] [--cursor <cursor>] [--team <team>]
aachat trigger show <project> <trigger-id> [--team <team>]
aachat trigger preview <project> --stdin [--team <team>]
aachat trigger create <project> --stdin [--team <team>]
aachat trigger update <project> <trigger-id> --stdin [--team <team>]
aachat trigger pause <project> <trigger-id> --state-version <N> [--team <team>]
aachat trigger resume <project> <trigger-id> --state-version <N> [--team <team>]
aachat trigger run <project> <trigger-id> --state-version <N> [--team <team>]
aachat trigger delete <project> <trigger-id> --state-version <N> --yes [--team <team>]
aachat trigger occurrences <project> <trigger-id> [--limit N] [--cursor <cursor>] [--team <team>]

aachat db schema <project> [--team <team>]
aachat db query <project> --stdin [--team <team>]
aachat db migrate <project> <db/migrations/id.sql> [--team <team>]
```

`aachat meeting create`の結果が不明な場合、CLIは元のstdin本文をprivateなlocal retry fileへ保持し、同じ本文とnonceを使うcommandを返す。そのcommandだけを実行し、receipt確定後にretry fileは削除される。

Workflow Draft、Trigger、Databaseのmutationは、既存のversion、nonce、role、source契約を使う。retryや状態変更の前にcurrent objectと`available_actions`を確認する。`team update`、Trigger preview/create/update、Workflow tryのinput、feedback、`db query`のJSON request bodyはstdinから渡す。connected repoの外では`--team`を明示する。

```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）。Timeline/transcriptは`next.before`、Workflow一覧は`next_cursor`を`--before`へそのまま渡す（[ページング](/ja/docs/limits)）。`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へ出力する。引数parseやcommandの失敗はstderrの単一JSONと終了status 1で返り、`error`、表示された`hint`や`commands`を読む。stdoutが空でもエラーなしとは判断しない。help/versionはtextで、診断JSONを付けず成功終了する。sessionのスコープ内で動くため `--team` フラグはない。

対応版の失敗JSONには`diagnostic`が付く。`diagnostic.diagnostic_id`と、`diagnostic.context`に実際に出た操作名・版・HTTP相関情報を保存する。旧版や失敗経路によってfieldがない場合は補完せず、`chat --version`と対象commandの`--help`も確認する。[診断の読み方とsupportへの受け渡し](/ja/docs/troubleshooting)を参照する。このshapeを外側の`aachat`のstdout envelopeへ適用しない。

```bash
# メッセージ
chat send <project> (<msg> | --stdin) [--reply-to <seq>] [--type <type>] [--via <label>]
chat read <project> [--last N] [--before <cursor>]
chat thread <project> <seq> [--last N] [--before <cursor> | --after <cursor>]
chat edit <project> <seq> (<text> | --stdin)
chat delete <project> <seq>
chat post-type update <project> <seq> --type <type>
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> [--runtime-profiles]   # members[].name / capability.commands / live_sessionsをrun/send選択に使う
chat project join <name>
chat project create <name> --parent <parent> --lead @<member> --stdin [--description <text>]
chat project assign <project> --agent <agent>
chat project delegations <parent>
chat project update <name> [--description <text>] [--status planning|active|completed|archived]

# Ask（作成と待機は内側だけ。外側は aachat ask list|show|cancel|answer）
chat ask create <project> [--scope project|session] --to @user --question <text> (--body <text> | --stdin) [--option <text>]...
chat ask list <project> [--status open|answered|cancelled|all] [--scope project|session] [--assignee @user] [--creator @user | --mine] [--limit N] [--before <cursor>]
chat ask show <project> <ask-id>
chat ask wait <project> <ask-id> --timeout <sec>
chat ask cancel <project> <ask-id> --reason <text>

chat wait --all [--session <id>]... [--workflow <run-id>]... [--ask <ask-id>]... [--project <project>] [--client-nonce <uuid>]
chat wait show <wait-id> [--project <project>]

# 探索（既定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>]

# Team Registry（current stateはaachat/teams/<team>/{concepts,entities}のYAML）
chat registry check <resource-file>
chat registry plan <resource-file> --project <project>
chat registry submit <resource-file> --project <project> [--reason <text>] [--proceed-token <token>]
chat registry refresh (<resource-file> | --all) [--discard-local]

# Meeting / メディア / Database
chat meeting create --title <text> --started-at <RFC3339> [--participant <name>]... --stdin [--client-nonce <uuid>]
chat media <project> [--q <text>] [--last N] [--before <cursor>]
chat media <project> --download <MEDIA_ID>
chat media <project> --delete <MEDIA_ID> --revision <N>
chat db schema
chat db migrate <migration-file>
chat db query --sql <sql> [--params '<json-array>']

# Workflow
chat workflow init <slug> [--project <project>] [--client-nonce <uuid>]
chat workflow validate <path>
chat workflow list [--project <project>] [--last N] [--before <cursor>]
chat workflow show <slug> [--project <project>]
chat workflow runs [<slug>] [--project <project>] [--last N] [--before <cursor>]
chat workflow run <slug> [--project <project>] (--input-file <path> | --stdin) [--client-nonce <uuid>] [--wait]
chat workflow run --draft <path> (--input-file <path> | --stdin) [--client-nonce <uuid>] [--wait]
chat workflow publish <path>
chat workflow status <run-id> [--project <project>]
chat workflow cancel <run-id> [--project <project>]
chat workflow retry <run-id> --step <step-key> [--project <project>] [--client-nonce <uuid>]
chat workflow feedback --stdin
chat workflow feedback <run-id> --step <step-key> [--project <project>] [--attempt N] --stdin
chat workflow complete --stdin

# Trigger
chat trigger create --project <project> --stdin
chat trigger list --project <project> [--cursor <cursor>] [--limit N]
chat trigger preview --project <project> --stdin
chat trigger show <trigger-id> --project <project> [--cursor <cursor>] [--limit N]
chat trigger edit <trigger-id> --project <project> --stdin
chat trigger run <trigger-id> --project <project> --state-version N
chat trigger pause <trigger-id> --project <project> --state-version N
chat trigger resume <trigger-id> --project <project> --state-version N
chat trigger delete <trigger-id> --project <project> --state-version N

# Results: optional reporting during the final Asset Wrap-Up turn
chat result list --session <session-id> --project <team/project> [--kind <kind>] [--last N] [--before <cursor>]
chat result list --target <ref> --project <team/project> [--last N] [--before <cursor>]
chat result list --used-by <ref> --project <team/project> [--last N] [--before <cursor>]
chat result show <result-id> --project <team/project> [--last N] [--before <cursor>]
chat result report --stdin [--project <team/project>]
chat result report --retry-stdin

# session（委任と自分の終了）
chat session list --project <project> [--last N] [--before <cursor>]
chat session run [--agent <agent>] --project <project> [--repo <owner/repo>] [--runtime <claude-acp|codex-acp>] [--config <ID=id:VALUE|boolean:BOOL>]... [--attach <path>]... [<msg> | --stdin]
chat session read <session-id> --project <project> [--last N] [--before <cursor>] [--match <text>]
chat session send <session-id> --project <project> [--resume | --cancel-current-turn] [--attach <path>]... [<msg> | --stdin]
chat session compact [<session-id> --project <project>] [--request-id <uuid>]
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](/ja/docs/sessions)）
- `chat`のproject引数はcurrent session内のnameに加え、same-teamの`<team>/<project>` qualified formを使える。他teamまたはsession scope外のprojectは拒否される
- mentionはproject memberのexact name `@<agent>.<owner>`を使う。unknown targetはwarningになる。slash commandはflagではなくprompt先頭に置く
- `chat session finish` は即時の強制終了ではない。current turn完了後にasset wrap-upを1回実行し、`repo_handoff_preview`として、設定済みworkspace repoと必須agent repoのlocal read-only snapshotを返す。dirty数、Session commit数、local remote-tracking refがHEADを含むか、closed failure codeを確認できる。fetchやremote照会は行わないため、`target_containment_not_observed`はlocal包含を確認できなかったことだけを意味し、未公開や他者から見えないことを証明しない
- `chat session compact`はcurrentまたはtarget sessionをcurrent turn後・通常follow-up前にcompactする。曖昧な再送は同じ `--request-id` を再利用する。runtime未対応時はエラーになり、hintは durable context を保存して `session finish` のあと fresh session を始めること。コマンド自身はfinishしない（[Sessions](/ja/docs/sessions)）
- `--type` は root 投稿だけに付けられる。`--reply-to` と同時指定はできない
- `chat project create`はcurrent parent Projectのcurrent Lead Sessionから子Projectを作る。`--parent <parent>`、`--lead`、Briefの`--stdin`が必須。子のLeadは親Projectのactive memberから選ぶ
- `chat wait --all`は`--project <team>/<project>`を指定するかcurrent Projectのディレクトリから、同Projectの直接の子Session・source agent自身が開始したtop-level Workflow Run・Project Askを合計1〜100件明示する。各flagは繰り返せる。受付されたwait IDを残し、turnを終えて継続を待つ。待機中はfinish・polling・再登録・手動follow-upをしない
- `chat wait show <wait-id>`は読み取りのみで、再開操作でもblockする待機でもない。全対象の確定後に一回の継続が受付される。取消や失敗もsettledであり成功ではない。受付と成果の確認は[Sessions](/ja/docs/sessions)を参照する
- G2復旧の読取では`chat wait show <wait-id> --project <team>/<project>`と`chat workflow status <run-id> --project <team>/<project>`でProjectを明示できる。省略時は上のcwd形式を使う。インストール済みCLIの各`--help`で対応を確認する。Askは`chat ask show <team>/<project> <ask-id>`のようにProjectを明示し、cwdだけに頼らない。Sessionは`chat session read <session-id> --project <team>/<project>`で読む。ownerのローカルログを読む`aachat session logs <session-id> --from-start`は`--project`を受け取らない。これらは読取であり、通知の再配送や仕事の再実行ではない（[復旧ガイド](/ja/docs/troubleshooting)）
- `chat ask wait --timeout` は必須で1秒以上。現在のturn内のbounded waitであり、継続を登録する`chat wait --all`とは異なる。timeoutは「まだopen」。tight pollingせず、後で `ask show` / `ask list` / `chat read` から読む
- sessionの`run` / `send`はtextなしのattachment-onlyでもよい。timelineの`chat send`にはattachment flagがなく、WebUI attachmentまたはProject Mediaを使う
- `--via` の省略時は環境変数 `AA_VIA` の値が使われる
- `chat media --download`は対応CLI/APIとSessionのcoverage・書込権限が前提です。ready一覧の`media.id`またはcanonical URLを渡し、一覧用flagとは併用しません。成功JSONの`downloaded.path`を読む手順と失敗時の対処は[Media](/ja/docs/media)を参照してください。取得コピーを再公開しません。
- `chat media --delete`は公開済みMediaの取り消しです。同じ一覧の`media.revision`を`--revision`へ渡し、一覧用flagや`--download`とは併用しません。取り消しは不可逆で、canonical URLは解決しなくなります。current Shared DocumentまたはProject HTMLが参照しているMediaは`media_in_use`で拒否されるので、先に参照を外します。
- `--last N` の既定値: `read` / `inbox` / `mentions` / `find` が20、`thread` / `session read` が50、`media` が30（範囲1〜50）。他は1〜100

### Projectを解決し受付を読む

Workflowの`init/list/show/runs`、公開`run`、`status/cancel/retry/feedback`は`--project`を受け付け、省略時はcwdで解決します。slugなしの`runs`はそのProjectのWorkflowをまたいでRunを返します。`publish`と`run --draft`は正規のDraft pathからProjectを選び、draft runと`--project`は同時指定できません。`validate`はDraftと一致するProject directoryから実行し、**serverを呼んで**Bundleを検証します。offline検証ではありません。`complete`は現在のWorkflow Attempt専用で、Session finishでは代替できません。feedbackはplain textのstdinを受け、現在のAttemptか明示したRun/Stepへ残します（[Workflows](/ja/docs/workflows)）。

`run --wait`と`chat wait --all`は永続的な継続を登録してprocess内で待たずに返ります。受付IDを保持してturnを終え、継続時に各targetを確認します。settledには失敗や取消も含まれます。成否不明のときにclient nonceを再利用するのはexactに同じrequestだけです。同じnonceでinputを変更しないでください。

Triggerの全commandで`--project`が必須です。run/pause/resume/deleteはshow/listで読んだ現在の`state_version`を使い、editは完全なJSON input内にversionを含めます。一覧・起動履歴は返された`next`を`--cursor`へ渡して辿ります。liveな自動化を作成する前に[Triggerの完全なJSONと復旧手順](/ja/docs/triggers)を読んでください。

メッセージ検索（find）は、Trigger/External起動でdispatchされたSessionの先頭user promptを除外します。通常の人間投稿や全Sessionの先頭発言を一律に除外するものではなく、mentionsにはこの除外を適用しません。起動指示が見つからないときは対象Sessionのtranscriptを開いて確認してください（[Sessions](/ja/docs/sessions)）。

`workflow show`の公開RevisionのStep・依存関係の開始前確認は[Workflows](/ja/docs/workflows)を参照してください。showはRunを開始しません。

`chat send`と`chat read`のProjectは位置引数の代わりに`--project`でも選べ、Ask commandも同じ代替形を受け付けます。Session `list`の既定は50（最大100）で、publicの`aachat session list`（20）とは異なります。Session `read --match`は指定Sessionかつ指定Projectの保存済み会話・Tool入力などを対象とするliteral抜粋検索で、次page cursorはありません。新しい永久履歴にはTool出力を保存しないため、検索や通常readで復元できません。保存境界、成果の残し方、検索窓と上限は[Sessions](/ja/docs/sessions)を参照してください。`--resume`はAgentの`chat session send`だけにあり、cancelとは排他です。public専用decision/submissionの例とturn IDの読み方は[Sessions](/ja/docs/sessions)にあります。

delivery receiptはnative Git pushまたはPR作成が成功した後にだけ記録します。receiptは外部操作を実行しません。[コードの提出](/ja/docs/code-delivery)の完全な手順に従い、native提出成功後は失敗したreceiptだけを再試行します。

## aachat-mcp

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

- `aachat_concept_reviews` — current published Concept Revisionのreviewを読む
- `aachat_concept_review` — Concept Revisionへendorse / concernを投稿する
- `aachat_concept_removal_propose` — current Conceptのarchiveを人間へ提案する

Concept・Entityのcurrent stateは`aachat/teams/<team>/{concepts,entities}`のYAMLから発見・読取し、編集後に`chat registry check / plan / submit`で変更する。server truthへ戻す時は`chat registry refresh`を使う。メッセージ検索は`chat find`を使う。型とライフサイクルの詳細は [Concept Registry](/ja/docs/concept-registry) / [Company](/ja/docs/company)。
