
cottage v0.7.0
チーム向けのモダンなgitベースのage暗号化シークレット管理ツール。
cottage は、チームが git リポジトリで age で暗号化されたシークレットを管理するための GitOps ツールです。
シークレットの暗号化/復号、受信者の管理、シークレットをリポジトリ外に保ちながら VCS 経由で簡単に共有できるシンプルなワークフローを提供します。cottage はまた、暗号化されたシークレットの秘匿化されたプレビューを生成して可視性を高め、永続的および一時的な復号ワークフローの両方をサポートし、シークレットが平文でコミットされることを防ぎます。

- 機能
- インストール
- エディタ統合
- AI エージェント統合
- クイックスタート
- GitOps
- Git フック
- アクセス制御
- 任意のプロバイダをアップストリームとして使用
- 任意のデバイスと同期
- さらに学ぶ
- トラブルシューティング
- 比較
機能
- 露出安全: Rust の型システムを活用し、バグによってシークレットが誤って露出することが決してないようにします。
- チームフレンドリー: 公開鍵(受信者)をリポジトリで共有し、秘密鍵(アイデンティティ)はローカルに保持します。
- アクセス制御: どのシークレットをどの受信者向けに暗号化するかを制御するシンプルな許可/拒否ルール。
- .gitignore の管理:
.gitignoreを自動更新し、暗号化されていないシークレットをリポジトリ外に保ちます。 - プレビュー: 暗号化されたシークレットのタイムスタンプ付き秘匿化プレビューを生成し、可視性を高めます。
- リッチな差分: git diff をクリーンでレビュー可能に保ちつつ、
ctg diffはローカルで変更されたシークレットと追跡されている暗号化版との差分を表示します。 - チェックサム検証: 暗号化されたシークレットと受信者リストがメタデータと一致することを検証し、改ざんを防ぎます。
- Git フック: コミット前にシークレットを自動チェック/暗号化し、チェックアウト後に復号する git フックを簡単に設定できます。
- 永続的シークレットワークフロー:
ctg decrypt/syncは復号されたシークレットをディスク上に保持します。 - スマートなクリーンアップライフサイクル:
ctg run(ショートカットctgx)とctg editは操作前にシークレットを復号し、事前にディスク上に存在していた場合は保持し、存在しなかった場合は操作後に自動的にクリーンアップします。 - 完了時のクリーンアップ:
ctg encrypt --clean、ctg run --clean、ctg edit --cleanは、事前に存在していた場合でも復号されたファイルがディスクから確実にクリーンアップされるようにします。 - 環境変数注入ワークフロー:
ctg envは復号されたシークレットを環境変数として注入してコマンドを実行し、ディスクに一切書き込みません。 - 安全なシークレットパイピング:
ctg cat PATHはメモリ内で復号し、他のツールへの直接の stdin パイピング用に stdout に出力します。 - クリーンアップ:
ctg cleanはローカルリポジトリからすべての復号されたシークレットを削除し、AI エージェントを少しだけ安心して実行できるようにします。 - jj および非 git ディレクトリをサポート:
ctg initは任意のディレクトリをシークレットストアに変えます。 - 任意のプロバイダと同期: API を持つ任意のプロバイダをアップストリームとして設定し、
git pull/diff/pushのようにctg pull/diff/pushを使い始められます。 - 任意のデバイスと同期: cottage で暗号化され git リポジトリで管理されるシークレットは、Cottage Sync を使ってデバイス間で同期できます。
インストール
# rust: cargo-binstall/cargo
cargo binstall --locked cottage
cargo install --locked cottage
# python: pip/uv/uvx
pip install cottage
uv pip install cottage
uvx --from cottage ctg --version
# node: yarn/pnpm/npx
yarn global add @sayanarijit/cottage
pnpm add -g @sayanarijit/cottage
npx -p @sayanarijit/cottage ctg --version
Docker イメージとしても利用可能です:
# Docker
docker run --rm -v $PWD:/app sayanarijit/cottage --version
# Podman
podman run --rm -v $PWD:/app quay.io/sayanarijit/cottage --version
または GitHub から最新リリースをダウンロードしてください。
エディタ統合
VS Code 拡張機能
Cottage VS Code 拡張機能を使用して、ctg をインストールし、Copilot の安全フックを追加し、エクスプローラからファイルを暗号化し、エディタワークフローを通じて .cott.age ファイルを開くことができます。
Visual Studio Marketplace からインストールするか、vscode-plugin-cottage からローカルでビルドしてインストールしてください。
Cursor および Eclipse 拡張機能
VSX ファイルをダウンロードし、Cursor または Eclipse IDE にインストールしてください。VS Code 拡張機能と同様に動作します。
Vim プラグイン
cottage.vim プラグインを使用して、Vim または Neovim からシークレットを暗号化/復号できます。
AI エージェント統合
以下の統合はすべて、AI エージェントが ctg/ctgx を直接実行したり、シークレットファイルを閲覧・編集したりすることを防ぎます。対象は .cottage/ 内のすべて、任意の *.cott.* ファイル(暗号化された *.cott.age ブロブおよび秘匿化された *.cott.toml プレビュー)、そしてディスク上に *.cott.age の対応ファイルがまだ存在する復号済みファイルです。
Claude Code 統合
Claude Code を使用している場合は、シークレットを含むリポジトリに .claude/settings.json と .claude/hooks/deny-secrets.py を追加して Claude Code セッションがシークレットを安全に扱うようにするか、claude-plugin-cottage プラグインをインストールしてください。
GitHub Copilot 統合
VS Code で GitHub Copilot を使用している場合は、シークレットを含むリポジトリに .github/hooks/ctg-policy.json と .github/hooks/scripts/deny_ctg_command.py を追加して Copilot セッションが復号されたファイルをクリーンアップし、直接の ctg シェルコマンドをブロックし、シークレットファイルへのアクセスをブロックするようにするか、vscode-plugin-cottage 拡張機能をインストールして VS Code から設定してください。
VS Code は .claude/settings.json のフック定義も読み込みます。Claude と Copilot の両方のフックファイルを同じリポジトリに置く場合は、同じクリーンアップフックを誤って二重に実行しないように注意してください。
Codex 統合
Codex を使用している場合は、シークレットを含むリポジトリに .codex/hooks.json と .codex/hooks/deny-ctg.py を追加して Codex セッションがシークレットを安全に扱うようにするか、codex-plugin-cottage プラグインをインストールしてください。
Codex はローカルフックを実行前にレビューする必要があります。ファイルを追加した後、リポジトリで Codex を起動し、/hooks を使用してプロジェクトフックをレビューし信頼してください。
Antigravity (agy) 統合
Antigravity (agy) を使用している場合は、シークレットを含むリポジトリに .agents/hooks.json と .agents/scripts/deny-ctg.py を追加して Antigravity セッションがシークレットを安全に扱うようにするか、agy-plugin-cottage プラグインをインストールしてください。
