업데이트로 돌아가기
New releaseAug 27, 2026

cottage v0.7.0

팀을 위한 현대적인 git 기반 age 암호화 비밀 관리자입니다.

공유

The cottage logo

Cottage Verify Crates.io Version PyPI Version NPM Version Docker Image Version

cottage는 팀이 git 저장소에서 age로 암호화된 시크릿을 관리할 수 있게 해주는 GitOps 도구입니다.

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

Intro Demo

  1. 기능
  2. 설치
  3. 에디터 통합
    1. VS Code 확장
    2. Cursor 및 Eclipse 확장
    3. Vim 플러그인
  4. AI 에이전트 통합
    1. Claude Code 통합
    2. GitHub Copilot 통합
    3. Codex 통합
    4. Antigravity (agy) 통합
    5. Cursor 통합
  5. 빠른 시작
  6. GitOps
  7. Git 훅
  8. 접근 제어
    1. 규칙
    2. 검증
  9. 모든 제공자를 업스트림으로 사용
    1. 예제 플러그인
  10. 모든 기기와 동기화
  11. 더 알아보기
  12. 문제 해결
  13. 비교
    1. age vs 다른 암호화
    2. cottage vs SOPS
    3. cottage vs dotenvx
    4. cottage vs agebox

기능

  • 노출 안전성: Rust의 타입 시스템을 사용하여 버그로 인해 실수로 시크릿이 노출되는 일이 없도록 보장합니다.
  • 팀 친화적: 공개 키(수신자)는 저장소에 공유하고, 개인 키(아이덴티티)는 로컬에 보관합니다.
  • 접근 제어: 어떤 시크릿을 어떤 수신자를 위해 암호화할지 제어하는 간단한 허용/거부 규칙을 제공합니다.
  • .gitignore 관리: .gitignore를 자동으로 업데이트하여 암호화되지 않은 시크릿이 저장소에 들어가지 않도록 합니다.
  • 미리보기: 더 나은 가시성을 위해 타임스탬프가 포함된 마스킹된 미리보기를 생성합니다.
  • 풍부한 diff: git diff를 깔끔하고 검토 가능하게 유지하며, ctg diff는 로컬에서 수정된 시크릿과 추적 중인 암호화된 대응 파일의 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는 메모리에서 복호화하여 stdout으로 출력하므로 다른 도구로 직접 stdin 파이핑할 수 있습니다.
  • 정리: 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 안전 훅을 추가하며, Explorer에서 파일을 암호화하고, 에디터 워크플로를 통해 .cott.age 파일을 열 수 있습니다.

Cottage VS Code Extension Demo

Visual Studio Marketplace에서 설치하거나, vscode-plugin-cottage에서 로컬로 빌드하여 설치하세요.

Cursor 및 Eclipse 확장

VSX 파일을 다운로드하여 Cursor 또는 Eclipse IDE에 설치하세요. VS Code 확장과 유사하게 작동합니다.

Vim 플러그인

cottage.vim 플러그인을 사용하여 Vim 또는 Neovim에서 시크릿을 암호화/복호화하세요.

Cottage Neovim Demo

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 플러그인을 설치하세요.

Cursor 통합

카테고리