Use this release candidate
Packages are not published yet. In a checkout of the Firedrill repository, runpnpm install then pnpm build. You can now target your actual agent project:
alias firedrill='node /absolute/path/to/firedrill/packages/cli/dist/bin.js' in
your current shell, then change into your agent project and use the shorter
commands below. A reviewed packed installation can also provide that command.
After publication, a project-local CLI installation will remove this checkout step.
1. Choose tools
From your agent’s project:firedrill tool create my-tool --template stateless.
Use firedrill tool list to browse packages and firedrill tool search <text>
to narrow the catalog, or add --index <path-or-url>
to read an independently maintained index. init --index <path-or-url> uses that
index in the same setup chooser. An index is optional; it doesn’t own or certify
the packages it lists.
Install a Tool directly with firedrill tool add <source> --install: an npm package,
Git repository/subdirectory, or local package directory/archive. See
exact syntax and source pinning. No contribution to the
Firedrill repository is required. Without --install, selection remains offline.
Add tools later with firedrill tool add <installed-package> or
firedrill tool create <id>. Your project may use several tools together in one
synthetic environment. They can change shared state through declared contracts.
Neither the kernel nor the setup flow assumes a particular vendor or agent type.
2. Customize only what you need
Use the defaults, edit the repository files, ask your own coding agent, or choose Firedrill Agent during setup. The choices use the same source format.- Your coding agent: setup installs the canonical skill and a repository brief. Ask it to prepare tools for your actual agent. Detection is a hint, not proof of the interfaces your agent uses.
- Firedrill Agent: the optional
@firedrill/agentpackage uses Claude Agent SDK withANTHROPIC_API_KEYfrom your shell or secret manager. It explains source transmission and spending before starting from the wizard. No key is requested in a text prompt or written to source. If the key/package is missing, the CLI gives a resume command; manual setup still works.
source-validated, not runtime readiness.
No sign-in is required, and authenticating an optional cloud client never changes
local execution. Cloud authoring is not implemented by this OSS flow.
3. Start the environment
--no-open to keep browser launching manual, or --json for
machine-readable startup and shutdown messages. Generated files stay under the
project’s ignored .firedrill/ directory.
No drill, target or assertions are required. By default, the world file supplies
starting data and actor permissions. --scenario <id> chooses a defined variation;
--actor <id> chooses an identity if there is more than one. Ports default to
available loopback ports; use the actual connection values, not a memorized URL.
In the inspector:
- Tools: open a tool to read its inputs, outputs and implemented behavior, inspect starting data, and try an operation against the running backend. If the pack includes a UI, Open app opens its usable interface in a new tab. It shares the backend’s live state; see Tool apps.
- State & activity: see current records and recorded calls. Manual playground calls are operator checks, not agent test results.
- Connect agent: explicitly reveal/copy the actual HTTP, MCP or CLI connection settings. Tokens grant local actor access; do not commit or share them.
- Drills and results: define repeatable tasks and review their saved outcomes when you are ready. Empty results do not mean anything has passed.
4. Connect the existing agent
Use its existing configurable seam: an HTTP client’s base URL, an MCP server, a CLI adapter, or a separate test harness for native functions and SDK methods. Firedrill provides the connection values; the application must actually consume them. Exporting variables an application never reads does not redirect anything. See binding recipes and test-side mocks. Keep production logic unchanged. Do not fall back to production for unsupported calls or pretend arbitrary code can be intercepted. Vendor-specific HTTP routes must be declared by the selected tool; the generic HTTP protocol is not every vendor’s API. Run your agent as you normally would, with those test-owned connections. Its actions appear in live activity and change the synthetic records. Your model continues to choose the actions. A tool sandbox is not an agent runner.Reset and repeat
Reset restores the selected baseline, not repository files or the customer’s agent memory. The inspector requires confirmation. A full world reset restores data, clock, pending work and the baseline journal; current live activity is cleared back to that baseline. It does not delete saved drill reports. Connections remain usable. SDK callers can also reset selected tool packages; see local world control. For durable repeatable outcomes, add a target and a drill containing the task and checks.firedrill run <id> creates an isolated world and saves a report; it does
not reuse or overwrite the exploratory serve world. The same tool behavior and
starting definitions power both paths. Logs/screenshots/video are optional
capture, not prerequisites for running a drill.