Vecna CLI
Vault for Encrypted Credentials, Notes, and Aliases.
Name inspired by Vecna the arch-lich from Dungeons & Dragons, who is known for his obsession with secrets and knowledge.
Vecna is a secure, developer-focused command-line vault for storing credentials, secrets, and frequently used commands. Whether you're managing API keys, long commands with embedded secrets, or sensitive notes, Vecna provides a simple, encrypted solution that keeps your data safe and easily accessible.
Table of Contents
Features
-
Encrypted Vault Securely stores credentials, notes, and sensitive data using AES-256-GCM encryption.
-
Master Password Protection Uses a master password to derive a strong encryption key via PBKDF2 with 200,000 iterations.
-
Credential Management Easily add, retrieve, update, list, and delete credentials from the command line.
-
Alias Management Create aliases for frequently used commands, making it easier to manage complex or sensitive operations.
-
Auto-Expiring Sessions Sessions automatically expire after a configurable timeout (default: 15 minutes), and the vault is re-locked.
-
Clipboard Integration Passwords can be copied to the clipboard for quick, secure use.
-
Password Generator Built-in utility to generate secure, customizable passwords on demand.
-
Local-First, No Cloud All data is stored locally; Vecna performs no network operations and sends nothing externally.
-
Linux-Only Support (for now) Uses
/dev/shmfor secure key caching; support for other platforms is planned.
Installation
Vecna can be easily installed via pipx.
python3 -m pip install --user pipx
pipx install vecna
Usage
After installation, you can use vecna from the command line to manage your secure vault and credentials.
Initialize Vault
vecna init
Lock/Unlock Vault
vecna lock
vecna unlock
Credentials Management
Vecna provides a simple interface for managing credentials. You can add, retrieve, list, update, and delete credentials securely.
vecna creds <command> [options]
Use
vecna creds --helpto see available more details on commands and options.
Example
vecna creds add myapi -u myuser -p mypass --notes "API credentials for MyAPI" --tags "api,production"
vecna creds get myapi
vecna creds list
vecna creds update myapi --password newpass
vecna creds delete myapi
Aliases Management
Vecna allows you to create aliases for frequently used commands, making it easier to manage complex or sensitive command-line operations.
vecna alias <command> [options]
Example
vecna alias add myalias --command "curl -X POST https://api.example.com/data" --notes "API data submission" --tags "api,production"
vecna alias get myalias
vecna alias list
vecna alias update myalias --command "curl -X POST https://api.example.com/data --header 'Authorization: Bearer token'"
vecna alias delete myalias
Generate Password
Vecna includes a built-in password generator that can create secure passwords of specified lengths.
vecna generate [options]
Example
vecna generate --length 16 --symbols --numbers --show
Dependencies
Vecna is written in Python and uses the following core libraries:
cryptography— encryption and key derivationpyperclip— cross-platform clipboard handlingTyper— building the CLIrich— colored CLI output
Security
See SECURITY.md for details on how Vecna secures your data, trust assumptions, and key exposure windows.
Changelog
See CHANGELOG.md for a detailed list of changes and updates.
Contributing
See CONTRIBUTING.md for guidelines on how to contribute to Vecna.
License
MIT License
Release files for vecna 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vecna-0.1.2.tar.gz | 17.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vecna-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 42.5 kB
Release files / vecna-0.1.2.tar.gz
| Download URL | vecna-0.1.2.tar.gz |
|---|---|
| Size | 17.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1469db0c8947f522a5e34759b6ef55826f617f6d6a5ce4269220a2954687bb34
|
|
BLAKE2b-256 checksum How to use checksums |
e1f9ea6e53cb2ffd547722fe06c5cd9f67f06ea8a8d3d126c8c12ae1ccb67782
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2025.
Transparency logRelease files / vecna-0.1.2-py3-none-any.whl
| Download URL | vecna-0.1.2-py3-none-any.whl |
|---|---|
| Size | 25.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9a848d4fe837fdaed6dd83a3d8586eeec7f81f487a23c15cc382acf1c177c63c
|
|
BLAKE2b-256 checksum How to use checksums |
1a2716a475f668d24fa45fa3abb735c1e71f59e526284f304d028d61b6daaf17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2025.
Transparency log