Skip to content
Brian Weisberg edited this page Feb 17, 2026 · 4 revisions

Tooli Wiki

The agent-native CLI framework for Python.

Write one function, get a CLI, an MCP tool, and a self-documenting schema.


Quick Links

  • Architecture — Three-layer design, dual pipeline, output system
  • Roadmap — Phase 1/2/3 implementation plan and progress
  • Error Handling — ToolError hierarchy, exit codes, structured errors
  • Output System — Modes, envelope format, global flags
  • MCP Integration — Serving Tooli apps as MCP tool servers
  • Contributing — Development setup, testing, style guide

Project Status

Current version: 5.0.0 — The Universal Agent Tool Interface

Phase Description Status
Phase 1 Core Foundation (MVP) Complete
Phase 2 Agent Differentiation Complete
Phase 3 Advanced Features Complete
v4.0 Agent Skill Platform Complete
v4.1 Caller-Aware Agent Runtime Complete
v5.0 Universal Agent Tool Interface Complete

See the Roadmap for detailed progress.


Key Concepts

Tooli extends Typer to produce CLI tools that are simultaneously human-friendly and machine-consumable by AI agents. The core insight: no existing project auto-generates AI tool schemas from typed CLI command definitions.

Single Definition, Multiple Interfaces

One decorated Python function produces:

  • A Unix CLI command for humans and scripts
  • A JSON Schema for agent discoverability
  • An MCP tool definition for protocol-level integration
  • SKILL.md documentation always in sync with code
  • An optional HTTP API with OpenAPI spec

Library-First Design

Tooli is a library, not a framework. Typer is an implementation detail — the public API is Tooli-native. Users import Tooli, Argument, Option, and Annotated from the tooli package.

from tooli import Tooli, Annotated, Option, Argument

app = Tooli(name="my-tool", version="1.0.0")

@app.command()
def greet(name: Annotated[str, Argument(help="Who to greet")]) -> dict:
    return {"message": f"Hello {name}"}

Clone this wiki locally