メインコンテンツへスキップ

概要

arc は ARC ランタイムインスタンスを操作するためのコマンドラインツールです。AFS ファイルシステム、アイデンティティと信頼、シークレット、デプロイ、AUP DSL は、すべてこれを通して行われます。

arc は ARC ランタイムインスタンスを操作するためのコマンドラインツールです。トップレベルの各コマンドはそのランタイムの一部を担当します:afs はファイルシステム操作、did はアイデンティティと信頼、vault は暗号化されたシークレット、deploy はデプロイ先の管理、dsl は AUP DSL アーティファクトの操作、といった具合です。

本ドキュメントが対応するバージョン: 2.0.0-beta.48 (5a5316bde)、ビルド日 2026-09-10。arc --version は常にこの 3 要素の形式 —— <semver> (<commit>) <build date> —— を表示します。同じ beta.N という文字列が異なるビルド間で再利用されるため、コマンド面を実際に固定するのは commit だからです。自分のバージョンを確認するには arc --version を実行してください。コマンドやオプションはビルド間で変わることがあります。

arc がまだ PATH に入っていない場合は、まず インストール を参照してください。

arc worker は ArcBlock 自身の Cloudflare デプロイを管理します。これは両方が満たされないと登録されない 2 つのゲートの背後にあります:1 つはビルド時フラグで、リリースビルドでは常に off です(そのため install.sh でインストールするバイナリには絶対に含まれません)。もう 1 つはランタイムチェックで、現在の作業ディレクトリが実際の ArcBlock/arc チェックアウトの内側にあること、または ARC_WORKER_DIR が明示的に設定されていることを要求します(そのため、そのチェックアウトから作られたデバッグビルドであっても、別の場所から実行すれば arc worker は表示されません)。以下の一覧には含まれていません。

arc space sync-bench は arc 自身の afs-rpc ワイヤー用の hermetic なベンチマークドライバーであり、プロダクト機能ではありません —— サードパーティが自分のデータで何かを達成するために実行するようなものではありません。これは arc worker と同じビルド時フラグの背後にあります(リリースビルドでは off)。違いは arc worker にある追加のチェックアウト位置チェックがないことだけです。こちらも以下の一覧には含まれていません。

arc connectarc explore は削除されました:どちらも既にデーモンが行っていることを重複して提供していたためです(arc service start/explorer を含むすべてのエンドポイントを表示するので、「起動して開く」という別ステップは不要です)。代わりに arc service start を使ってください。

グローバルオプション

すべてのコマンドが同じフラグを受け付けます:

  • --json:デフォルトのテキスト出力ではなく、構造化された JSON を表示する
  • --view <default|llm|human|json>:レンダリングスタイルを選ぶ。llm は出力をエージェントに読み戻すために調整されたもの、human は端末で人が読むためのもの、json--json と等価
  • --instance <name> / -i:このコマンドがどのローカル ARC インスタンスに対して動作するか(arc service list を参照)。省略すると default インスタンスになる。この軸を指す名前はこれだけ
  • --home <dir>:インスタンスのルート。arc service start(作成)、--standalone(ad-hoc)、arc did init(アイデンティティ)で使われる。どのインスタンスにするかを選ぶには --instance を使う

--json--view は結果の表示方法だけを変える。これらはコマンドの出力に対して働くもので、--help 自体には影響しない。ヘルプテキストは常にプレーンテキストです。--instance--home は、コマンドがどのインスタンスと話すかを変える。

認識できないフラグは拒否されます(ERROR: Unknown argument: <name>、終了コード 5)—— arc はタイプミスや削除されたオプションを黙って無視することはなく、ヘルプ/エラーテキストはシステムのロケールに関わらず常に英語です。--yaml はそうした削除済みオプションの一つでした(すべてのコマンドの --help で宣伝されていたが、実装されたことは一度もない)。代わりに --json または --view json を使ってください。

コマンドをタイプミスしたとき

トップレベルコマンドのスペルミスは、単純に拒否されるだけではありません —— arc はおそらく意図したコマンドの名前を挙げ、続けて完全なコマンド一覧を表示します(ここでは提案の後を省略しています):

bash
$ arc serivce list
ERROR: Unknown command: "serivce"

Did you mean?
  arc serve
  arc service

