All plugins

dropstation

Turn private local folders into Hermes inboxes with standing tasks. Drop a document or image to get a Markdown reply and a durable processing receipt. The adapter polls the configured owner-private spool and uses its filesystem permissions as the inbound authorization boundary. Its events skip messaging allowlists and pairing. Snapshots, reports and receipts are stored locally. The configured Hermes provider processes the source contents. Disclosure — every supported file written into a configured inbox folder starts an unattended Hermes turn with that lane's task; the platform is trusted_inbound, so these events skip messaging allowlists and pairing and the folders' owner-only 0700 permissions are the only gate. The file's contents go to the configured model provider, and unless platform_toolsets.dropstation is set (the example config sets it to []) the turn gets the default core toolset, terminal and file tools included; commands that need approval cannot be approved from the inbox and are not run. Snapshots, receipts and reports are stored under the configured root.

satiricalguruPlatformv0.1.0Updated 1 hour ago

About

Turn private local folders into Hermes inboxes with standing tasks. Drop a document or image to get a Markdown reply and a durable processing receipt. The adapter polls the configured owner-private spool and uses its filesystem permissions as the inbound authorization boundary. Its events skip messaging allowlists and pairing. Snapshots, reports and receipts are stored locally. The configured Hermes provider processes the source contents. Disclosure — every supported file written into a configured inbox folder starts an unattended Hermes turn with that lane's task; the platform is trusted_inbound, so these events skip messaging allowlists and pairing and the folders' owner-only 0700 permissions are the only gate. The file's contents go to the configured model provider, and unless platform_toolsets.dropstation is set (the example config sets it to []) the turn gets the default core toolset, terminal and file tools included; commands that need approval cannot be approved from the inbox and are not run. Snapshots, receipts and reports are stored under the configured root.

What you can automate

| Lane | Drop | Get |
| :--- | :--- | :--- |
| Incidents | A log from a deployment or support export | A timeline, impact summary, and next steps |
| Handoff | Meeting notes or a design review | Decisions and open questions |
| Screenshots | An error screenshot | A description and next step, using your vision-capable model |
| Your lane | A recurring file export from a script or scanner | A Markdown report shaped by your standing task |

Dropstation adds a native messaging platform to Hermes Agent. It watches while the gateway runs, opens a fresh session for each file, and saves the reply and a receipt to the outbox. A rename or copy of the same bytes within a lane shares the existing job.

Actual results

| Checked on Hermes v0.23.0 with Ollama on macOS | Observed |
| :--- | :--- |
| Two configured lanes | Two reports in separate Hermes sessions |
| Two byte-identical logs in one lane | One incident receipt |
| Forced gateway shutdown during a turn | The active job became interrupted. The queued handoff delivered after restart. |
| Source and report integrity | Both SHA-256 values matched the receipts |
| Validation | Eight spool tests and 16 Hermes plugin checks passed |

Watch the launch film

Download the 47-second film · English captions

Quick start

Use Hermes Agent v0.23.0+ on macOS or Linux with a configured model.

1. Install the plugin.

hermes plugins install https://github.com/satiricalguru/Hermes-dropstation --enable

2. Configure the inboxes. Merge the example config into your Hermes profile's config.yaml. It watches ~/Dropstation and assigns a task to each of two folders. The example leaves Hermes tools disabled for unattended text processing.

3. Run the gateway. Use hermes gateway run, or hermes gateway restart if you run Hermes as a service. Once it starts, drop a file into ~/Dropstation/inbox/incidents/ or run the bundled example.

plugin_dir="$HOME/.hermes/plugins/dropstation"
python3 "$plugin_dir/dropstation.py" --root "$HOME/Dropstation" \
  submit incidents "$plugin_dir/demo/checkout.log"
python3 "$plugin_dir/dropstation.py" --root "$HOME/Dropstation" status

The example uses the default Hermes profile. For a named profile, run the Hermes commands in that profile and use its plugin directory.

From the plugin checkout, copy the five runtime files into your active profile.

profile_dir="$HOME/.hermes"
install -d -m 700 "$profile_dir/plugins/dropstation"
cp __init__.py adapter.py spool.py dropstation.py plugin.yaml "$profile_dir/plugins/dropstation/"
hermes plugins enable dropstation

How it works

flowchart LR
    A["Drop a file into a lane"] --> B["Snapshot after two matching polls"]
    B --> C{"New bytes in this lane?"}
    C -->|Yes| D["Open a Hermes session"]
    C -->|Already seen| E["Keep the existing receipt"]
    D --> F["Save report.md and receipt.json"]
    classDef accent fill:#3026cf,stroke:#7b70ff,color:#fff
    class A,D,F accent
  • Durable queue. Queued work resumes after a restart. A running job left behind becomes interrupted. Review it before deliberately re-running the input with submit <lane> <file> --again.
  • Inspectable output. Each job has an input SHA-256 and, on delivery, a report SHA-256. delivered confirms that Hermes sent a final reply and Dropstation saved it. The reply may describe a model or gateway error.
  • One worker per root. Jobs run serially within a spool. Use a distinct private root per Hermes profile. Keep the receipts for as long as you want duplicate detection.
  • Input limits. TXT, Markdown, LOG, CSV, JSON, PDF, PNG, JPEG, and WebP up to 10 MiB. Short UTF-8 text is inlined. Other inputs use Hermes attachment handling and need an appropriate vision model or file reader. The watcher skips links, pipes, and unsupported entries.

Data and permissions

Writing to the configured inbox can start a Hermes turn. The adapter uses the filesystem owner boundary and its events skip messaging allowlists and pairing. Keep the root on a private local volume and grant write access only to trusted producers. Use a local reader for attachments when your task needs one, and configure the platform toolsets for the unattended work you intend to allow.

The adapter reads and writes inside the configured spool. Your Hermes provider processes the input and Hermes may retain it in session history. The outbox also stores a private input snapshot in each job's .input/ folder. Remove inputs and old results on your own retention schedule.

Develop

python3 -m unittest discover -s tests -v
hermes plugins validate --install-deps .

Research and design notes · Submission notes · MIT license

README from the reviewed commit e6a5ba6; it updates when the author re-pins.