Command-line utility for secure and efficient file encryption and storage.
Project description
Heimdall-CLI
Heimdall is a CLI tool to encrypt, upload, download, and manage your files securely using AES encryption and a remote server backend.
🔐 Built for privacy. ⚙️ Simple to use. ☁️ Backed by a fast API.
Server repo: heimdall_server
🚀 Features
- 🔐 Encrypt files locally using AES before uploading
- ☁️ Upload, download, list, and delete files from the server
- 🔑 Secure authentication using JWT tokens
- 🧾 Configuration stored locally at
~/.config/heimdall_config.ini - 🛠️ Simple, consistent CLI interface
📦 Installation
Install directly from PyPI:
pip install heimdall
🧪 Usage
🔐 Login
heimdall login --username USERNAME --password PASSWORD
Authenticates with the server and stores tokens for future use.
📤 Upload a File
heimdall upload path/to/file.txt --encrypt --key YOUR_ENCRYPTION_KEY
--encrypt: Optional flag to encrypt the file before upload--key: AES key to use for encryption (must match on download)
📥 Download a File
heimdall download FILE_ID --key YOUR_ENCRYPTION_KEY
FILE_ID: The identifier shown in heimdall list--key: Required if the file was encrypted
📄 List Your Files
heimdall list
Displays all your uploaded files.
🗑️ Delete a File
heimdall delete FILE_ID
Deletes the file from the cloud.
⚙️ Configuration
On first run, Heimdall creates a config file at:
~/.config/heimdall_config.ini
Sections:
-
[CloudService]: Stores host URL and tokens -
[Encryption]: Stores AES settings if configured
This file is used to persist login and encryption preferences between commands.
🧱 Dependencies
-
click– CLI command framework -
httpx– HTTP client for server communication
🧑 Author
Amin Masoudi 🔗 github.com/aminmasoudi
📄 License
MIT License. See LICENSE for details.
TODO:
- Key flow: from where?
- Cleaning All functions
- Documentation
- Login
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 heimdall_cli-0.1.5.tar.gz.
File metadata
- Download URL: heimdall_cli-0.1.5.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3306b418cc3e7a10372c2e6fad5fa7ee9e71672113ba14dcbf633686109b6fe8
|
|
| MD5 |
e739b778a09d6a247a441083499c66ed
|
|
| BLAKE2b-256 |
bdec92426c55719acc3b18e1352ee3f2c9762843cb1bdb3d2b73ee5dc3678805
|
File details
Details for the file heimdall_cli-0.1.5-py3-none-any.whl.
File metadata
- Download URL: heimdall_cli-0.1.5-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff88b8c4e9aaf386bedd0b7809ecb01621f070fa5ce1149f7beec44f31d5de46
|
|
| MD5 |
ac42abf078b5c72239a6c70a2b11cb07
|
|
| BLAKE2b-256 |
319d25e294e1c8b02f5363d47f16f1bfa8def0375cf0e0b067d16c27e470abd3
|