{"id":26842689,"url":"https://github.com/polarwolf314/kanuka","last_synced_at":"2026-01-30T11:44:51.703Z","repository":{"id":283626944,"uuid":"952346654","full_name":"PolarWolf314/kanuka","owner":"PolarWolf314","description":"A CLI written in Go that gives you the benefits of managing secrets for your team, without the overhead of third-party services.","archived":false,"fork":false,"pushed_at":"2026-01-16T04:18:34.000Z","size":3798,"stargazers_count":5,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-17T09:31:41.670Z","etag":null,"topics":["astro","cli","golang","secrets"],"latest_commit_sha":null,"homepage":"https://kanuka.guo.nz","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PolarWolf314.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-03-21T06:09:47.000Z","updated_at":"2026-01-16T04:18:25.000Z","dependencies_parsed_at":"2026-01-08T14:07:53.325Z","dependency_job_id":null,"html_url":"https://github.com/PolarWolf314/kanuka","commit_stats":null,"previous_names":["polarwolf314/kanuka"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/PolarWolf314/kanuka","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolarWolf314%2Fkanuka","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolarWolf314%2Fkanuka/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolarWolf314%2Fkanuka/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolarWolf314%2Fkanuka/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PolarWolf314","download_url":"https://codeload.github.com/PolarWolf314/kanuka/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolarWolf314%2Fkanuka/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28911940,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T08:15:08.179Z","status":"ssl_error","status_checked_at":"2026-01-30T08:14:31.507Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["astro","cli","golang","secrets"],"created_at":"2025-03-30T18:30:36.071Z","updated_at":"2026-01-30T11:44:51.687Z","avatar_url":"https://github.com/PolarWolf314.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kānuka\n\nKānuka is a powerful command-line tool written in Go for secure secrets management in your projects. It provides a simple yet robust interface for encrypting and decrypting environment files using industry-standard cryptography.\n\n## Documentation\n\n**For complete documentation, examples, and guides, visit our [official documentation site](https://kanuka.guo.nz).**\n\nThe documentation includes:\n\n- Detailed installation guides\n- Step-by-step tutorials\n- Configuration examples\n- Best practices\n- API reference\n\n## What's with the name?\n\nKānuka (_Kunzea ericoides_) is a tree that is endemic to Aotearoa New Zealand. It is a robust species, critical to restoring wildlife destroyed by fire as it quickly propagates and regenerates the land. Its leaves have a characteristically soft touch, and it's one of few plants that can survive the heat of geothermal features.\n\nIt is fast, resilient, yet pleasant to touch. This is the vision of Kānuka.\n\n## Features\n\n- **Secure Secret Management**: Store and encrypt environment variables using industry-standard encryption (AES-256 and RSA-2048)\n- **Team Collaboration**: Register and manage team member access to shared secrets\n- **Key Rotation**: Rotate encryption keys with automatic re-encryption of all secrets\n- **Access Control**: View who has access, revoke users securely with full key rotation\n- **Audit Trail**: Track who performed what operations and when with the audit log\n- **Selective Encryption**: Encrypt specific files, directories, or use glob patterns\n- **Monorepo Support**: Flexible workflows for managing secrets in monorepos\n- **Health Checks**: Run diagnostics to detect configuration issues and inconsistent state\n- **Backup \u0026 Recovery**: Export and import encrypted secrets for disaster recovery\n- **User-friendly Interface**: Simple commands for managing secrets across your team\n- **Cross-platform Support**: Works on Linux, macOS, and Windows\n- **Shell Autocompletion**: Supports bash, zsh, fish, and PowerShell\n\n## Prerequisites\n\n- Go 1.21 or later (for building from source)\n- Git (for version control)\n\n## Installation\n\n### Using Go\n\nThe recommended way to install Kānuka is using Go:\n\n```bash\ngo install github.com/PolarWolf314/kanuka@latest\n```\n\nMake sure your Go binaries directory is in your PATH:\n\n- **Linux**: Add `export PATH=$HOME/go/bin:$PATH` to your `~/.bashrc`\n- **macOS**: Add `export PATH=$HOME/go/bin:$PATH` to your `~/.zshrc`\n- **Windows**: Add `%USERPROFILE%\\go\\bin` to your user environment variables\n\n### Using GitHub Releases\n\nYou can also download pre-built binaries from the [GitHub Releases page](https://github.com/PolarWolf314/kanuka/releases).\n\n## Quick Start\n\n1. **Initialize Secrets Store**:\n\n   ```bash\n   kanuka secrets init\n   ```\n\n2. **Create Your Encryption Keys**:\n\n   ```bash\n   kanuka secrets create\n   ```\n\n3. **Encrypt Your Secrets**:\n\n   ```bash\n   kanuka secrets encrypt\n   ```\n\n4. **Register a Team Member**:\n\n   ```bash\n   kanuka secrets register --user username\n   ```\n\n## Commands\n\n### Secrets Commands\n\n- `kanuka secrets init`: Initialize a new secrets store\n- `kanuka secrets create`: Create new encryption keys\n- `kanuka secrets encrypt [files...]`: Encrypt .env files (all files if none specified)\n- `kanuka secrets decrypt [files...]`: Decrypt .kanuka files (all files if none specified)\n- `kanuka secrets register --user \u003cemail\u003e`: Register a new user\n- `kanuka secrets revoke --user \u003cemail\u003e`: Revoke a user's access\n- `kanuka secrets sync`: Rotate encryption key and re-encrypt all secrets\n- `kanuka secrets rotate`: Rotate your personal keypair\n- `kanuka secrets access`: List users with access to secrets\n- `kanuka secrets status`: Show encryption status of secret files\n- `kanuka secrets clean`: Remove orphaned keys and inconsistent state\n- `kanuka secrets doctor`: Run health checks on the project\n- `kanuka secrets log`: View audit log of operations\n- `kanuka secrets export`: Create a backup archive of encrypted secrets\n- `kanuka secrets import \u003carchive\u003e`: Restore secrets from a backup archive\n\n### Configuration Commands\n\n- `kanuka config list-devices`: List all devices in project\n- `kanuka config set-default-device \u003cname\u003e`: Set your default device name for new projects\n- `kanuka config set-project-device \u003cname\u003e`: Set your device name for an existing project\n\n### General Commands\n\n- `kanuka completion \u003cshell\u003e`: Generate autocompletion script for your shell\n- `kanuka --help`: Show help information\n- `kanuka \u003ccommand\u003e --help`: Show help for a specific command\n\n## How It Works\n\nKānuka uses a hybrid encryption approach for secure secrets management:\n\n1. A symmetric AES-256 key is used to encrypt your project secrets\n2. Each user's RSA-2048 key pair is used to encrypt/decrypt the symmetric key\n3. Public keys are stored in the project repository\n4. Private keys are stored securely on each user's machine\n\nThis approach allows team members to securely share the same secrets without exposing sensitive information.\n\n## Project Structure\n\nKānuka stores secrets-related files in a `.kanuka` folder at the root of your project:\n\n```\nproject/\n├── .env                  # Your secrets (should be in .gitignore)\n├── .env.kanuka           # Your secrets, encrypted by Kānuka\n└── .kanuka/\n    ├── public_keys/\n    │   ├── user_1.pub    # Public keys for each user\n    │   └── user_2.pub\n    └── secrets/\n        ├── user_1.kanuka # Encrypted symmetric key for each user\n        └── user_2.kanuka\n```\n\n### User Data Storage\n\nUser-specific private keys are stored in your system's data directory:\n\n- Linux/macOS: `~/.local/share/kanuka/keys/`\n- Windows: `%APPDATA%\\kanuka\\keys\\`\n\n## Building from Source\n\nTo build Kānuka from source:\n\n```bash\n# Clone the repository\ngit clone https://github.com/PolarWolf314/kanuka.git\ncd kanuka\n\n# Build the binary\ngo build -o kanuka\n\n# Run the binary\n./kanuka\n```\n\n## Running Tests\n\n```bash\n# Run all tests\ngo test ./test/...\n\n# Run tests with verbose output\ngo test -v ./test/...\n\n# Run specific command categories\ngo test ./test/integration/init/...\ngo test ./test/integration/create/...\ngo test ./test/integration/register/...\ngo test ./test/integration/encrypt/...\ngo test ./test/integration/decrypt/...\ngo test ./test/integration/revoke/...\ngo test ./test/integration/sync/...\ngo test ./test/integration/access/...\n```\n\n## Shell Autocompletion\n\nKānuka supports shell autocompletion for bash, zsh, fish, and PowerShell. Run `kanuka completion [shell]` to generate the appropriate completion script.\n\n## Contributing\n\nContributions are welcome! Feel free to submit issues or pull requests.\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolarwolf314%2Fkanuka","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolarwolf314%2Fkanuka","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolarwolf314%2Fkanuka/lists"}