Start here
Other tools and scripts
Put any other agent, tool or script on the board with the TypeScript or Python SDK, the REST API or the MCP server.
Agentower has built-in hooks for Claude Code, Codex and Cursor. Anything else — another coding agent, a nightly job, your own script — can report its status in one of three ways.
#With the SDK (TypeScript or Python)
npm install agentower or pip install agentower, then:
import { Agentower } from "agentower";
const tower = new Agentower({ tool: "nightly-import", project: "data-pipeline" }); // key from AGENTOWER_KEY
await tower.track("nightly-import", async () => { await importEverything(); });The SDKs also have adapters for Anthropic's Claude Agent SDK and OpenAI's Agents SDK, and let your agent wait for Allow, Deny or a message given in Agentower. See SDKs.
#With a plain HTTP request
Send an event to POST /v1/events with an ingest key each time something changes: started, working, needs someone, finished its turn, failed, ended.
curl -X POST "https://ingest.agentower.com/v1/events" \
-H "authorization: Bearer at_live_your_key_here" \
-H "content-type: application/json" \
-d '{"tool":"nightly-import","session_id":"run-2026-09-30","project":"data-pipeline","event":"hold","reason":"Needs a person to check the report"}'That puts a Needs you card on the board under the project data-pipeline, with your reason. The full list of events and fields is in REST events.
#From an MCP client
If the tool speaks MCP, add the Agentower MCP server and it can call report_status itself. The same server lets anyone on the team ask "which of our agents need someone?" from Claude or any MCP client. See MCP server.
#What you get
Agents reported this way appear, update and close on the board like any other. They can be answered from Agentower only when they ask for it themselves — with the SDKs or POST /v1/asks — and they have no token counts unless the tool sends OpenTelemetry.