> ## Documentation Index
> Fetch the complete documentation index at: https://arkor-92aeef0e-eng-353.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# コマンドリファレンス

> arkor CLI: 全コマンドリファレンス。

`arkor` CLI は Arkor プロジェクトを取り巻くコマンド面です。プロジェクト生成ツール（[`pnpm create arkor`](/ja/quickstart)）が `arkor` をローカル devDependency としてインストールするので、CLI をグローバルにインストールしていない限り、素の `arkor` ではなく利用しているパッケージマネージャーのローカル bin 実行コマンド（例: `pnpm exec arkor <command>`、`npx arkor <command>`、`yarn arkor <command>`、`bunx arkor <command>`）を使ってください。以降の例は pnpm 形式で記載しますが、他のパッケージマネージャーでも同じように動きます。

## コマンド

| コマンド                                     | 役割                                                                                                                           |
| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| [`arkor init`](/ja/cli/init)             | カレントディレクトリーに `src/arkor/index.ts` + `arkor.config.ts` を生成。                                                                   |
| [`arkor dev`](/ja/cli/dev)               | [Studio](/ja/concepts/studio) を `http://localhost:4000` で起動（設定可）。                                                            |
| [`arkor build`](/ja/cli/build-and-start) | `src/arkor/index.ts` を `.arkor/build/index.mjs` にバンドル。                                                                       |
| [`arkor start`](/ja/cli/build-and-start) | ビルド成果物を実行（無いときは自動ビルド）。                                                                                                       |
| [`arkor login`](/ja/cli/auth)            | サインイン。フラグなしでは対話ピッカー（初期選択: `Anonymous`）を表示。`--oauth` でループバック上の Arkor Cloud OAuth（PKCE）フロー、`--anonymous` でピッカーをスキップして使い捨てトークン。 |
| [`arkor logout`](/ja/cli/auth)           | `~/.arkor/credentials.json` を削除。                                                                                             |
| [`arkor whoami`](/ja/cli/auth)           | 現在の identity と到達できる org を表示。                                                                                                 |

## コマンド共通の慣例

* **`--help` / `-h`** はすべてのコマンドで使えます。`arkor <command> --help` でフラグ一覧と使い方が表示されます。
* **`arkor --version` / `-V`** はインストール済み SDK バージョン（パッケージがエクスポートしている `SDK_VERSION` と同じ）を表示します。
* **終了コード。** 成功は 0。ほとんどのコマンドは失敗時（未捕捉の throw、ビルドエラーなど）に非ゼロで終わります。`arkor whoami` は意図的な例外で、失敗を stdout に出しても通常のクラウド API エラー（`Failed to fetch /v1/me (<status>)`、`/v1/me` の取得に失敗しました）では 0 で終了し、クラウド API が 426（SDK が古すぎる）を返したときだけ `process.exitCode = 1` を立てます。`whoami` の失敗を検知したいラッパースクリプトは終了コードではなく stdout を grep してください。
* **テレメトリー。** すべてのコマンドは小さな計測ラッパー越しに走るので、利用イベントを PostHog に送れます。完全なオプトアウト／デバッグの仕組みは下記の [環境変数](#環境変数) を参照。
* **非推奨通知。** クラウド API のレスポンスに `Deprecation: true` が付いていると、CLI は実行終了時に推奨アップグレードコマンド付きの 1 行警告を出します。`Warning` と `Sunset` ヘッダー（あれば）はメッセージのフォーマットに使われ、それ単独で警告をトリガーすることはありません。

## 環境変数

| 変数                           | 効果                                                                                                                                                                                                                |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `DO_NOT_TRACK=1`             | すべてのコマンドでテレメトリーを無効化。永続テレメトリー ID ファイルは作成も読込もされません。                                                                                                                                                                 |
| `ARKOR_TELEMETRY_DISABLED=1` | `DO_NOT_TRACK` と同じ。`DO_NOT_TRACK` で他ツールをゲートしているがスイッチを分けたい構成のための Arkor 専用エイリアス。                                                                                                                                    |
| `ARKOR_TELEMETRY_DEBUG=1`    | テレメトリーモジュール内部の冗長ログを有効化（init 失敗、identity ファイルの read/write エラー、capture 失敗、shutdown エラー）。このフラグが ON でも **テレメトリーは送信されます**。診断補助で、dry-run スイッチではありません。送信を止めるには `DO_NOT_TRACK=1` か `ARKOR_TELEMETRY_DISABLED=1` を使ってください。 |
| `CI=1`（または stdout が非 TTY）    | 非対話モードを強制。`arkor init` はプロンプトをスキップしてフラグで渡された値（`--yes` 時は組み込みのデフォルト）を使い、`--git` か `--yes` 指定時は git init が確認なしで走り、それ以外では黙ってスキップされます。[`arkor init` § CI / 非対話シェル](/ja/cli/init#ci--非対話シェル) を参照。                      |

### ロードマップ上

CLI は `ARKOR_CLOUD_API_URL` を読み、設定されていればクラウド API のエンドポイントとして使います（`packages/arkor/src/core/credentials.ts` の `defaultArkorCloudApiUrl`）。ただし、デフォルト以外のエンドポイント（セルフホストやステージング）を指すことは **まだ** 安定したユーザー向けノブではありません: この環境変数は内部用で予告なく変わる可能性があり、別エンドポイントへの互換性保証もありません。セルフホスト／ステージングデプロイへのファーストクラス対応は[ロードマップにあります](/ja/roadmap#self-hosted-deployments)。

## プログラムからの呼び出し

`arkor` パッケージは `runTrainer` を再エクスポートしているので、`arkor start` 経由でなく自分の TypeScript コードから学習を駆動できます:

```ts theme={null}
import { runTrainer } from "arkor";

await runTrainer(); // src/arkor/index.ts を解決し trainer.start() + .wait() を呼ぶ
```

CLI のコマンドランナー本体（`runBuild`、`runStart`、`runDev` など）は意図的に **公開面ではなく**、予告なく変わる可能性があります。学習を自分のコードに組み込みたいなら `runTrainer` を使うか、`trainer.start()` / `trainer.wait()` を直接呼んでください。

## プロジェクト状態 vs ユーザー状態

CLI が読み書きする場所は 2 つです:

* **`.arkor/`**（プロジェクトごと、gitignore 済み）: `state.json`（プロジェクトのルーティング）と `build/index.mjs`（バンドルされたトレーナー）。
* **`~/.arkor/`**（ユーザーごと）: `credentials.json`（認証）と `studio-token`（起動ごとの CSRF トークン、一時的）。

ファイル単位の説明は [プロジェクト構成](/ja/concepts/project-structure) を参照。
