Skip to main content

The cottage logo

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

cottage is a GitOps tool for teams to manage age-encrypted secrets in git repositories.

It provides a simple workflow to encrypt/decrypt secrets, manage recipients, and keep secrets out of the repo while still allowing for easy sharing via VCS. cottage also generates redacted previews of encrypted secrets for better visibility and supports both persistent and temporary decryption workflows, while ensuring secrets are never committed in plaintext.

Intro Demo

  1. Features
  2. Installation
  3. Editor Integrations
    1. VS Code Extension
  4. AI Agent Integrations
    1. Claude Code Integration
    2. GitHub Copilot Integration
    3. Codex Integration
    4. Antigravity (agy) Integration
    5. Cursor Integration
  5. Quick Start
  6. GitOps
  7. Git Hooks
  8. Access Control
    1. Rules
    2. Verification
  9. Any Provider as Upstream
    1. Example plugins
  10. Sync with any device
  11. Learn More
  12. Troubleshooting
  13. Comparison
    1. age vs Other Encryption
    2. cottage vs SOPS
    3. cottage vs dotenvx
    4. cottage vs agebox

Features

  • Exposure-safe: Uses Rust's type system to make sure bugs can never accidentally expose secrets.
  • Team-friendly: Share public keys (recipients) in the repo, keep private keys (identities) local.
  • Access Control: Simple allow/deny rules to control which secrets are encrypted for which recipients.
  • Manages .gitignore: Automatically updates .gitignore to keep unencrypted secrets out of the repo.
  • Previews: Generates timestamped redacted previews of encrypted secrets for better visibility.
  • Rich diffs: Keeps git diff clean & reviewable, while ctg diff shows diff of locally modified secrets with tracked encrypted counterparts.
  • Checksum verification: Prevents tampering by verifying that encrypted secrets and recipient lists match the metadata.
  • Git hooks: Easily set up git hooks to automatically check/encrypt secrets before commit and decrypt them after checkout.
  • Persistent secrets workflow: ctg decrypt/sync keeps decrypted secrets on disk.
  • Smart cleanup lifecycle: ctg run (shortcut ctgx) and ctg edit decrypt secrets before the operation, keeping them on disk if already present beforehand or automatically cleaning them up afterwards if they were not.
  • Clean on completion: ctg encrypt --clean, ctg run --clean, and ctg edit --clean ensure that decrypted files are cleaned up from disk even if they were present before.
  • Environment injection workflow: ctg env injects decrypted secrets as environment variables to run a command, without writing them to disk at all.
  • Clean up: ctg clean deletes all decrypted secrets from local repo to let you run your AI agents with a tiny bit less worry.
  • Supports jj and non-git directories: ctg init turns any directory into a secret store.
  • Sync with any provider: Lets you configure any provider with an API as the upstream, and start using ctg pull/diff/push like git pull/diff/push.
  • Sync with any device: Secrets encrypted with cottage and managed in a git repo can be synced across devices with Cottage Sync.

Installation

# 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

Also available as docker images:

# Docker
docker run --rm -v $PWD:/app sayanarijit/cottage --version

# Podman
podman run --rm -v $PWD:/app quay.io/sayanarijit/cottage --version

Or download the latest release from GitHub.

Editor Integrations

VS Code Extension

Use the Cottage VS Code extension to install ctg, add Copilot safety hooks, encrypt files from the Explorer, and open .cott.age files through the editor workflow.

Cottage VS Code Extension Demo

Install it from the Visual Studio Marketplace, or build and install it locally from vscode-plugin-cottage.

AI Agent Integrations

All of the integrations below keep AI agents from running ctg/ctgx directly and from viewing or editing secret files: anything inside .cottage/, any *.cott.* file (encrypted *.cott.age blobs and redacted *.cott.toml previews), and any decrypted file that still has a *.cott.age counterpart on disk.

Claude Code Integration

If you are using Claude Code, add .claude/settings.json and .claude/hooks/deny-secrets.py to your repos with secrets so Claude Code sessions handle secrets safely, or install the claude-plugin-cottage plugin.

GitHub Copilot Integration

If you are using GitHub Copilot in VS Code, add .github/hooks/ctg-policy.json and .github/hooks/scripts/deny_ctg_command.py to your repos with secrets so Copilot sessions clean decrypted files, block direct ctg shell commands, and block access to secret files, or install the vscode-plugin-cottage extension to set that up from VS Code.

