engineering_delegate action with provider: "hermes".
How it works
run_id as the action’s external_id, then reconciles status via GET /v1/runs/{id} (scheduled poller ~every 10 minutes, plus the next briefing and a manual refresh endpoint). Execution still lives entirely on your gateway — Appeeky never clones repos or runs code.
Prerequisites
See Hosting a coding agent for the full VPS + named Cloudflare Tunnel recipe. Short version:hermes gateway (or a systemd unit). See the Hermes API Server docs.
Reachability & security (you host the gateway)
Appeeky is the strategist; you host the coding agent. Appeeky’s servers make outbound requests to thebaseUrl you provide, so the gateway must be reachable from the internet and locked down:
- Public HTTPS required in production. In production,
baseUrlmust be anhttps://URL. Plainhttp://is rejected. - Private addresses are blocked. For SSRF safety, Appeeky refuses gateway URLs that resolve to loopback (
127.0.0.1,localhost), private ranges (10.x,172.16–31.x,192.168.x), link-local / cloud-metadata (169.254.169.254), or other reserved addresses. PointbaseUrlat a genuinely public host. - Use a durable hostname. Quick tunnels (
*.trycloudflare.com) change on every restart and will break Integrations. Prefer a named Cloudflare Tunnel on your domain (hermes.yourdomain.com) or a VPS + reverse proxy. Details in Hosting a coding agent. - Keep the key strong & rotate it.
API_SERVER_KEYis the only credential guarding your gateway — useopenssl rand -hex 32and rotate if leaked. Appeeky stores it encrypted at rest and never returns it to the client.
Local development only: when Appeeky runs in dev (NODE_ENV != production),http://127.0.0.1:8642is allowed so you can test against a laptop gateway. This never applies to the hosted product.
Setup
GET /v1/capabilities on your gateway with the bearer token to verify it is reachable and the key is valid.
Enable
What Appeeky sends
Safety model
- No Appeeky secrets leave Appeeky. Your GitHub token / repo access lives on the Hermes side. Appeeky only sends the task brief.
- Always approval-gated.
engineering_delegatenever auto-runs by autopilot level — it waits for your approval in chat or the Actions queue. (You can opt a delegation type into auto-approval explicitly viaautoApproveTypes, but that’s off by default.) - Rate-limited. Appeeky caps applied delegations (default: 10/day and 3 in-flight per owner) so a runaway loop cannot flood your gateway.
- Read mode blocks it. In
agentMode: read, the Co-founder will not propose delegations at all. - Traceable. Every run carries
session_id = appeeky:<appId>:<task-slug>.

