
팀을 위한 현대적인 git 기반 age 암호화 비밀 관리자입니다.
cottage는 팀이 git 저장소에서 age로 암호화된 시크릿을 관리할 수 있게 해주는 GitOps 도구입니다.
시크릿을 암호화/복호화하고, 수신자를 관리하며, VCS를 통한 손쉬운 공유를 허용하면서도 시크릿을 저장소 밖에 유지하는 간단한 워크플로를 제공합니다. cottage는 또한 더 나은 가시성을 위해 암호화된 시크릿의 마스킹된 미리보기를 생성하고, 영구적 및 임시적 복호화 워크플로를 모두 지원하며, 시크릿이 평문으로 커밋되지 않도록 보장합니다.

.gitignore를 자동으로 업데이트하여 암호화되지 않은 시크릿이 저장소에 들어가지 않도록 합니다.ctg diff는 로컬에서 수정된 시크릿과 추적 중인 암호화된 대응 파일의 diff를 보여줍니다.ctg decrypt/sync는 복호화된 시크릿을 디스크에 유지합니다.ctg run(단축 명령 ctgx)과 ctg edit는 작업 전에 시크릿을 복호화하고, 사전에 이미 존재했다면 디스크에 유지하며, 그렇지 않았다면 작업 후 자동으로 정리합니다.ctg encrypt --clean, ctg run --clean, ctg edit --clean은 복호화된 파일이 사전에 존재했더라도 디스크에서 정리되도록 보장합니다.ctg env는 복호화된 시크릿을 환경 변수로 주입하여 명령을 실행하며, 디스크에 전혀 기록하지 않습니다.ctg cat PATH는 메모리에서 복호화하여 stdout으로 출력하므로 다른 도구로 직접 stdin 파이핑할 수 있습니다.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 안전 훅을 추가하고, Explorer에서 파일을 암호화하고, 에디터 워크플로를 통해 .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 플러그인을 설치하세요.