VS Code loads .claude/settings.json hook definitions too. If you keep both Claude and Copilot hook files in the same repo, make sure you do not accidentally run the same cleanup hook twice.

Codex Integration

If you are using Codex, add .codex/hooks.json and .codex/hooks/deny-ctg.py to your repos with secrets so Codex sessions handle secrets safely, or install the codex-plugin-cottage plugin.

Codex requires local hooks to be reviewed before they run. After adding the files, start Codex in the repo and use /hooks to review and trust the project hooks.

Antigravity (agy) Integration

If you are using Antigravity (agy), add .agents/hooks.json and .agents/scripts/deny-ctg.py to your repos with secrets so Antigravity sessions handle secrets safely, or install the agy-plugin-cottage plugin.

Cursor Integration

If you are using Cursor, add .cursor/hooks.json, .cursor/hooks/deny-ctg.py, .cursor/hooks/deny-read-secrets.py, .cursor/rules/deny-ctg.mdc, and .cursorignore to your repos with secrets so Cursor sessions handle secrets safely.

Cursor requires hooks to be enabled first. Open Cursor Settings > Hooks and enable hooks, then restart the agent session so the project hooks take effect. .cursorignore additionally keeps secret files out of Cursor's indexing and the Agent's context.

Quick Start

Init project:

mkdir project && cd project

git init  # Optional, cottage works better with git but it's not required
ctg init  # Sets up the .cottage directory and necessary files

tree -a
# .
# ├ .cottage/           <- Auto-generated by `ctg init`
# │ ├ identity        <- Your private key, keep it safe. Move it to `~/.config/cottage/identity` to use it globally, or replace it with a soft link to one of your existing private keys.
# │ └ recipients/     <- This is where your team keeps the public keys of all the recipients.
# │     └ sayanarijit <- Your public key. Commit it. To use an existing public key, just copy (don't softlink) that key here.
# ├ .git/...
# ├ .gitattributes      <- Added `*.cott.age binary export-ignore filter=cottage-encrypted -diff` to avoid polluting git diff
# └ .gitignore          <- Added `/.cottage/identity` for obvious reasons

# You can run `ctg clean --all` anytime to clean up everything cottage ever did.

Create or edit a secret:

# `ctg edit` decrypts the file before opening in $EDITOR and re-encrypts upon save.
# If the decrypted file was not present on disk before running `ctg edit`, it is cleaned up afterwards.
# If it was already present, it is kept on disk.
ctg edit secret.yml

# Use `--clean` with `ctg edit` or `ctg encrypt` to ensure decrypted files are deleted even if present before
ctg edit secret.yml --clean    # Opens in $EDITOR, encrypts on save, and cleans up
ctg encrypt secret.yml --clean # Encrypts secret.yml and cleans up
# encrypt secret.yml
#    into secret.yml.cott.age
#    edit secret.yml.cott.toml
#    edit .gitignore
# delete secret.yml

Run a command with decrypted secrets:

cat secret.yml
# cat: secret.yml: No such file or directory

# `ctg run` (or shortcut `ctgx`) decrypts secrets before running the command.
# If the decrypted files were not present on disk beforehand, they are automatically cleaned up after the command finishes.
# If they were already present beforehand, they are kept on disk.
ctg run kubectl apply -f secret.yml          # decrypts secret.yml.cott.age to secret.yml and runs the command
ctg run kubectl apply -f secret.yml.cott.age # also replaces the path argument with the decrypted file path
ctg run kubectl apply -f .                   # decrypts all .cott.age files in . and runs the command
ctg run ./deploy.sh                          # decrypts all .cott.age files in repo and runs the command

cat secret.yml
# cat: secret.yml: No such file or directory

# Use `--clean` to ensure decrypted files are cleaned up even if they were present before
ctg run --clean ./deploy.sh
ctgx --clean ./deploy.sh

Or use the shortcut:

ctgx ./deploy.sh  # same as ctg run ./deploy.sh

Run a command with secrets injected as environment variables, without writing to disk at all:

ctg env -- ./deploy.sh # Export secrets from .env.cott.age (default) without writing them to disk, then run deploy.sh
ctg env -F .env.prod.cott.age -- ./deploy.sh # exports from .env.prod.cott.age instead of .env.cott.age
ctg env -F secrets.json.cott.age -- printenv COTTAGE_SECRET # Also supports non-dotenv files.

