Severus is a local-first CLI tool for developers to securely manage API keys, passwords, environment variables, and sensitive notes without cloud dependencies or master password vulnerabilities.
Project description
Severus CLI
Local-First Encrypted Vault for Developers
Severus is a command-line secret manager built specifically for developers and crypto teams. Store API keys, credentials, environment variables, and sensitive notes in an encrypted vault with TOTP authentication—no master passwords required.
Installation
pip install severus-vault
Quick Start
1. Initialize Your Vault
severus init
This will:
- Create an encrypted vault at
~/.severus/vault.db - Generate a QR code for your authenticator app
- Set up TOTP authentication
2. Add Your First Secret
severus add secret
Follow the interactive prompts to store credentials with optional metadata like URLs, usernames, and project context.
3. Save Environment Files
# Save all .env files in current project
severus env save
# Restore them later
severus env restore
4. Search and Retrieve
# List all items
severus list
# Search for specific items
severus search stripe
# Show detailed information
severus show api-key
Core Commands
Vault Management
severus init- Initialize new vault with TOTP authenticationseverus help [command]- Show help for specific commands
Adding Items
severus add secret- Store password/credential interactivelyseverus add note- Create encrypted note (opens editor)severus add file <filename>- Import file as encrypted note
Retrieving Items
severus list- Show all vault itemsseverus search <term>- Find items by nameseverus show <name>- Display item details
Environment Management
severus env save [filename]- Save .env files to vaultseverus env restore [name]- Restore environment files
Editing and Cleanup
severus edit note <name>- Edit existing noteseverus delete <name>- Delete item (with confirmation)
Secure Sharing
severus share <name>- Generate temporary share codeseverus receive <code>- Receive shared item
Example Workflows
Managing Passwords
# Store Stripe credentials
severus add secret
# Name: stripe-api
# URL: https://dashboard.stripe.com
# Username: admin@company.com
# Password: MikeTell_...
# Project: ecommerce-backend
# Retrieve later
severus show stripe-api
Environment File Workflow
# In your project directory
cd /projects/myapp
# Save all environment files
severus env save
# Automatically saves as: myapp-env, myapp-env-local, etc.
# On another machine or fresh clone
cd /projects/myapp
severus env restore
# Restores all .env files for the project
Team Collaboration
# Share a secret temporarily
severus share database-password
# Output: Share code: 7X9K-M4P2-B8Q1 (expires in 10 minutes)
# Teammate receives it
severus receive 7X9K-M4P2-B8Q1
# Secret added to their vault
Note Management
# Store deployment instructions
severus add note
# Name: production-deploy
# Opens editor for content
# Store API keys and tokens securely
severus add note
# Name: aws-api-keys
# Content: Store API keys, webhook URLs, tokens, etc.
# Import existing documentation
severus add file backup-procedures.txt
# Import configuration files with sensitive data
severus add file config/api-keys.json
# Edit existing notes
severus edit note production-deploy
# View stored API keys
severus show aws-api-keys
Security Model
Authentication
- TOTP-based: Uses your existing authenticator app (Google Authenticator, Authy, etc.)
- No master passwords: Eliminates password reuse and memory vulnerabilities
Encryption
- Local-first: All data encrypted locally before storage
- Individual item encryption: Each secret encrypted separately
- PBKDF2 key derivation: 100,000 iterations with SHA-256
- Fernet encryption: Industry-standard symmetric encryption (AES 128)
Storage
- SQLite metadata: Fast searches with minimal data exposure
- Encrypted blobs: Sensitive data stored in separate encrypted files
- No cloud dependencies: Works entirely offline except for sharing
File Locations
- Vault database:
~/.severus/vault.db - Configuration:
~/.severus/config.json - Encrypted data:
~/.severus/blobs/
Sharing Server
The sharing functionality requires a relay server. You can:
- Use the public server (when available)
- Run your own server (see relay-server documentation)
Shared data is:
- Encrypted client-side before upload
- Stored temporarily (10 minutes default)
- Accessible only with the share code
- Automatically deleted after expiration
Development Setup
# Clone repository
git clone https://github.com/severus-labs/severus.git
cd severus
# Install Poetry (if not already installed)
curl -sSL https://install.python-poetry.org | python3 -
# Install dependencies and create virtual environment
poetry install
# Activate the virtual environment
poetry shell
# Run severus in development mode
poetry run severus --help
# Run tests (when you add them)
poetry run pytest
# Add new dependencies
poetry add package-name
# Add development dependencies
poetry add --group dev package-name
Troubleshooting
Vault Not Initialized
Error: Vault not initialized. Run 'severus init' first.
Run severus init to set up your vault and TOTP authentication.
Invalid TOTP Code
Error: Invalid TOTP code.
Ensure your device time is synchronized and try a fresh code from your authenticator app.
Item Not Found
Error: 'item-name' not found.
Use severus list to see all items or severus search <term> to find similar names.
Environment Restore Failed
Error: No .env file found for current project
Use severus env save first, or specify the environment name: severus env restore myapp-env
Security Considerations
Best Practices
- Keep your authenticator app backed up
- Regularly update Severus to get security fixes
- Use project contexts to organize secrets
- Don't share your
~/.severus/directory
Limitations
- TOTP device loss requires vault recreation
- Sharing requires internet connectivity
- No automatic sync between devices (by design)
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
License
MIT License - see LICENSE file for details.
Support
- Documentation: GitHub
- Issues: GitHub Issues
- Security: ekomobongarchibong24@gmail.com
Project details
Release history Release notifications | RSS feed
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 severus_vault-1.0.0.tar.gz.
File metadata
- Download URL: severus_vault-1.0.0.tar.gz
- Upload date:
- Size: 17.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.13.5 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6cdeb98f420e86225dd9102b218636df23d1551c6fe6b2510aa4242f25506b8
|
|
| MD5 |
3aee9d75a700373057254e69ffdc38eb
|
|
| BLAKE2b-256 |
1e305d7c054805524a5cbdbb721fbc6edd3be17886280ac83f0245f8020e0bb0
|
File details
Details for the file severus_vault-1.0.0-py3-none-any.whl.
File metadata
- Download URL: severus_vault-1.0.0-py3-none-any.whl
- Upload date:
- Size: 23.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.13.5 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80d42c4978dd5ce25b9a80319fe7204f51a046f4db2575f4fbc985dc821dafc5
|
|
| MD5 |
5bdd0d739a8f35fd551af02b5e3f1957
|
|
| BLAKE2b-256 |
7e52d0f0d7cb8dfb1494b47ffd36a60b3fd848ae41443fdb5981503843a8f659
|