{"id":44631,"library":"cottage","title":"Cottage","description":"Cottage is a modern, git-based, age-encrypted secrets manager for teams. It uses age encryption with YAML files and git for version control. Current version is 0.6.2, with a slow release cadence.","status":"active","version":"0.6.2","language":"python","source_language":"en","source_url":"https://github.com/benscabbia/cottage","tags":["secrets-management","encryption","age","git"],"install":[{"cmd":"pip install cottage","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"wrong":"from cottage import Cottage","symbol":"Cottage","correct":"from cottage import Cottage"}],"quickstart":{"code":"import os\nfrom cottage import Cottage\n\n# Initialize with path to .cottage directory (git repo with encrypted secrets)\ncottage = Cottage(path='./secrets')\n# List secrets\nprint(cottage.list_secrets())\n# Read a secret (age decryption)\nsecret = cottage.get_secret('mykey')\nprint(secret)\n# Set a secret (encrypts and writes)\ncottage.set_secret('mykey', 'myvalue')\n# Delete a secret\ncottage.delete_secret('mykey')","lang":"python","description":"Basic usage of Cottage to manage encrypted secrets."},"warnings":[{"fix":"Install age (e.g., brew install age) and ensure git is available.","message":"Cottage requires age and git to be installed on the system. Missing either will cause runtime errors.","severity":"gotcha","affected_versions":"<1.0.0"},{"fix":"Run `git init` inside the .cottage directory before using Cottage.","message":"The .cottage directory must be a git repository. If not initialized, Cottage will error.","severity":"gotcha","affected_versions":"<1.0.0"},{"fix":"Use `Cottage.create(path)` to initialize a new secrets repository.","message":"The `init` method for creating a new repository is deprecated. Use `Cottage.create()` instead.","severity":"deprecated","affected_versions":">=0.5.0 <0.6.0"},{"fix":"Migrate by re-encrypting all secrets with the new format using `cottage.migrate_keys()`.","message":"In version 0.6.0, the default key format changed from 'ssh-ed25519' to 'age-encrypted'. Existing repositories may need migration.","severity":"breaking","affected_versions":">=0.6.0"}],"env_vars":null,"search_vec":"'0.6.2':31 'age':10,18,41 'age-encrypt':9 'base':8 'cadenc':36 'control':27 'cottag':1,2 'current':28 'encrypt':11,19,40 'file':22 'git':7,24,42 'git-bas':6 'manag':13,39 'modern':5 'releas':35 'secret':12,38 'secrets-manag':37 'slow':34 'team':15 'use':17 'version':26,29 'yaml':21","created_at":"2026-06-07T12:51:04.374108+00:00","updated_at":"2026-06-07T12:51:04.374108+00:00","problems":{"verify_error":"Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\nModuleNotFoundError: No module named 'cottage'"},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":null,"github":null,"docs":null,"changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops","security"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"import_fail","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-07-10","install_tag":null}}