GitOps

To share your secrets with team members, just push to the git repo.

git add .
git commit -m "Add secret.yml"
git push origin main

Ask your teammates to add their public keys to .cottage/recipients and push the changes. Then you can pull and re-encrypt the secrets for them.

git pull origin main

ctg decrypt --skip-verify-recipients  # Decrypt missing secrets for re-encryption
ctg encrypt                           # Re-encrypt all secrets
# encrypt secret.yml
#    into secret.yml.cott.age
#    edit secret.yml.cott.toml

ctg clean  # optional
# delete secret.yml

# review changes, commit and push
git add .
git commit -m "Add new recipient to secrets"
git push origin main

Now your teammates can pull the latest changes and decrypt secrets for themselves.

Git Hooks

You can use prek or pre-commit to set up git hooks to automatically check/encrypt secrets before commit and decrypt them after checkout.

See the example prek configuration here.

After adding the prek.toml file, run:

prek install
prek install --hook-type post-checkout
prek install --hook-type post-merge
prek install --hook-type post-rewrite

Access Control

Rules

In the metadata file, you can annotate which recipients the secret should be encrypted for. This allows you to have different secrets for different environments (e.g. staging vs production) and only encrypt them for the relevant recipients.

# secret.yml.cott.toml
[secret]
allow = ["sayanarijit"]  # Only encrypt for sayanarijit
# secret.yml.cott.toml
[secret]
deny = ["sayanarijit"]  # Encrypt for everyone except sayanarijit
# secret.yml.cott.toml
[secret]
allow = ["env/staging/*"]  # Supports glob patterns, only encrypt for recipients in env/staging
deny = ["env/staging/badservice"]  # Encrypt for everyone in env/staging except badservice

Deny rules take precedence over allow rules.

See metadata specification for more details.

Verification

You can run ctg verify in CI to verify that the encrypted secrets and recipient lists match the metadata rules, to prevent tampering.

# .github/workflows/cottage-verify.yml
name: Cottage Verify
on: [push, pull_request]
permissions:
  contents: read
jobs:
  verify-secrets:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Verify secrets
        run: docker run --rm -v "${{ github.workspace }}:/app" ghcr.io/sayanarijit/cottage verify

Any Provider as Upstream

With cottage, you can sync secrets with any provider that has an API, not just git.

For that, create a file named cottage.toml in the project root and configure the upstream settings.

See the example cottage.toml here and the secret specific upstream configuration here.

See an example plugin implementation here.

The workflow is similar to git, but instead of git pull and git push, you run ctg pull and ctg push to sync secrets with the configured upstream.

Example:

# Pull latest changes into local encrypted secrets
# Similar to `git pull origin`
ctg pull myvault

# Compare diff with local decrypted secrets
ctg diff

# Sync local decrypted secrets with local encrypted secrets
ctg sync

# Push changes from local encrypted secrets to upstream
# Similar to `git push origin main`
ctg push myvault

See upstream configuration specification for more details.

Example plugins

Cottage supports various plugin providers to sync your secrets. Ready-to-use plugin scripts are available in the examples/plugins directory:

Sync with any device

Use Cottage Sync to sync your secrets across your devices and browse without needing the CLI.

Learn More

See examples directory for more usage examples.

Troubleshooting

# See debug logs with -v, -vv or -vvv
ctg run -vvv -- ./deploy.sh

Comparison

age vs Other Encryption

age uses a modern, simple algorithm optimized for secure file encryption, with a focus on usability and minimal attack surface. It also supports SSH RSA and Ed25519 keys, though it's recommended to use different keys for separate purposes and scopes.

cottage vs SOPS

While SOPS and cottage have many overlapping features, cottage has the following advantages:

  • Auto manage .gitignore to ensure unencrypted secrets are never committed to git.
  • Encrypted secrets being pure age encrypted .age files, allows for better interoperability with a wider ecosystem of tools.
  • Cleaner diffs - unlike SOPS, which generates diffs for every value of every secret, even if the actual change is just adding/removing a recipient, cottage only generates one diff per file, explicitly pointing out the change in recipients checksum.

cottage vs dotenvx

