🔐 Secure API Key Manager - Minimal CLI tool and Python library for managing API keys with military-grade encryption, password authentication, and cross-platform support. Store, retrieve, and organize your API keys safely with intuitive commands and bulk .env import capabilities.
Project description
🔐 Volti - Secure API Key Manager
Volti is a minimal, secure, and user-friendly CLI tool and Python library for managing API keys. Store, retrieve, and organize your API keys with military-grade encryption and intuitive commands.
✨ Features
🔒 Security First
- AES-256 encryption with Argon2 password hashing
- Password-based authentication for all sensitive operations
- Secure memory handling with automatic key wiping
- Cross-platform secure storage (Windows Credential Manager, macOS Keychain, Linux Secret Service)
🚀 Developer Friendly
- Minimal CLI commands - just
add,get,remove,list,clear - Bulk import from .env files - migrate existing projects instantly
- Smart key masking - preview keys safely without full exposure
- Auto-completion ready - works seamlessly with shell completion
- Zero configuration - works out of the box
🛠 Versatile Usage
- CLI tool for terminal workflows
- Python library for programmatic access
- Cross-platform support (Windows, macOS, Linux)
- Multiple keys per provider - store backup keys, different environments
- .gitignore integration - automatically exclude sensitive files
📦 Installation
pip install volti
🚀 Quick Start
1. Initial Setup
# Set up your master password (one-time setup)
volti setup
2. Add API Keys
# Add a single API key
volti add openai sk-1234567890abcdef
# Bulk import from .env file
volti add --env
3. Retrieve API Keys
# Get API keys for a provider
volti get openai
# Copy to clipboard automatically
volti get openai --copy
4. Manage Your Keys
# List all providers
volti list
# Remove specific key
volti remove openai 1
# Clear all keys (with confirmation)
volti clear
📖 Detailed Usage
Adding API Keys
Single Key:
volti add github ghp_xxxxxxxxxxxxxxxxxxxx
volti add stripe sk_test_xxxxxxxxxxxxxxxxxxxx
volti add aws AKIAIOSFODNN7EXAMPLE
Bulk Import from .env:
# Create a .env file
echo "OPENAI_API_KEY=sk-1234567890abcdef" >> .env
echo "GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx" >> .env
# Import all keys
volti add --env
Retrieving Keys
# Basic retrieval
volti get openai
# Output:
# 🔑 API Keys for openai:
# 1. sk-1234****cdef (Primary)
# Get specific key by index
volti get openai 1
# Copy to clipboard (if pyperclip available)
volti get openai --copy
Managing Keys
# List all stored providers
volti list
# Output:
# 📋 Stored API Key Providers:
# • openai (2 keys)
# • github (1 key)
# • stripe (1 key)
# Remove specific key
volti remove openai 1
# Clear all keys (with confirmation)
volti clear
Utility Commands
# Check authentication status
volti auth
# Add .env to .gitignore
volti gitignore
# Show help
volti help
🐍 Python Library Usage
from apilib import APIKeyManager
# Initialize with password
manager = APIKeyManager(password="your_secure_password")
# Store a key
success, message = manager.store_key("sk-1234567890abcdef", "openai")
print(f"✅ {message}" if success else f"❌ {message}")
# Retrieve keys
success, keys, message = manager.fetch_keys("openai")
if success:
for i, key in enumerate(keys, 1):
print(f"{i}. {key}")
# Delete a key
success, message = manager.delete_key("openai", 1)
print(f"✅ {message}" if success else f"❌ {message}")
🔧 Advanced Features
Environment File Format
# .env file format
OPENAI_API_KEY=sk-1234567890abcdef
GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx
STRIPE_SECRET_KEY=sk_test_xxxxxxxxxxxxxxxxxxxx
AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
# Comments are ignored
# Empty lines are ignored
Security Features
- Argon2 Password Hashing: Industry-standard password hashing
- AES-256 Encryption: Military-grade encryption for stored keys
- Secure Memory Handling: Automatic cleanup of sensitive data
- Platform Integration: Uses OS-native secure storage when available
Cross-Platform Support
| Platform | Secure Storage Backend |
|---|---|
| Windows | Windows Credential Manager |
| macOS | Keychain Services |
| Linux | Secret Service API |
🤝 Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Development Setup
git clone https://github.com/lokeshpantangi/volti.git
cd volti
pip install -e .
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Built with ❤️ by Lokesh & Aditya
- Powered by cryptography for encryption
- CLI built with Click
🔗 Links
- PyPI Package: https://pypi.org/project/volti/
- GitHub Repository: https://github.com/lokeshpantangi/volti
- Issue Tracker: https://github.com/lokeshpantangi/volti/issues
- Documentation: https://github.com/lokeshpantangi/volti#readme
⚡ Made for developers who value security and simplicity.
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 volti-1.1.0.tar.gz.
File metadata
- Download URL: volti-1.1.0.tar.gz
- Upload date:
- Size: 24.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c40e98f9e1846c449378a17ca90d5e98955d353bfc221236aa937b96e73de4d
|
|
| MD5 |
f17f6e630e3fd8d6100b8d6bb38a01a3
|
|
| BLAKE2b-256 |
7bd26f3331dc70fdf14d89d88fc78628fb458f220173212c3e461ecc1b1d4c98
|
File details
Details for the file volti-1.1.0-py3-none-any.whl.
File metadata
- Download URL: volti-1.1.0-py3-none-any.whl
- Upload date:
- Size: 23.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07d2b4549727f4edeb38345e44e0094b19f8c4ca20681f396892b4276b877834
|
|
| MD5 |
0dba5f5afe7ec3d8f4658df253eab1a4
|
|
| BLAKE2b-256 |
7fd492d9ac0203dd2b84510e891d6940b17fc1a2c89617cfa328413a70be6447
|