Skip to main content

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

heimdall_cli-0.1.2.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

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

heimdall_cli-0.1.2-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file heimdall_cli-0.1.2.tar.gz.

File metadata

  • Download URL: heimdall_cli-0.1.2.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

Hashes for heimdall_cli-0.1.2.tar.gz
Algorithm Hash digest
SHA256 0ff491977a7b6f1a3d3d085cc5fa1a342756dc5ff70d4673a61b4c2816f4f88d
MD5 5d8adbf16a530f87d5f7814c4ce3ca90
BLAKE2b-256 1e7754fa407440173c2ba9fcd46aeceb8d019519ed06c17d04bef90c5ca3b531

See more details on using hashes here.

File details

Details for the file heimdall_cli-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: heimdall_cli-0.1.2-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

Hashes for heimdall_cli-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8b034d62b6a9197925e9007b39d902b3e74ca38cfc0afcc5ee90de7441ddc229
MD5 c47161a84338896eb04cbae0f5661bfa
BLAKE2b-256 078076b4a6880447a23aca288f1d9f61ee89fbc1ce2b9ecafbfd084ca2c74f59

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