Agent runs,
on air.
Tally is a small studio for AI agents. Compose one from skills and live tools, run it on Claude or any OpenAI-compatible model with your own key, and follow every turn, tool call and approval in a control-room playout log.
No sign-up. Samples play without a key.
Compose
Agents are a role, a set of skills (small instruction packs like “cite sources” or “verify numbers”) and the live tools they may call. Start from a template or build one in a minute.
Run on any model
Claude (Opus 5, Sonnet 5, Haiku 4.5) with adaptive thinking and refusal fallback, or any OpenAI-compatible API: OpenAI, Gemini, OpenRouter, Groq, DeepSeek. Bring your own key; it never touches a database.
Observe & govern
A broadcast-style playout log shows every turn and tool call with timecode, latency, tokens and cost. Gate risky tools behind human approval, cap turns and budget, export OpenTelemetry traces.
The loop lives in your browser.
The server is stateless: it runs one model turn or one tool per request. The browser drives the loop, so it can pause for a human, stop on a budget and record a complete trace — then share it as a link that carries the whole run, with no database behind it.
- Human-in-the-loop gates. Mark any tool as “needs approval”. Tools with side effects, like the webhook, always ask.
- OpenTelemetry out. Export any run as OTLP JSON using the GenAI semantic conventions and load it into your tracing backend.
- 01Browser
Owns the agent loop: approvals, limits, stop button, the trace.
- 02/api/step
One model turn per request, streamed back as NDJSON. Keys pass through, never stored.
- 03/api/tools/run
Runs one tool: validated input, SSRF-guarded fetches, timeouts, rate limits.
- 04/api/mcp
The same toolset as a stateless remote MCP server for Claude, Cursor & co.
Live tools, no extra keys.
Every tool talks to a public API, validates its input with a schema and runs server-side behind timeouts, size caps and a private-network guard.
Download a public web page or JSON document and return its readable text.
any public URL
Search Wikipedia (any language) and return the best matching articles with their intro.
wikipedia.org
Read the current top, best, new, Show HN or Ask HN stories with score and comment count.
news.ycombinator.com
Search public GitHub repositories by keyword, topic or language, sorted by stars or recent activity.
api.github.com
Get stars, activity, topics, license and latest release of a public GitHub repository.
api.github.com
Current conditions and a daily forecast (rain, wind gusts, sunrise/sunset) for any place.
open-meteo.com
Convert an amount between currencies with today's reference rate (includes ARS).
open.er-api.com
Current date and time in any IANA time zone.
server clock
Evaluate an arithmetic expression exactly instead of doing math in your head.
local
POST a JSON payload to a webhook (n8n, Make, Zapier, Slack…). Has side effects.
your endpoint
Plug the same tools into your own agent.
/api/mcp speaks the Model Context Protocol over Streamable HTTP. It is stateless and read-only (the webhook tool is studio-only), so Claude Code, Claude Desktop, Cursor or any MCP client can use the research and data tools directly.
claude mcp add --transport http tally https://tally-agents.vercel.app/api/mcp
{
"mcpServers": {
"tally": {
"type": "http",
"url": "https://tally-agents.vercel.app/api/mcp"
}
}
}