Skip to content
Apothem
CLI リファレンス

rollback

apothem rollback コマンドの CLI リファレンス。

ハーネスを、記録されているインストールの前の状態に復元します。

構文

apothem rollback --harness NAME|all [--install-id ULID | --last] [--yes]
                 [--project PATH]
                 [--quiet|-q] [--verbose|-v]
                 [--format plain|json] [--json] [--no-color]

rollback は、選択した各ハーネスを、記録されたインストール実行の前の状態に戻します。対象は、デフォルトでは最新のインストール実行、または --install-id で指定したインストール実行です。 そのインストールの台帳レコードを新しい変更から順にたどりながら、次の処理を行います。

  • インストールが上書きしたすべてのファイルとディレクトリを、そのインストールが取得したバックアップから、記録されているパスに復元します(インストールが置き換えたディレクトリは、インストールがそこに追加したファイルを含まない状態で、正確に復元されます)。
  • インストールが作成したすべてのファイルとディレクトリを削除し、インストールが一掃したレガシーレイアウトのパスがあれば元に戻します。
  • インストールが作成した共有データストア(memory、contexts、learning)を、他のインストール済みハーネスがまだ使用している場合を除いて削除します。
  • インストールが作成したディレクトリを、空になった時点で削除します。

他のインストールも使用する、ホームディレクトリ内のファイルまたはフォルダー(スキルフォルダー、または ~/.config/apothem/)は、共有データストアと同様に扱われます。 ロールバックは、別のインストールがまだそれを列挙している間はそれを残し、それを使用する最後のインストールに対してのみ復元または削除します。 このインストールがすでに存在する状態で見つけたフォルダー(最初のツールの後にインストールされた 2 つ目のツール)は、その後それを手放したインストールが作成したものである場合、それを使用する最後のインストールとともに削除されます。そのため、すべてのツールをロールバックすると何も残りません。 フォルダーを使用し得るインストールの記録が読み取れない場合、ロールバックは何かを変更する前にエラーとともに停止し、rollback レコードを書き込みません。記録を修復して、再度実行してください。

ロールバックが削除または置き換えるものはすべて、まず Apothem のバックアップルート(~/.apothem/backups/)にコピーされるため、ロールバック自体を手作業で取り消すことができます。 その後、ロールバックはハーネスの台帳に rollback レコードを追記します。 古いインストールをロールバックすると、その古いインストールが記録した対象のみが復元または削除され、同じルートでそれより後のすべてのインストールは、台帳の有効なインストールから外されます。 後のインストールがそれらの対象の外に追加したファイルは、そのまま残ります。

台帳は、インストールルートごとに最新 10 件のインストールレコードを(それらが参照するバックアップとともに)保持します。 それより古いインストールは、もはや id ではロールバックできず、rollback.no_record を報告します。 apothem backups prune は、必要に応じてこの上限を引き下げますが、最新のインストールの復元元となるバックアップは決して削除しません。

この動作が追加される前の Apothem リリースが書き込んだレコードには、インストールが作成したファイルが記載されていません。 そのようなレコードをロールバックすると、上書きされたファイルのみが復元されます。

--yes が指定されない限り、確認はハーネスごとに求められます。 プロンプトを表示できない場合 — --format json(プロンプトのテキストが単一の JSON ドキュメントを壊してしまうため)または非対話型のシェル(TTY なし)— は、--yes が指定されない限り、コマンドは処理を始める前に、構造化された rollback.confirmation_required エラー(終了コード 1)で拒否します。 --install-id と --last はインストール実行を選択するもので、相互に排他的です。

--harness all のロールバックは、意図的に網羅的です。登録済みのすべてのハーネスを対象とし、プロファイルの exclude_harnesses がインストール時にスキップするハーネスも含みます —— インストール前の状態を復元することはクリーンアップ操作であるため、以前のより広範なインストールが残した可能性のあるレコードにも及びます。記録されたインストールがないハーネスは、results 内の "outcome": "error" の行として失敗し(JSON 出力を参照)、実行は残りのハーネスで続行されます。その後、コマンドは、何もロールバックされなかった場合は終了コード 1 で終了し、少なくとも 1 つのターゲットがロールバックされ、かつ失敗も記録された場合は終了コード 2(部分的な結果)で終了します。

オプション

オプション説明
--harness NAMEロールバックするハーネスアダプター、またはレジストリ全体の集合を表す all(必須)。
--install-id ULID指定したインストール実行をロールバックします。デフォルトは、最後に記録されたインストールです。
--last最後に記録されたインストールをロールバックします(デフォルトの動作を明示する形式)。--install-id とは相互に排他的です。
--yesハーネスごとの確認プロンプトをスキップします。
--project PATHプロジェクトスコープのハーネス向けのプロジェクトルート。選択した集合にプロジェクトスコープのアダプターが含まれる場合は必須です。
--quiet, -q情報出力を抑制し、エラーのみを出力します。
--verbose, -v追加の診断出力を出力します。
--format plain|json出力形式(デフォルト: plain)。
--json--format json の短縮形です。
--no-color出力中の ANSI カラーコードを無効にします。
-h, --helpヘルプを表示して終了します。

JSON 出力

この例は、名前を指定した単一のハーネスのエンベロープです。--harness all の場合、harness は all、output_path は null となり、results には選択されたすべてのハーネスの行が含まれます。

{
  "schema_version": 1,
  "status": "success",
  "command": "rollback",
  "action": "rolled_back",
  "harness": "claude-code",
  "profile_path": null,
  "project": null,
  "files_written": [],
  "results": [],
  "warnings": [],
  "error": null,
  "output_path": "C:\\Users\\Example\\.claude\\settings.json"
}

復元または削除された各ターゲットは、"operation": "rollback" と、created または updated の outcome を伴って results に現れます(files_written にも現れます)。message は、そのパスが復元されたのか削除されたのかを示します。 復元に失敗したもの(たとえば、バックアップが削除されていた場合)は "outcome": "error" になります。 変更を記録しなかったインストールは、"outcome": "skipped" として報告されます。 名前を指定した単一のハーネスに一致するインストールレコードが存在しない場合、コマンドは "status": "error" とともに rollback.no_record エラーを報告します。 --harness all の場合は、一致するレコードがないハーネスは、代わりに results 内の "outcome": "error" の行になります。

例

apothem rollback --harness claude-code --last
apothem rollback --harness claude-code --install-id 01J9Z… --yes
apothem rollback --harness cursor --project . --last --json

終了コード

コード意味
0正常にロールバックした、またはロールバックするものがなかった(インストールが変更を記録していなかった)
1予期されるエラー — インストールレコードがない、セレクターの競合、不明なハーネス、プロジェクトルートの欠落、または確認が拒否されたか利用できない(--yes なしの非対話モードまたは JSON モード)
2部分的な結果 — 少なくとも 1 つのターゲットがロールバックされ、同時に失敗も記録された(復元の失敗、または --harness all の場合はインストールレコードのないハーネス)
64使用法エラー: 不明なオプションまたはコマンド、あるいは欠落した、または無効なオプション値。--json の下では、エラーはコード cli.usage を持つ JSON エンベロープになります。

関連項目

  • apothem install — ハーネスの設定をインストールする
  • apothem update — 現在の共有プロファイルから再インストールする
  • apothem uninstall — ハーネスの設定を削除する
  • apothem status — インストール、検証、ドリフトの状態を報告する

On this page