候補が僅差のときは、どちらかを推測するのではなく、すべての候補を提示します:serivceserveservice の両方から編集 1 回の距離なので、両方が表示されます。タイプミスの終了コードは、他の使い方の誤りと同じく 5 です —— 各コードの意味は 終了コード を参照してください。

同じ仕組みは一段下でも働き、サブコマンド名やオプション名のスペルミスも捕まえます —— 常にその 1 つのコマンド自身の候補範囲に限定され、終了コードは同じく 5 です:

bash
$ arc service strat
ERROR: Invalid values:
  Argument: action, Given: "strat", Choices: list, start, stop, restart, status, delete, gc, url, logs

Did you mean?
  arc service start
...
$ arc service start --instnace foo
ERROR: Unknown argument: instnace

Did you mean?
  --instance
...

この 3 か所のいずれかを直せば、同じコマンドが正常に動作します。exit 0:

bash
$ arc service list --help
arc service list

List every local instance with its status, port and home
...

破壊的なコマンドをプレビューする

--dry-run はグローバルフラグではありません。これを受け付けるコマンドは 6 つ —— arc afs deletearc blocklet buildarc deployarc service deletearc space migratearc space sync —— で、確認プロンプトを飛ばす --yes を受け付けるコマンドは 3 つ:arc afs deletearc service deletearc did issuer resetafs deleteservice delete は両方を受け付けます)。arc space sync --dry-run は計画全体を報告し、何も書き込みません(ここではサマリー部分だけを抜粋しており、エンジン選択と時間計測の行は省略しています)。

bash
$ arc space sync --from ./src --to ./dst2 --dry-run
./src ⇢ (dry-run) ./dst2
Base path: /
Mode:      additive

Added:     2
Modified:  0
Deleted:   0
Unchanged: 0

Transferred: 0 files

ポイントは Transferred: 0 files です —— 計画では 2 個のファイルが追加されると言っているのに、実行後も送り先は空のままです。arc blocklet build --dry-run も同じ挙動で、公開するはずの manifest を表示するだけで dist/ を残しません。

他のすべてのコマンドには、プレビューも確認プロンプトもありません。特に arc space rm には --dry-run--yes もありません:Enter を押した瞬間に、ローカルの app space 内のファイルやディレクトリを削除します。削除する前に arc space tree <app-did> で確認してください。

コマンドグループ

afs

ファイルシステム操作:ls、read、write、delete、stat、exec、explain、search、subscribe、およびマウント管理。

did

アイデンティティと信頼:DID を生成し、クレデンシャルを発行・検証し、信頼済み発行者を管理する。

vault

暗号化されたシークレットストレージ:init、get、set、list、delete。

dsl

AUP DSL アーティファクトを検証・lint・整形・生成・検査する。

collections

content/ をスキャンし、blocklet.yaml 用の collections: フラグメントを生成する。

space

ローカルの DID Space データを管理する:list、tree、path、rm、2 つのサブツリー間の同期、フォルダ空間の claim と repair、フォルダレイアウトの移行。

deploy

blocklet をローカルデーモンに登録するか、DID Space に公開する。

blocklet

Blocklet パッケージとインスタンスのライフサイクル:スキャフォールド、ビルド、チェック、デプロイ、フリートデプロイ。

service

名前付き AFS バックグラウンドインスタンスを管理する:list、start、stop、restart、status、delete、gc、url、logs。

serve

HTTP または MCP 経由でフォアグラウンドの AFS サーバーを起動する。

attach

ローカルディレクトリ、またはこのホストの HostFace を、リモートの arc デーモンへ逆マウントする。

drain

長時間稼働:work ledger を監視し、準備が完了した作業をアイドル状態の peer に振り分ける。

mcp

stdio を、稼働中の AFS デーモンの MCP エンドポイントへブリッジする。

skill

同梱の how-to ブックレット:list、show、ホストエージェントの skill ディレクトリへの install(まだ完全な skill パッケージマネージャーではない)。

provider

プロバイダーパッケージの操作:プロバイダーのリソースを CF Pages に公開する。

upgrade

arc 自体を最新リリース、または固定したバージョンにアップグレードする。

network

アウトバウンド接続を診断する:プロキシ検出、DNS、HTTPS、WebSocket をそれぞれ個別に報告する。

completion

bash、zsh、または fish のタブ補完スクリプトを stdout に出力する:コマンド名、サブコマンド名、インスタンス名、--recipe の値。