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

.gitignore を自動更新し、暗号化されていないシークレットをリポジトリ外に保ちます。ctg diff はローカルで変更されたシークレットと追跡されている暗号化版との差分を表示します。ctg decrypt/sync は復号されたシークレットをディスク上に保持します。ctg run(ショートカット ctgx)と ctg edit は操作前にシークレットを復号し、事前にディスク上に存在していた場合はそのまま保持し、存在していなかった場合は操作後に自動的にクリーンアップします。ctg encrypt --clean、ctg run --clean、ctg edit --clean は、復号されたファイルが事前に存在していた場合でもディスクから確実にクリーンアップします。ctg env は復号されたシークレットを環境変数として注入してコマンドを実行し、ディスクには一切書き込みません。ctg cat PATH はメモリ内で復号し、他のツールへの直接の標準入力パイピング用に標準出力へ出力します。ctg clean はローカルリポジトリからすべての復号されたシークレットを削除し、AI エージェントを少しだけ安心して実行できるようにします。ctg init は任意のディレクトリをシークレットストアに変えます。git pull/diff/push のように ctg pull/diff/push を使い始められます。# 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 から最新リリースをダウンロードしてください。
Cottage VS Code 拡張機能を使って、ctg のインストール、Copilot 安全フックの追加、エクスプローラからのファイル暗号化、エディタワークフロー経由での .cott.age ファイルのオープンができます。
Visual Studio Marketplace からインストールするか、vscode-plugin-cottage からローカルでビルドしてインストールしてください。
VSX ファイルをダウンロードし、Cursor または Eclipse IDE にインストールしてください。VS Code 拡張機能と同様に動作します。
cottage.vim プラグインを使って、Vim または Neovim からシークレットを暗号化/復号できます。
以下の統合はすべて、AI エージェントが ctg/ctgx を直接実行したり、シークレットファイルを閲覧・編集したりすることを防ぎます。対象は .cottage/ 内のすべて、任意の *.cott.* ファイル(暗号化された *.cott.age ブロブおよび秘匿化された *.cott.toml プレビュー)、そしてディスク上に対応する *.cott.age がまだ存在する復号済みファイルです。
Claude Code を使用している場合、シークレットを含むリポジトリに .claude/settings.json と .claude/hooks/deny-secrets.py を追加すると、Claude Code セッションがシークレットを安全に扱うようになります。または claude-plugin-cottage プラグインをインストールしてください。
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/hooks.json と .codex/hooks/deny-ctg.py を追加すると、Codex セッションがシークレットを安全に扱うようになります。または codex-plugin-cottage プラグインをインストールしてください。
Codex では、ローカルフックを実行前にレビューする必要があります。ファイルを追加した後、リポジトリで Codex を起動し、/hooks を使ってプロジェクトフックをレビューして信頼してください。
Antigravity(agy)を使用している場合、シークレットを含むリポジトリに .agents/hooks.json と .agents/scripts/deny-ctg.py を追加すると、Antigravity セッションがシークレットを安全に扱うようになります。または agy-plugin-cottage プラグインをインストールしてください。