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>]
FlagDescription
--agent, -aAgent 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/FlagDescription
tool-nameName of the tool (e.g. lm.complete, fs.read)
--agent, -aAgent 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>
ArgumentDescription
agent-idUUID of the agent invoking the tool
tool-nameName of the tool
input-jsonJSON 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.