Skip to main content
Appeeky delegates implementation to your coding agent. You host the gateway; Appeeky only stores a public baseUrl + API key and triggers runs after you approve them.

What Appeeky requires

This is the path we recommend for customers (and what we use for our own smoke tests).

1. Provision a VPS

Any small Linux box works — Hetzner CX22/CX32, DigitalOcean, OVH, etc. Ubuntu LTS is fine. Do not open inbound ports for the gateway; the tunnel dials out.

2. Install Hermes (example)

In ~/.hermes/.env:
Run as a systemd service (so reboot / SSH disconnects don’t kill it):

3. Durable public URL with a named Cloudflare Tunnel

Quick tunnels (cloudflared tunnel --url …) print a random *.trycloudflare.com hostname that changes every restart. Use a named tunnel + your domain instead.
~/.cloudflared/config.yml:

4. Connect in Appeeky

Settings → Integrations → Coding agents → Hermes
  • Base URL: https://hermes.yourdomain.com
  • API key: the API_SERVER_KEY you generated
Appeeky calls GET /v1/capabilities before saving. On success the Co-founder can propose engineering_delegate actions (always approval-gated).

OpenClaw (same VPS pattern)

OpenClaw’s gateway defaults to port 18789. Enable hooks ingress in your OpenClaw config:
Tunnel it the same way (quick tunnel for smoke, named tunnel for prod):
Settings → Integrations → OpenClaw
  • Gateway URL: https://openclaw.yourdomain.com
  • Hook token: your hooks.token
Appeeky probes GET /healthz and verifies the hook token before saving. OpenClaw runs are fire-and-forget — results arrive on your configured delivery channel (Slack/Telegram) if you set deliver + to.

Alternatives

Security checklist

  • API_SERVER_KEY is ≥32 random bytes (openssl rand -hex 32)
  • Gateway listens on 127.0.0.1 when fronted by a tunnel/proxy
  • Inbound firewall blocks everything except SSH (tunnel/proxy only)
  • Don’t paste private keys or API_SERVER_KEY into chat / tickets
  • Rotate the key in Hermes .env + Appeeky Integrations if leaked
  • Appeeky stores the key encrypted at rest (COFOUNDER_CREDENTIALS_SECRET)

What happens after connect

  1. Co-founder spots a feature gap → proposes engineering_delegate
  2. You approve in Actions / chat
  3. Appeeky POSTs /v1/runs to your gateway
  4. A background poller refreshes run status every ~10 minutes (and on the next briefing / manual refresh)
  5. Hermes opens a draft PR and optionally notifies your channel