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

Uploaded Python 3

File details

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

File metadata

  • Download URL: heimdall_cli-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 110ec434c08743954c835138a7df8c537d6313d13e128a8c3ed885a97bf0572c
MD5 9230bcad683d1b0607f4fd2e3b6abdf9
BLAKE2b-256 4076b57d62c76be9a9fe375192f4403519391e7328ba655b501095a46e6aefa1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: heimdall_cli-0.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 db8d1100f1fbaa604b8f4cfd2254acd546d5e691f83817c787d196a86ac36278
MD5 ad23642e5f21d1aa1350489b6782e1e4
BLAKE2b-256 d95278012914777fb587a1e7d918190f44c6068a1ce04e0b742340b8dc4eb130

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