cottage borrows the ctg env API from dotenvx.

  • Supports any file type, not just dotenv files.
  • Manages multiple secrets in a repo.
  • Access control rules to encrypt secrets for specific recipients.
  • Cleaner diffs - see cottage vs SOPS.

cottage vs agebox

agebox is very similar to cottage in core philosophy but lacks many features.

Release files for cottage 0.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cottage 0.7.1
File Size Uploaded
cottage-0.7.1.tar.gz 76.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for cottage 0.7.1
File
cottage-0.7.1-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
cottage-0.7.1-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
cottage-0.7.1-py3-none-win32.whl Python 3 none Windows x86-32 Details
cottage-0.7.1-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
cottage-0.7.1-py3-none-musllinux_1_2_i686.whl Python 3 none Linux musl 1.2+ x86-32 Details
cottage-0.7.1-py3-none-musllinux_1_2_armv7l.whl Python 3 none Linux musl 1.2+ ARMv7l Details
cottage-0.7.1-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
cottage-0.7.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
cottage-0.7.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl Python 3 none Linux glibc 2.17+ IBM System/390x Details
cottage-0.7.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl Python 3 none Linux glibc 2.17+ PowerPC 64-le Details
cottage-0.7.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl Python 3 none Linux glibc 2.17+ x86-32 Details
cottage-0.7.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl Python 3 none Linux glibc 2.17+ ARMv7l Details
cottage-0.7.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
cottage-0.7.1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
cottage-0.7.1-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 61.3 MB

Release files / cottage-0.7.1.tar.gz

Download URL cottage-0.7.1.tar.gz
Size 76.2 kB
Tags Source
SHA-256 checksum
How to use checksums
80c887ff72a3ef8b4d0c1e8629ef334d420a7a42de4b6bd6cea1e6c2e705f36d
BLAKE2b-256 checksum
How to use checksums
813e110c047bf367bce73cf64b476dde68fad196b28d8a52d0f58463dd224918
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-win_arm64.whl

Download URL cottage-0.7.1-py3-none-win_arm64.whl
Size 3.7 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
e80bd204ff65133a7499b9e1844a75581fe08333d390527a037b5d753f7989c9
BLAKE2b-256 checksum
How to use checksums
99d87e8cf57df7bb7523a1b78c5a510158d184edd36331248bf98983f467c38a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-win_amd64.whl

Download URL cottage-0.7.1-py3-none-win_amd64.whl
Size 3.9 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
ac759a98db257ef8cc6be4c6879c09658fd31e2e4cdf3974b90a950adb0545c7
BLAKE2b-256 checksum
How to use checksums
8bf503a54f19ab0cf2a33b311c69a75c5c8d4f19fb81d54347cb29c74cc59034
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-win32.whl

Download URL cottage-0.7.1-py3-none-win32.whl
Size 3.8 MB
Tags Python 3 Windows x86-32
SHA-256 checksum
How to use checksums
da9b3442f5e9b3e50044d5c723eca4dc0ffc7681bab95c49f1b7411b5fb3d42c
BLAKE2b-256 checksum
How to use checksums
633c29675ab7b603e250bef2983206b3d3ec5c6770c7a3d742b551173cfee6a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-musllinux_1_2_x86_64.whl

Download URL cottage-0.7.1-py3-none-musllinux_1_2_x86_64.whl
Size 4.3 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
cd73e21e201873b6ca47939f5cec6edc43cdcedfa38597d9232796da0ce7db08
BLAKE2b-256 checksum
How to use checksums
80bedf3353924e144b00fb29b61892ed703c58876c74c0a598055e6e80e68c29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-musllinux_1_2_i686.whl

Download URL cottage-0.7.1-py3-none-musllinux_1_2_i686.whl
Size 4.3 MB
Tags Linux musl 1.2+ x86-32 Python 3
SHA-256 checksum
How to use checksums
ea64e57d77f1acdcb18c542fc8c56bf8e4db930a80ebb07da01e0c679c730d06
BLAKE2b-256 checksum
How to use checksums
3068d5f251668a495232f899f0804bcf790ea5698582157aa748c90d3e9a7307
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-musllinux_1_2_armv7l.whl

