CLI

Project Config (up / down)

Define tunnel and webhook profiles in otterkit.toml and start them all with otterkit up.

Docs for LLMs

Define your project's tunnels and webhook endpoints once in an otterkit.toml, then start them all with one command. Each profile runs as a background daemon, so status, inspect, replay, and stop work on them like on any other daemon.

otterkit.toml
[tunnels.web]
port = 3000
subdomain = "myapp"          # stable URL (optional)
host = "127.0.0.1"           # local host (optional, default 127.0.0.1)
auth = "admin:s3cret"        # HTTP Basic auth (optional, tunnels only)
log = true                   # capture requests (optional, default off here)
ttl = "8h"                   # auto-stop (optional, default 24h)

[tunnels.hooks]
webhook = true               # webhook endpoint, no local server
subdomain = "myapp-hooks"
respond = 200                # custom auto-response (optional)
respond_body = '{"ok":true}'
respond_content_type = "application/json"

Each profile sets either port or webhook = true, not both. auth applies to tunnels only, and the respond keys apply to webhook endpoints only.

Commands#

Terminal
npx otterkit up                   # start everything
npx otterkit up --json            # machine-readable results for agents
npx otterkit up --config <path>   # use a different file
npx otterkit down                 # stop the daemons started from the config

up is idempotent. Profiles that are already running are skipped and reported as already_running, so agents can run it repeatedly without creating duplicates. down stops the matching daemons and deletes their capture logs.