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.5.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.5-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

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

Hashes for heimdall_cli-0.1.5.tar.gz
Algorithm Hash digest
SHA256 3306b418cc3e7a10372c2e6fad5fa7ee9e71672113ba14dcbf633686109b6fe8
MD5 e739b778a09d6a247a441083499c66ed
BLAKE2b-256 bdec92426c55719acc3b18e1352ee3f2c9762843cb1bdb3d2b73ee5dc3678805

See more details on using hashes here.

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

Hashes for heimdall_cli-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ff88b8c4e9aaf386bedd0b7809ecb01621f070fa5ce1149f7beec44f31d5de46
MD5 ac42abf078b5c72239a6c70a2b11cb07
BLAKE2b-256 319d25e294e1c8b02f5363d47f16f1bfa8def0375cf0e0b067d16c27e470abd3

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