Download URL cottage-0.7.1-py3-none-musllinux_1_2_armv7l.whl
Size 4.1 MB
Tags Linux musl 1.2+ ARMv7l Python 3
SHA-256 checksum
How to use checksums
15fab881f073debf33bf7acbac7f332cddc8c38b72bb52e64da4c6e676eecc0c
BLAKE2b-256 checksum
How to use checksums
35cf6f93f84288feba2dd5e7bf7220c6e2474f011803722d9ed79050709a820b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-musllinux_1_2_aarch64.whl

Download URL cottage-0.7.1-py3-none-musllinux_1_2_aarch64.whl
Size 4.0 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
ed2fa48e2704c3d25fcde58bcd9d88ed271f21e9d9d5358eca978663b6975c57
BLAKE2b-256 checksum
How to use checksums
73ad7902d66a49ec60f89eac3712d458bc8456df947d97a774b848d155a33501
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cottage-0.7.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.2 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
8ca766f96211346473b1cbdefd4757623a5fc246398b2c9fdfbcafb1140a8a3b
BLAKE2b-256 checksum
How to use checksums
7c4ac42c8a90fcd12b0e0e53343de4898ea1a8a70e75503e94866eab8a05fa20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL cottage-0.7.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 4.6 MB
Tags Linux glibc 2.17+ IBM System/390x Python 3
SHA-256 checksum
How to use checksums
270e1163c4ce327852c860827cbae6945123cff461de7213dbb5abb56d929166
BLAKE2b-256 checksum
How to use checksums
e0c28080588c31a707e11c3bc51a2c9dab4ca09c965991249a39021a8772b066
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL cottage-0.7.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 4.5 MB
Tags Linux glibc 2.17+ PowerPC 64-le Python 3
SHA-256 checksum
How to use checksums
21284d7883ea26d4b5d9a69f20514a8d086441cb56774621b61a29eefaafd275
BLAKE2b-256 checksum
How to use checksums
555799275990861120f97ebfe9d88eefc3aab7b8430f0d7807808434041d94fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL cottage-0.7.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Size 4.4 MB
Tags Linux glibc 2.17+ x86-32 Python 3
SHA-256 checksum
How to use checksums
93532289a29fd0f05c0f1e181a51ae34e4c04f8044cf84bc04a857d46f2e57dd
BLAKE2b-256 checksum
How to use checksums
1017baa9a548fa04571edf895b83f4a292235b343c53474442fa0b92fd336497
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL cottage-0.7.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 4.0 MB
Tags Linux glibc 2.17+ ARMv7l Python 3
SHA-256 checksum
How to use checksums
2e2bde3aadaa1aa53ca492dda11434554eec43cc1a9221900edfbcbc9b3b945b
BLAKE2b-256 checksum
How to use checksums
bac930354c0b14eb489c22ab587667e92ba1efbf59d9fb7653bee1d71a0a9fbf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL cottage-0.7.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 3.9 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
e7e3e7927fd86914b64d49d55dbad327ff710ef5f9d724fc3a49166741d6d541
BLAKE2b-256 checksum
How to use checksums
13899069c6337fe59ace20a9454a0266692014119680c2416c28d14d4b8451cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-macosx_11_0_arm64.whl

Download URL cottage-0.7.1-py3-none-macosx_11_0_arm64.whl
Size 3.6 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e34cd02ebd469710dbaaa8884894c0f082542f4c8d0ff52918fb6b7b0c15c1d1
BLAKE2b-256 checksum
How to use checksums
4ab490c15126668137fae8602e4cc927aeaeb36f9342d67003ae98c4d0811810
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cottage-0.7.1-py3-none-macosx_10_12_x86_64.whl

Download URL cottage-0.7.1-py3-none-macosx_10_12_x86_64.whl
Size 4.0 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7aafad67e6cb922ceeb62941f442519ceec8725481461909fe1ee3a9dbaa8c01
BLAKE2b-256 checksum
How to use checksums
31c613463f9ef5b361eb6c41825a8a3b73ccef503932c9c659a31c86e49c6e14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.7.3

16 release files

0.7.2

16 release files

This release

0.7.1 This release

16 release files

0.7.0

16 release files

0.6.8

16 release files

0.6.7

16 release files

0.6.6

15 release files

0.6.5

16 release files

0.6.4

16 release files

0.6.3

16 release files

0.5.6

16 release files

0.5.5

16 release files

0.5.3

16 release files

0.5.2

16 release files

0.5.1

16 release files

0.5.0

16 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page