Skip to main content
A custom tool is a simulated service you build yourself. Use one when your agent depends on a service that is not in the catalog, such as your own internal API. Custom tools run in an isolated environment in Firedrill. Check the catalog first. If a catalog tool has the right operations, use it and give it your own starting data instead.

Build and upload

1

Create the package

This creates tool.json and a bundle/ folder with bundle/manifest.json. It does not overwrite an existing tool.json.
2

Describe the operations

Edit tool.json. Add only the operations your agent uses, with their real request and response shapes.
3

Write the tool

Put the tool’s code under bundle/app/ and list it in bundle/manifest.json. Use made-up data only. No real customer data, contacts or credentials.
4

Check the package

This checks the structure on your machine. Firedrill runs its own checks after upload.
5

Upload it

Zip the folder’s contents (tool.json and bundle/), then:
The upload creates a private version in your workspace. With --json, add --approve-tool-upload after a person has approved the upload. When Firedrill finishes checking it, the version appears in firedrill tools runnable.
You can also upload a package in the web app under Tools → Import tool.

tool.json

tool.json
Start from the files tools init creates. It fills in the parts of tool.json and the manifest that are easy to get wrong.

Use it

A custom tool works like a catalog tool. Add its version to a world, or start it in a tool session. The plan review shows that it runs isolated and what that costs.

Share it

Organization admins can share a tool version with other workspaces. Others can copy it into their own workspace with tools definitions copy.

Tool sessions

Try your tool on its own.

Worlds

Use it in drills.