№ 00 — toolbox for llms

your llm knows gh for github,aws for aws.oto covers the long tail.

one unified cli for every saas that never shipped one. notion, linkedin, pappers, folk, hunter, google workspace — fifteen connectors and counting, ready to call from bash by any agent.

№ 01 — the argument

why cli over mcp.

mcp injects each api's full schema into the model's context. at the scale of an autonomous agent, cost and reliability collapse.

read the full benchmarks
mcp
4–32×
tokens vs cli
72%
tool-use reliability
oto · cli
~80
tokens per call
100%
bash reliability

public 2025 benchmarks — native composability via pipes, jq, xargs. works with claude code, codex, or any agentic framework.

№ 02 — anatomy

three files. one connector.

i.

a cli command

auto-discovered. drop a file in commands/, it shows up in oto --help. json output, parsable by any llm.

$ oto notion pages search "Q4"
{ "results": [...], "next_cursor": null }
$ oto linkedin scrape profile --url ...
from oto.tools.sirene import SireneClient
client = SireneClient(api_key="…")
results = client.search("otomata")
ii.

a python client

importable from any script. the code the cli uses is the code you use.

iii.

a skill.md

the connector's manual, written for the llm. a few hundred tokens. enabled via oto skills enable.

# SKILL.md
## when to use this skill
search french companies by SIREN/SIRET.
## commands
- oto sirene search ‹query›

№ 03 — catalog

what oto brings to the table.

fifteen connectors in production, grouped by access mode.

№ 04 — get started

three lines to get going.

terminal
install
$ pipx install oto-cli
$ oto skills enable --all
$ oto google drive list --folder-id xxx
python
from oto.tools.hunter import HunterClient
client = HunterClient(api_key="…")
results = client.domain_search("otomata.tech")

oto is built by alexis laporte, independent ai engineer. open source · mit license.