| Crates.io | hermes-md |
| lib.rs | hermes-md |
| version | 1.3.7 |
| created_at | 2025-12-14 10:12:47.096839+00 |
| updated_at | 2025-12-14 11:53:08.057497+00 |
| description | A simple CLI tool to upload and delete files to and from your Supabase project |
| homepage | https://github.com/rivethorn/hermes-md |
| repository | https://github.com/rivethorn/hermes-md |
| max_upload_size | |
| id | 1984193 |
| size | 186,182 |
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.
Never publish your Service Role Key — it WILL grant unlimited power over your Supabase project to anyone who has it.
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
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
Place config.toml in the current directory, or in the platform-specific config directory:
~/.config/hermes-md/config.toml (or $XDG_CONFIG_HOME/hermes-md/config.toml if set)%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 (SUPABASE_URL, SUPABASE_SERVICE_KEY, SUPABASE_BUCKET, SUPABASE_TABLE) are honored as a fallback if no config file is found.