tools

A command-line catalogue and runner for external app actions, such as sending a Slack message, opening a Linear issue, or reading a Google Sheet. Composio handles the app authorizations.

In plain words
What is it for?
Listing or searching tools, checking connection status, connecting or disconnecting apps, refreshing tools, and calling an external action with arguments.
Why use it?
It lets workflows discover available app actions and shows whether the required app connection is authorized before running them.

Command

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/px0-ai/px0/tools
Clone the repo
git clone --depth 1 https://github.com/px0-ai/px0
Per session 0 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,522 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.02522
Opus 5 $0.00000 $0.01261
Sonnet 5 $0.00000 $0.00504
Haiku 4.5 $0.00000 $0.00252

Measured 3d ago against content hash a9540b4e86c5, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

tools scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

docs/commands/tools.md · 345 lines

How it starts

The opening of the file, as written. The whole thing — 345 lines — stays where its author put it; the contents beside it link to each section on GitHub.

px0 tools

Tools are the external app actions a workflow may call — send a Slack message, open a Linear issue, read a Google Sheet. Every toolkit currently routes through Composio, which brokers the authorization.

Implemented by px0/tools.py (the catalogue and execution) and px0/connect.py (authorization).

px0 tools list [service] [--status] [--json]
px0 tools search [query] [--toolkit SLUG] [--toolkits] [--limit N] [--json]
px0 tools call <tool> [--arg KEY=VALUE]... [--yes] [--json]
px0 tools connect <app> [--reconnect]
px0 tools disconnect <app> [--yes]
px0 tools refresh [tool...] [--forget]

px0 tools list

What workflows can call, grouped by service.

service

Narrow the listing to one service.

  • Input: a service slug, for example github, slack, gmail.
  • Default: omit it to list every service px0 knows about.
px0 tools list
px0 tools list github

--status

Also show whether each tool's app is authorized.

  • Input: flag, no value. Default off.
  • Costs one API call per app, which is why it is opt-in rather than always on.

Statuses are reported in terms of what to do about them:

Status Meaning
not authorized No connection yet
consent pending Authorization started but not completed in the browser
authorization failed The attempt was rejected; start again
connected Ready to use
px0 tools list --status
px0 tools list slack --status

Authorization also happens on demand: px0 workflows new authorizes what the job needs, and a tool whose app is not connected prints its own authorization URL on the first run. px0 tools connect is for doing it deliberately. To supply or replace the Composio key, use px0 config composio.

--json

Machine-readable output: one object per tool, with status included when --status is also given.

  • Input: flag, no value. Default off.
px0 tools list --json | jq '.[] | select(.is_write)'

Read the full file on GitHub · 345 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 345 lines · 0 tokens per session scan A a9540b4e86c5

Subscribe to this mod's changes

tools is a command published in the GitHub repository px0-ai/px0 (241 stars, last pushed 6d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 2,522 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.