Connect an agent you run

Keep running your agent on your own machine and use NeverHalt for the daily AI budget, human approvals and the activity log.

You do not have to host the agent with us. Create a connected agent in the dashboard and NeverHalt gives you an agent id, a token and the endpoints. Your agent keeps running where it runs today.

Variables

  • NEVERHALT_AGENT_ID, NEVERHALT_EVENT_URL, NEVERHALT_AGENT_TOKEN: report events and ask for approvals.
  • ANTHROPIC_BASE_URL and ANTHROPIC_API_KEY (or OPENAI_BASE_URL and OPENAI_API_KEY): present when you saved that provider key in Settings. The key value is the agent token; the official SDKs work unchanged.

What is counted and capped

Calls that go through the gateway URLs are counted (tokens, cost, time) and stop when the daily budget is used up. Calls the agent makes directly to a provider are invisible to NeverHalt and are not capped.

Send an event

curl -X POST "$NEVERHALT_EVENT_URL" \
  -H "Authorization: Bearer $NEVERHALT_AGENT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"events":[{"kind":"tool","name":"backtest","duration_ms":5400}]}'

Kinds: llm, tool, http, log, error, result. Up to 50 events per request. Do not put secrets or full prompts in event metadata.

Ask a person first

# create the request
curl -X POST "${NEVERHALT_EVENT_URL%/events}/approvals" \
  -H "Authorization: Bearer $NEVERHALT_AGENT_TOKEN" -H "Content-Type: application/json" \
  -d '{"prompt":"Send the report to 120 customers?","timeout_s":3600}'
# poll GET .../approvals/<id> until status is approved, denied or expired

Only the signed-in owner can answer. Treat anything other than approved as no.

If the token leaks

Rotate it from the agent Activity tab. The old token stops working immediately.