HOKIO / DEVELOPER GUIDES
Your first webhook.
From the web to localhost.
Hokio gives an application running on your machine a permanent HTTPS webhook URL. This guide connects a local receiver on port 8000 and checks the response from outside your machine.
1. Run a local webhook receiver
You need Python 3.11 or newer for this example. Download webhook_receiver.py into an empty directory, review the file, and run it:
python webhook_receiver.py
On Windows, use py -3 webhook_receiver.py if your Python installation uses the py launcher. On Linux, use python3 webhook_receiver.py.
Expected startup message: Listening on http://127.0.0.1:8000/webhook. Leave this terminal open. The receiver binds to loopback; it does not open a listener on your public network interface.
2. Test the receiver locally
In a second terminal, send a sample event. In Windows PowerShell, use curl.exe instead of curl for these commands.
Create event.json in the same directory with this content:
{"event":"task.completed","source":"local-demo"}
Then send the request:
curl -i -X POST http://127.0.0.1:8000/webhook -H "Content-Type: application/json" --data-binary @event.json
Expected result: HTTP 200 and:
{"received":true,"event":"task.completed"}
If the local request fails, fix that before starting the tunnel. Hokio forwards to your application; it does not start that application for you.
3. Install and connect Hokio
Windows
Get Hokio from the Microsoft Store ↗. Use the device connection instructions shown by your Hokio workspace. Select local application port 8000 to match the receiver.
Linux
The installer detects your architecture and Linux environment and verifies the selected release checksum:
curl -fsSL https://hokio.dev/download/install.sh | sh
With an active workspace, ask your workspace owner for a one-time device connection code, or generate one from Connect a device if your role allows it. Then run:
hokio-agent login --panel-url https://hokio.dev --port 8000 --connect
Enter the code when prompted; avoid putting it in a shared command or screenshot. The connector displays your assigned webhook_url and keeps the foreground connection running. Codes expire and can be redeemed only once.
Your assigned URL comes from Hokio. Do not copy an illustrative hostname from a screenshot. Keep the receiver and connector running during the test.
Reconnect later
hokio-agent connect
hokio-agent statusYour assigned webhook address remains the same while the endpoint stays assigned. If you change the application port, update the connector to use the actual listening port:
hokio-agent config --port 80004. Send an event to your public HTTPS URL
Replace YOUR_ASSIGNED_HOKIO_HOST below with the hostname returned by your connector. The placeholder is not a working endpoint. Keep the /webhook path:
curl -i -X POST https://YOUR_ASSIGNED_HOKIO_HOST/webhook -H "Content-Type: application/json" --data-binary @event.json
A successful connection returns the same HTTP 200 receipt as the localhost test. You can also send this request from a second machine to verify that the URL is publicly reachable. Use synthetic event data for the test.
Paste the full URL, including /webhook, into the service that sends your AI callbacks or automation events. Configure the endpoint's allowed methods, accepted paths, source IP rules, and limits to fit that service.
Troubleshooting
- Local connection refused
- Check that the Python receiver is running on the same machine as the connector and on port 8000. If the port is occupied, choose a free port in the receiver and use that same port in Hokio.
- The public URL returns unavailable
- Check
hokio-agent status, the internet connection, and whether the connector and local application are running. The URL stays assigned while offline, but requests are not queued for later delivery. - The request is denied
- Ask your workspace owner to check source IP restrictions, HTTP methods, accepted paths, and traffic limits. Keep the policy restricted to the intended sender.
- The code is rejected
- Request a fresh one-time connection code from your workspace owner. An expired or already redeemed code cannot register another device.
- Can I connect without an account?
- No. Reading these guides and running the local receiver does not create a Hokio account or reserve a URL.