Programmatic Tool Calling Runtime

Fast. Isolated. Universal.

An instant Python sandbox for tool calling. One install — every agent, every MCP. Bulk data stays out of your context.

$ npm i -g toolcli
Works with Claude Code · Codex · Cursor · Gemini CLI · & many more
How it works

Every query, one pipeline.

Skip the raw tool dumps. Your agent's tool call passes through toolcli's prepare → call → shape pipeline. Only the shaped answer comes back.

AGENTS TOOLCLI MCPs Claude Code Codex Cursor Gemini CLI + any agent that runs bash toolcli Python sandbox · uv run 01 [PRE-CALL] Read · normalise · validate 02 [IN-CALL] tools['srv'].method(...) 03 [POST-CALL] Shape → ASCII summary gpt github filesystem your custom MCP stdio + http · ∞ servers ↩ compact summary Every call · fresh sandbox · ASCII out · ~ 247 bytes back to agent

Fast

Ephemeral uv envs. Cold start under a second. Deps resolved on demand with --with.

Isolated

Every call is a fresh sandbox. Bulk data — embeddings, file bytes, big JSON — never reaches your agent.

Universal

One CLI surface for every agent. Every MCP — stdio or HTTP — exposed in one Python namespace.

Get started

Try it now.

Three commands. Then any agent on the machine knows toolcli exists.

01npm i -g toolcli
02curl -LsSf https://astral.sh/uv/install.sh | sh
03npx skills add octaviusp/toolcli