hermes-md

Crates.iohermes-md
lib.rshermes-md
version1.3.7
created_at2025-12-14 10:12:47.096839+00
updated_at2025-12-14 11:53:08.057497+00
descriptionA simple CLI tool to upload and delete files to and from your Supabase project
homepagehttps://github.com/rivethorn/hermes-md
repositoryhttps://github.com/rivethorn/hermes-md
max_upload_size
id1984193
size186,182
Hassan Qasemi (rivethorn)

documentation

README

Hermes-MD

Crates.io Version

A CLI tool for adding and removing Markdown files to and from a Supabase bucket. I use it for my blog site, you can use it for whatever.

⚠️ Warning

Never publish your Service Role Key — it WILL grant unlimited power over your Supabase project to anyone who has it.

Installation

You can install it from crates.io:

cargo install hermes-md

Or you can clone the repository and build it from source:

git clone https://github.com/rivethorn/hermes-md.git
cd hermes-md
cargo build --release

Usage

hermes-md publish <path>         # upload file + metadata
hermes-md list                   # show slugs and where they are (bucket/table/both)
hermes-md delete <slug>          # delete file + row after confirmation
hermes-md delete <slug> --soft   # delete only DB row (keeps bucket file)
hermes-md gen-config             # write sample config to platform-specific config directory

Configuration

Config File (Preferred)

Place config.toml in the current directory, or in the platform-specific config directory:

  • Unix/Linux: ~/.config/hermes-md/config.toml (or $XDG_CONFIG_HOME/hermes-md/config.toml if set)
  • Windows: %APPDATA%\hermes-md\config.toml (or %LOCALAPPDATA%\hermes-md\config.toml)

Override the path with --config /path/to/config.toml (or --config C:\path\to\config.toml on Windows).

Example config.toml:

supabase_url = "https://xxxxx.supabase.co"
supabase_service_key = "service_role_key"
bucket = "blog"
table = "posts"

Environment Variables

Environment variables (SUPABASE_URL, SUPABASE_SERVICE_KEY, SUPABASE_BUCKET, SUPABASE_TABLE) are honored as a fallback if no config file is found.

To-do

  • Add GUI
Commit count: 0

cargo fmt