the whole product is one endpoint and good defaults. everything below falls out of that.
POST /v1/chat
200 text/event-stream
one endpoint
that's the api. if you can write json, you've finished the docs.
claude code
codex
opencode
pick your fighter
swap harnesses with one field. same request shape, different brain.
"provider_api_key": "sk-…"
byo keys
your provider key goes with the request. your tokens, your provider bill — epho never sits between you and the model.
data: {"type":"delta",…}
data: {"type":"done",…}
streams like a terminal
pass -N and watch. server-sent events from first byte to done.
⠿ agent running… lid closed
cloud, not your macbook
agents run on our boxes. close your lid, board your flight — it keeps typing.
ci cron bash
scripts & ci friendly
it's just http. pipe it into github actions, cron, a discord bot, five lines of bash.