Skip to main content

🔐 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

PyPI version Python 3.6+ License: MIT

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

🔗 Links


⚡ Made for developers who value security and simplicity.

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

volti-1.1.0.tar.gz (24.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

volti-1.1.0-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

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

Hashes for volti-1.1.0.tar.gz
Algorithm Hash digest
SHA256 6c40e98f9e1846c449378a17ca90d5e98955d353bfc221236aa937b96e73de4d
MD5 f17f6e630e3fd8d6100b8d6bb38a01a3
BLAKE2b-256 7bd26f3331dc70fdf14d89d88fc78628fb458f220173212c3e461ecc1b1d4c98

See more details on using hashes here.

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

Hashes for volti-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 07d2b4549727f4edeb38345e44e0094b19f8c4ca20681f396892b4276b877834
MD5 0dba5f5afe7ec3d8f4658df253eab1a4
BLAKE2b-256 7fd492d9ac0203dd2b84510e891d6940b17fc1a2c89617cfa328413a70be6447

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page