Tools
A tool is a small sh or ts script, stored under ~/.adi/mono/tools/, that an agent
runs as a CLI. It’s either owned (the code lives in the store, edited in the panel) or
linked (a manifest pointing at a file elsewhere). Either way it shows up as
tools/.bin/<name> — a shim on the agent’s PATH — the moment that agent is allowed to use it.
Why it exists
Section titled “Why it exists”A step you’d otherwise repeat by hand in every prompt — a curl incantation, a query, a bit of
parsing — is a tool once you’ve done it twice. Writing it down is cheap, and it’s how a
capability outlives the run that discovered it: the next agent gets it on its PATH with its
own help text, instead of rediscovering the same shell one-liner from scratch.
List: adi-mono tools list. Panel: /tools.
adi-mono tools add my-tool --runtime sh --description "does the thing"adi-mono tools link ./scripts/deploy.sh --name deployCreating one is half the jobEnterprise interest
Section titled “Creating one is half the job”Registering a tool doesn’t hand it to anyone. An agent only sees a tool once it’s ticked on in
that agent’s own definition (bin_tools) — that’s what materializes the shim on its PATH and
folds the tool’s own help into its prompt. No tool is force-fed to every agent on the machine;
each grant is a deliberate, visible, per-agent line.
adi-mono agents save my-agent --backend harness:claude-sdk --tool my-toolSay what you doExpert area
Section titled “Say what you do”A tool describes itself to the model that runs it. At launch, ADI tries <tool> llm help, then
<tool> help, then <tool> --help — the first that exits 0 with output becomes that tool’s
entry in the agent’s system prompt. Write llm help yourself for the best result: what the tool
is for, its exact flags, one worked example. A tool that answers none of the three still appears
by name and description, so the agent knows it exists and can run it to learn the rest.
Global, or filed under a project
Section titled “Global, or filed under a project”A tool is either environment-wide or filed under a project (--project <id>),
which is the right call whenever it only makes sense for that project’s code or data — a
project-scoped tool runs in that project’s directory, against that project’s Database, and
stays off the global PATH until an agent enables it directly.