Skip to content

Tools

The tools command group lets you discover and execute the backend tools registered with Hutly’s tool registry. These are the same configurable tools that agents and workflows invoke at runtime: each tool has a config schema (how the tool factory is built) and produces one or more instances, each with its own arguments schema and output schema.

A typical flow is: tools list to find a tool code, tools describe to read its config schema and resolve instances, then tools execute to call a single instance.

All tools subcommands operate against the organization resolved from your configuration (HUTLY_ORG_ID / .hutlyrc.yaml) and authenticate with your HUTLY_API_KEY. Your key’s role within that organization governs which tools you can list and execute — tools gated to higher roles return an error from the registry.

Output is JSON by default. The --json flag is accepted everywhere as a no-op for compatibility, and --pretty pretty-prints the JSON.

tools list

Lists configurable tool codes alongside their config schemas. By default, workflow-only tools are excluded.

hutly tools list
hutly tools list --pretty
hutly tools list --include-workflow-tools
Option Description
--include-workflow-tools Include tools that are workflow-only (excluded by default)
--pretty Pretty-print JSON

tools describe

Describes a single tool by its toolCode. Returns the tool’s config schema. When you also pass --config (a JSON object matching that config schema), the response additionally includes the resolved tool instances — each with its name, description, parameters (arguments) schema, and output schema. Use those instance names with tools execute.

# Config schema only
hutly tools describe knowledgebase-search --pretty

# Resolve instances by supplying a config
hutly tools describe knowledgebase-search \
  --config '{"knowledgebaseIds":["kb_123"]}' \
  --pretty
Option Description
--config <json> JSON object matching the tool’s config schema. When supplied, the response includes per-instance parameters/output schemas
--pretty Pretty-print JSON

tools execute

Executes a single tool instance. The tool factory is built from --config, the named instance is picked, and its function is called with --args. Both --config and --args are required and must be valid JSON objects — discover their shapes with tools describe <toolCode> (and tools describe <toolCode> --config … for the instance arguments schema).

hutly tools execute knowledgebase-search search \
  --config '{"knowledgebaseIds":["kb_123"]}' \
  --args '{"query":"notice periods for fixed-term leases"}' \
  --pretty

If the instance name does not exist, or the arguments fail schema validation, the response reports the failure — including availableInstances and/or validationIssues to correct the call.

Some tools key their behaviour on a runtime context (chat-mode tools resolve a conversation; workflow-mode tools resolve a workflow execution). When run inside a Hutly sandbox, this context is read from the HUTLY_* environment variables automatically. The flags below override those values for a single call — useful when driving the CLI directly or from a workflow bash node.

Option Description
--config <json> Required. JSON object matching the tool’s config schema
--args <json> Required. JSON object matching the picked instance’s parameters schema
--conversation-id <id> Override HUTLY_CONVERSATION_ID (chat-mode tools key sessions on this)
--action-chain-run-id <id> Override HUTLY_ACTION_CHAIN_RUN_ID
--workflow-execution-id <id> Override HUTLY_WORKFLOW_EXECUTION_ID (workflow-mode tools read this)
--message-user-id <id> Override HUTLY_MESSAGE_USER_ID
--creator-user-id <id> Override HUTLY_CREATOR_USER_ID
--pretty Pretty-print JSON