CLI Reference: Tools
Commands for listing, inspecting, invoking, and managing tool registration proposals.
ash tools list
List available tools, optionally filtered by what an agent can access.
ash tools list [--agent <agent-id>]
| Flag | Description |
|---|---|
--agent, -a | Agent ID; returns only tools accessible to that agent given its capabilities |
Without --agent, returns all registered tools (built-in + dynamically registered + any MCP-attached tools).
Example:
ash tools list --agent 550e8400-e29b-41d4-a716-446655440000
ash tools schema
Show the JSON input and output schemas for a tool.
ash tools schema <tool-name> [--agent <agent-id>]
| Argument/Flag | Description |
|---|---|
tool-name | Name of the tool (e.g. lm.complete, fs.read) |
--agent, -a | Agent ID for capability checks (optional for built-ins) |
Example:
ash tools schema lm.complete
ash tools schema mcp.github.list_prs --agent <agent-id>
ash tools invoke
Invoke a tool directly on behalf of an agent.
ash tools invoke <agent-id> <tool-name> <input-json>
| Argument | Description |
|---|---|
agent-id | UUID of the agent invoking the tool |
tool-name | Name of the tool |
input-json | JSON string matching the tool's input schema |
Example:
ash tools invoke <agent-id> echo '{"message": "hello"}'
ash tools invoke <agent-id> fs.read '{"path": "/home/agent/notes.txt"}'
The agent must have the matching tool.invoke:<tool-name> capability.
ash tools proposed
List pending dynamic tool registration proposals.
ash tools proposed
Dynamic tools can be proposed by agents at runtime. Each proposal must be approved by an operator before the tool is available.
ash tools approve
Approve a pending tool registration proposal.
ash tools approve <proposal-id>
The proposal ID is shown by ash tools proposed.
ash tools deny
Deny (reject) a pending tool registration proposal.
ash tools deny <proposal-id>
The proposal is discarded and the requesting agent receives a denial.