Publishing a Tool
Publishing a Tool and publishing an App are the same flow. You configure which inputs and outputs to expose in the app preview, then click Publish. Whoever opens the result gets either the App view or a Tool node in their canvas, depending on context.- Select the nodes you want to include in the Tool, then click the puzzle piece icon to open the app preview:
- For a single node, the puzzle piece appears next to the node’s settings bar
- For multiple nodes, it appears in the selection toolbar at the top of the canvas
- Choose which inputs and outputs to publish. The preview has an Inputs side and an Outputs side — switch between them with the toggle in the toolbar at the bottom of the panel:
- Use Add input parameter to tool / Add output parameter to tool to select parameters to expose
- Hover over a published parameter and click the X to remove it
- Click Publish at the bottom-left. A confirmation opens where you set a thumbnail and description and see a credit-per-run estimate; click Publish there to confirm. Subsequent publishes increment the version (Publish v2, v3, and so on).

Adding parameter descriptions
Click a published parameter’s label in the app preview (or on the canvas) to expand and add a description. Descriptions are essential when the Tool will be used by an agent, the agent reads them to decide what to pass in. They’re also useful for your future self: you will forget what your inputs do.Adding the Tool to a Library
To make the Tool show up in the node picker and reusable across workflows, add it to a library.Published Tools are saved as workflows. You can browse and organise them from the Workflows panel just like any other Runchat.
Writing a good description
The description on a Tool is what the agent reads when deciding whether to use it. Treat it like you’re describing the Tool to a smart assistant who has no context. Answer:- What does it take in?
- What does it give back?
- When would you reach for it?
Custom UI nodes (Client nodes)
When you publish a workflow as a Tool, the Tool’s UI is determined by the published parameters. If you need full control over the input or output UI, you can build a Client node using arbitrary React code. Client nodes are useful for interactions that need to happen in the browser rather than on the server, for example:- Painting masks on an image
- Compositing multiple images
- Editing audio or trimming video
- Custom drawing or sketching tools
- Interactive parameter pickers
Next steps
- Tools, Apps, and Libraries: how Tools fit alongside Apps and Libraries
- Agent Tools: make your Tool callable by the chat agent
- App View: the same publish flow viewed through the App lens