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 expiredOnly 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.