hookie CLI does two things the console cannot.
Development. Getting a live event into the code you are writing used to mean a tunnel or a deploy. hookie listen forwards your real workspace’s events to a port on your laptop, authenticated by the same OAuth connection a coding agent uses — no public URL, no third-party relay.
Management. --json on every command, a real exit code when something fails, and a hookie.yml you can review in a pull request.
Install
Node 20 or newer. No build step and no dependencies outside the Hookie repository.Sign in
~/.hookie/credentials.json with mode 0600. Nothing is pasted anywhere: it is the standard OAuth 2.1 authorization-code flow with PKCE, the same one connected agents use, so hookie login and an agent you connect share one credential store.
A new connection starts read-only. Widen it in Settings → Connected agents, where you can also revoke it — immediately, and per connection. A CLI connection appears in that list exactly like an agent, because it is one.
hookie logout keeps the registered OAuth client so the next hookie login reuses it instead of adding another row to your agent list. Revoke it on the server too if you mean to cut it off there.
Which Hookie, which project
--url defaults to $HOOKIE_URL, then http://localhost:8787 — a local wrangler dev. --project takes a slug or an id; with neither, commands use your workspace’s Default project.
What it will and will not print
stdout is data; stderr is progress, warnings and prompts. Sohookie endpoints list --json | jq works, and so does redirecting stdout while still watching what happens.
A destructive command asks first. On a non-interactive stdin it refuses rather than assuming yes — a CI job that means it passes
--yes, and one that did not mean to gets an error instead of a deletion.
Where to go next
Local development
listen, tail, send and replay — the loop that replaces a tunnel.
Command reference
Every command, generated from the same catalog the CLI builds itself from.
Configuration
hookie.yml, environment variables and exit codes.
Connected agents
The same OAuth connection, from your coding agent instead.