tools command group creates, edits, and configures Tool blocks. A Tool has a runtime (HTTP or inline), typed parameters, and optional HTTP headers.
Commands
tools create
--name <n>(required): how the Agent refers to it.--description <d>: the single-most-important field. The Agent uses this to decide when to call the tool. Write clearly.--runtime <json>: the runtime spec (HTTP or inline).--params <json>: array of parameters. Seenora schema showfor the exact shape.--x <n>,--y <n>: canvas position.
tools update
Update flags: grouped
Identity--set-name <n>--set-description <d>--set-icon <name>
--set-idempotent on|off: is calling twice the same as calling once?--set-required on|off: Agent must call this at least once per run.--set-approval on|off: require approval before each call.--set-max-turns <n>: cap how many times the Agent can call this in one run.--set-retry-safe on|off: the tool is safe to retry on transient failure (server retries automatically when on).--set-dedupe-key-template <template>: per-call dedupe key template. Renders with{{param}}interpolation; two calls with the same rendered key coalesce into one execution. Use for idempotent side effects that carry no natural id.
--set-runtime-kind http|inline: switch runtime.--set-http-method <m>:GET/POST/PATCH/PUT/DELETE.--set-http-url <url>.--set-http-auth-kind <k>:none/api_key/bearer.--set-http-auth-header <name>: forapi_keyauth, the header name. Ignored forbearer.--set-http-auth-value <v>: auth value (literal orsecrets://ref).
--set-inline-lang <lang>:javascript/python/sql.--set-inline-code <text>: inline code.--set-inline-code-file <path>: code from file (replaces--set-inline-code).--set-inline-database-url <url>: for SQL: database connection string. Acceptssecrets://ref.
--verify: for SQL tools, tests the DB connection and marksconnected=trueon success.
--set-x <n>,--set-y <n>,--set-width <n>.
--patch <json>: arbitrary JSON merge.
--set-* flags deep-merge into the existing runtime object, so you can change just one field without re-specifying the whole runtime.
tools edit
$EDITOR. Save to apply.
tools lock / tools unlock
{"locked": false} ceremony. Same lock semantics apply across agents, tools, actions, and triggers.
tools verify-db
runtime.connected=true so the Tool shows as green in the app.
Failures print the exact error (bad URL, missing driver, auth failure).
tools params: declared inputs
Parameters are the typed inputs the Agent picks values for. Each param has a name, type, source (Agent-picked or fixed), location, and description.
List
Add
--name <n>(required).--type <t>(required):string/integer/number/float/boolean/array/object.--description <d>: read by the Agent to choose values.--required: no default; Agent must supply.--location <loc>:url/query/body/header. Where the value goes in the HTTP request.--source <src>:llm(Agent picks) orfixed.--fixed-value <v>: forsource=fixed.
Update
Remove & reorder
reorder requires a full permutation (every param exactly once).
tools headers: HTTP headers
For HTTP Tools, headers are stored on the runtime.
List / add / remove
secrets://<ref> (references a workspace secret) or a plain string (stored inline).
For interactive secret entry:
Recipes
Migrate a Tool from one URL to another
Rotate an API key across all Tools using it
secrets://api_key and rotate the underlying secret once.
Freeze a Tool’s arguments
Turn Agent-picked args into fixed ones for a specific rollout:"customer_requested" regardless of Agent output.