Rune is a cli credential manager for developers. Store, retrieve, update, and manage secrets securely and easily.
Project description
rune
rune is a secure, local-first secrets management tool designed for developers. It allows you to store, retrieve, and manage secrets easily while keeping them encrypted client-side.
Features
- zero-trust. Decrypted secrets never leave memory
- Per-secret encryption keys
- Namespaced secrets (
db/prod/my-db) for easy access - Interactive secret entry and retrieval
- Cross-platform (Linux, macOS, Windows)
Installation
pip install rune
Getting Started
Login / Logout
Before performing any secret operations, you must be logged in. At this stage, login simply sets the active username:
# Log in as a user
rune login <username>
# Log out
rune logout
Note: Currently login only selects the active username which determines access to secret namespaces.
Adding Secrets
rune add db/prod/my-db -f host=localhost,port,user,password -k super-secret-key
- Name of the secret. Supports namespaces using
/. -f / --fields- Comma-separated list of fields. Fields without a value will be prompted securely.
- If ommitted, store a single-field secret.
-k / --key→ Optional encryption key (prompted secretly if not specified)
Retrieving Secrets
rune get db/prod/my-db
# result
[1] localhost
[2] port
[3] user
[4] password
Choose a field to copy (q to cancel):
- Copies a chosen field to the clipboard by default.
- Use
--showto display secret values in the terminal. --interactivetriggers an interactive list selection (shortcut forrune ls -i).
Listing Secrets
rune ls
- Lists all secrets, organized by namespace.
- Single-child namespaces are collapsed for cleaner display.
- Use
<namespace>argument to filter results. - Use
--interactiveto fetch a secret directly from the list. - Use
--showto reveal values when in interactive mode.
Updating Secrets
rune update db/prod/my-db -f user=new-user,password
- Updates existing fields or adds new ones.
- Fields without a value will be prompted securely.
Moving Secrets
rune move db/prod/my-db db/prod/cassandra
- Moves a secret from one name to another.
Deleting Secrets
rune delete db/prod/cassandra
- Removes a secret from the vault.
- Use
--hardto remove the secret from persistence. - When hard deleting secrets, encryption key is required.
Restoring Secrets
rune restore db/prod/cassandra
- Restores a soft-deleted secret to the vault.
Configuration
Rune CLI supports configuring storage and encryption options:
rune config show # Display current config
rune config storage # Set storage options (local file path)
rune config encryption # Set encryption mode (currently `aesgcm`)
It also allows you to save and load profiles:
rune config profile save <profile-name> # Save current settings to profile
rune config profile load <profile-name> # Load a saved profile
rune config profile list # Show saved profiles
Storage & Encryption
- Secrets are stored locally in JSON format (default).
- Fully client-side encrypted. (Decrypted text never leaves memory)
- Per-secret encryption keys are supported.
Roadmap
See ROADMAP.md for the full development roadmap.
License
Apache 2.0
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rune-0.6.0.tar.gz.
File metadata
- Download URL: rune-0.6.0.tar.gz
- Upload date:
- Size: 30.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
703bc13a5c6ce0ea3eeb237694908b4561f09d27f245fe1bcdad7bb9f24ca3c5
|
|
| MD5 |
88a512bdb84549cc5702869c76eddc27
|
|
| BLAKE2b-256 |
8a87b38edd48fb694d222b6886bb24dcc8677d808ee784ae4fa2b6882fb3f0c3
|
File details
Details for the file rune-0.6.0-py3-none-any.whl.
File metadata
- Download URL: rune-0.6.0-py3-none-any.whl
- Upload date:
- Size: 40.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e4129ebedc837e05c9cc4f2515d43500f01c7e6c343476bf4301fe1f0afa1b6
|
|
| MD5 |
f1120d8bb7c8adaea09c138d18eeb91b
|
|
| BLAKE2b-256 |
873201d19556840d1360f586151e53f3f48166569f4ffd6a2405ad9db0a193fb
|