コマンドリファレンス
構文
rigo [-f <path>] <command> [flags] [<path>]グローバルフラグ
| フラグ | 説明 |
|---|---|
-f, --file <path> | Vault内の rigo.toml を直接指定します。初回ブートストラップ用で,通常は ~/.config/rigo/rigo.toml のsymlinkからVaultが自動発見されます |
-v, --version | バージョンを表示します |
-h, --help | ヘルプを表示します |
パス引数
<path> を取るコマンドは,論理パス(ホーム相対・スラッシュ区切り。例 .zshrc・.config/git/config)と実パス(~/.zshrc や絶対パス)のどちらでも同じエントリに解決します。~/ はシェルが展開しなくてもRigo側で展開されます。
終了コード
エラー時は標準エラー出力に rigo: <message> を出力して終了コード1で終わります。例外は diff で,差分があるときはメッセージなしの終了コード1です(diff(1) と同じ流儀)。
対話と非対話
conflict解決などの対話は,標準入力が端末(TTY)のときだけ行われます。スクリプトなど非対話の文脈では,対話が必要な操作は「どのフラグで代替できるか」を示すエラーになります(各コマンドの節を参照)。
status
rigo status [<path>]管理対象エントリの状態を表示します。引数を与えると,そのエントリだけ表示します。
host: mymac (mode: exclude)
linked .config/rigo/rigo.toml
linked .zshrc
pending .config/git/config
excluded .vim/ヘッダはこのマシンのホスト名と選択モード(exclude = blacklist / include = allowlist)です。状態の意味は仕組みを参照してください。
apply
rigo apply選択されたすべてのエントリを収束させます。
pending(未展開)とunlinked(実体だが内容同一)→ リンクします。unlinkedはVaultと同一の内容なので,失われるものはありませんconflict→ 一覧表示するだけで触りません(rigo link <path>で解決)broken→ 一覧表示するだけで触りません(rigo cleanで掃除)excluded→ 件数だけ数えます- 個別エントリの失敗(ドライブ未接続など)はそのエントリだけ記録し,残りの収束は続行します
linked .config/git/config
conflict .zshrc (resolve with "rigo link .zshrc")
1 linked, 1 conflict, 0 broken, 0 failed, 0 excluded失敗(failed)が1件以上あると終了コード1になります。conflictやbrokenの残存はエラー扱いにしません。
link
rigo link [--force] <path>1エントリをVaultからリンクします。状態ごとの動作は次のとおりです。
| 状態 | 動作 |
|---|---|
linked | なにもしません(その旨を表示) |
pending / unlinked | リンクします |
broken | リンク先を表示したうえで張り替えます |
conflict | 対話で解決します(下記) |
conflictの解決
ローカルとVaultのファイル情報とdiff統計(テキストなら +12 -3,バイナリなら binary files differ,ディレクトリ単位なら 2 added, 1 removed, 3 changed (local vs vault))を表示します。diffが40行以内ならそのまま表示され,超える場合は選択肢に d) が加わります。
conflict: .zshrc
vault: 1234 B, modified 2026-07-18 10:00:12
local: 987 B, modified 2026-07-01 08:15:44
+12 -3
1) take the vault version (local content is replaced)
2) adopt the local content into the vault, then link
3) abort
choice:- 1
Vault側を採用します。ローカルの内容は置き換えられます - 2
ローカルの内容をVaultへ取り込んで(adopt),それからリンクします - 3
なにもせず中断します
--force は選択肢1(Vault側を採用)の非対話版です。非TTYで --force なしのconflictはエラーになります。
リンク作成は常に安全側です。既存の内容を退避してからsymlinkを張り,失敗したら元に戻します。
unlink
rigo unlink <path>linked なエントリを実体化します。symlinkがVault内容の実コピーに置き換わり,Vault側の実体は保持され,管理は継続します(status では unlinked になります)。ローカルで一時的に実験したいときに使い,戻すときは rigo link します。
linked 以外の状態では,現在の状態と次にとるべき操作を示すエラーになります。
add
rigo add [flags] <path>実パス <path> の実体をVaultへ移動し,元の場所へsymlinkを張り戻します。移動とリンクは失敗時にロールバックされます(内容が宙に浮くことはありません)。
| フラグ | 説明 |
|---|---|
--os | エントリをOS別レイヤー(.os/<goos>/)に置きます |
--dir | ディレクトリを1本のsymlinkとして展開します(rigo.toml の dirs に自動記録) |
--files | ディレクトリ単位ではなく,中のファイルを個別に移動・リンクします |
--tag <name> | エントリを指定タグのメンバーとして rigo.toml に記録します |
--keep-symlink | <path> 自身がsymlinkのとき,参照先を取り込まずsymlinkのままVaultに保存します |
--volume <name> | Windowsの非システムドライブ上のパスに使う名前付きボリュームを指定します |
ディレクトリの扱い
--dir と --files は排他です。どちらも付けずにディレクトリを add すると対話で選択します(非TTYではフラグの指定を求めるエラー)。
--files ではディレクトリ自体は実体のまま残り,中の各ファイルが個別エントリになります。ignoreパターンに一致するファイルはスキップされます。--tag を併用すると,移動した各ファイルがタグのメンバーとして記録されます。
symlinkをaddする場合
<path> がsymlinkのときは,既定では参照先の内容をVaultに取り込みます(コピー。参照先自体は元の場所に残ります)。symlinkそのものを構成として保存したい場合は --keep-symlink を使います。
ホーム外・Windowsのパス
ホーム外の絶対パスは自動的にOS別レイヤーの .abs/ 配下に置かれます。Windowsでは %APPDATA% / %LOCALAPPDATA% 配下が .appdata/ / .local/ セクションに,非システムドライブのパスが名前付きボリューム経由になります。非システムドライブでは --volume の指定,または対話でのボリューム名選択が必要で,未宣言のボリュームは rigo.toml の [volumes] に自動で宣言されます。
volume name for drive D: [data]:
declared volume data = "d" in rigo.toml拒否される場合
安全のため,次の add はエラーになります。
- Vault内部のパス
- すでに管理されているエントリ,またはディレクトリ単位エントリの内側
- ignoreパターンに一致するパス(管理しても見えなくなるため)
- Vault側に同じパスの実体がすでに存在する場合
forget
rigo forget <path>エントリの管理をやめます。ローカルにリンクが張られていれば実体化し(実コピーが手元に残る),Vault側の実体はトラッシュへ移動し,rigo.toml 内の参照(dirs / tags / include / exclude)は自動で取り除かれます。
forgot .vim/ (vault copy moved to .trash/20260718T093000Z/.vim)
removed 2 reference(s) from rigo.toml- ローカルの実体(
unlinked/conflict状態の実ファイル)が上書きされることはありません - このホストで
excludedのエントリにも実行できます(Vaultレベルの操作のため。ローカルの実体化だけ行われません) rigo.toml自身をforgetすることはできません
他のマシンには,同期後にリンク切れのsymlinkが残ります。それらは各マシンで rigo clean が片付けます。
diff
rigo diff [<path>]ローカル実体とVaultの差分を表示する読み取り専用コマンドです。なにも変更しません。
- 引数なし
全エントリのうちconflictのものすべてのdiffを表示します - 引数あり
そのエントリのdiff,またはconflictでない場合は状態の説明を表示します
差分が表示された場合の終了コードは1です(diff(1) と同じ流儀。CIやスクリプトでのドリフト検知に使えます)。
clean
rigo clean壊れたsymlinkを対話的に片付けます。対象は次の2種類です。
- スキャンで
brokenと判定されたエントリ - 他のマシンでの
forgetが同期されてできたリンク切れ(トラッシュの記録から発見。Vault内を指すsymlinkだけが対象で,無関係なリンク切れは触りません)
各リンクについて選択肢が出ます。トラッシュにコピーが残っている場合は復元も選べます。
broken: .vimrc (pointed to /Users/ada/Sync/Vault/.vimrc)
r) restore the trash copy (20260718T093000Z) as a real file
d) delete the symlink
s) skip
choice:- r
トラッシュのコピーを実ファイルとして復元します(トラッシュのコピーは他のマシンのために残ります) - d
symlinkを削除します(実体を削除することはありません) - s
なにもしません
非TTYでは一覧表示のみ行います。
tag
rigo tag show <name>
rigo tag link [--force] <name>
rigo tag unlink <name>rigo.toml の [tags] で定義したグループへの一括操作です。
show
メンバーと状態を一覧します。Vaultに実体のないメンバーはmissingと表示されますlink
全メンバーをリンクします。conflictは対話(または--force)で解決し,非TTYで--forceがない場合はスキップして報告します。excludedのメンバーは触りませんunlinklinkedなメンバーをすべて実体化します。それ以外の状態は(left alone)として報告されます
いずれも末尾に集計行が出ます。
1 linked, 2 already linked, 0 conflict, 1 excluded, 0 missingtrash
rigo trash ls
rigo trash restore <path>
rigo trash empty [--force] [--older-than <age>]forget の安全網であるVault内トラッシュの操作です。
trash ls
世代を新しい順に一覧します。このホストに展開されないエントリ(他OSのレイヤーなど)は (not deployed on this host) 付きで表示されます。
2026-07-18 18:30:00 .vim
2026-07-16 09:12:33 .os/windows/.appdata/foo.ini (not deployed on this host)trash restore <path>
指定パスの最も新しい世代をVaultへ戻します(forget のundo)。forget が rigo.toml から取り除いた参照(dirs / tags / include / exclude)は復元されないため,必要なら書き直します。展開し直すには rigo apply か rigo link を実行します。
trash empty
世代を完全削除します。トラッシュは全マシン共通の安全網なので,既定では確認プロンプトが出ます。
| フラグ | 説明 |
|---|---|
--force | 確認プロンプトを省略します(非TTYでは必須) |
--older-than <age> | 指定より古い世代だけ削除します。30d・72h のように日(d)またはGoのduration表記で指定します |
secrets
rigo secrets apply [<path>]
rigo secrets status [<path>]
rigo secrets remove [<path>]rigo.toml の [secrets] に宣言した参照を,パスワードマネージャーから取得してターゲットパスに書き出します。対象はOSフィルタ(os キー)とマシンごとの選択を通過したエントリで,引数でひとつに絞れます。バックエンドは現在1Password(op:// 参照,要 op CLI)です。
secrets apply
各secretを取得してターゲットへ書き出します(既存ファイルは上書き)。親ディレクトリは 0700 で作成し,ファイルは宣言されたモード(既定 0600)で,一時ファイル経由のアトミック書き込みにより中断しても部分的なsecretが残らないようにします。1Password側の認証プロンプト(Touch IDなど)はそのまま表示されます。
secrets status
各secretのターゲットについて applied / missing を表示します。判定はファイルの存在のみです。ハッシュや鮮度の照合は設計上行いません(正は常にバックエンド側にあり,更新後は apply を再実行します)。
secrets remove
書き出したファイルを削除します(apply の逆操作。マシンの手放し時など)。存在しないファイルはエラーになりません。SSDでは完全消去(secure erase)は保証されない旨の注意が表示されます。