User Guide
Advanced

Build a workbench with an outside agent

Use the official workbench template to have Claude Code, Codex, or a similar agent write a workbench on your computer, preview it locally, then package it and import it into Floatboat.

You can build a workbench by chatting in Floatboat. If you already write code with Claude Code or Codex, there's another way: grab the official template, build on your own machine, package the result as a single file, import it into Floatboat, and list it on the marketplace.

You'll need a terminal for this. Never used one? That's fine. Start with Workbench and let the agent inside Floatboat build it for you.

What you need

Get these installed first:

  • Node.js 22 (22.16 or a later 22.x release) and pnpm 10.22.
  • Git and a GitHub account.
  • Claude Code or Codex, or another agent that works in the terminal.

If you want to try Floatboat features like calling models or reading your calendar while you build, open Floatboat and sign in too. For UI and local data alone, you can leave it closed.

Start from the template

Three steps and you'll have a workbench project of your own.

Create a repository from the template

Open floatboat-workbench-template, click Use this template to make your own repository, and clone it to your computer.

Install dependencies

In the repository folder, run:

pnpm install --frozen-lockfile --ignore-scripts

Those two flags mean: install exactly the versions the template has locked, and don't run the packages' own install scripts. Copy it as is.

Name your workbench

pnpm workbench:init -- --registry shop-inventory --name "Shop inventory" --description "Track stock and sales, and get reminded to restock"

--registry is the registry name, your workbench's fixed name on the marketplace. Once it's listed, it can't change, so pick it now. It can only use lowercase letters, digits, -, and _.

Let the agent write it

The template comes with instructions and a skill written for agents. The agent follows them to write the code, and keeps the docs and manifest up to date as it goes.

  • Claude Code: start it in the repository folder, type /floatboat-workbench, and describe what you want.
  • Codex: type $floatboat-workbench, and describe what you want.

A shop owner might say: "Build a shop inventory workbench. Let me log deliveries and daily sales, highlight anything under 10 in stock, and make a restock list every Monday." Swap in your own job. A teacher could track homework, and a freelancer could keep quotes and payments.

Your app code lives in app/. The workbench's name, version, and the Floatboat capabilities it uses go in a manifest file, app/manifest.json. The agent keeps that in step with the code.

Preview it locally

Once there's something to look at, run these in order:

pnpm workbench:check
pnpm test
pnpm dev

The first two check and test your code. The third starts the preview. pnpm dev prints a local address; open it in your browser to see the workbench.

From then on, each time you save, it checks your changes first and only reloads when they pass. If a check fails, the last working version stays up, so the page doesn't break.

When Floatboat is open and signed in, pnpm dev connects to it on its own, and you can try model, calendar, and automation calls right away. If Floatboat isn't running, those calls say they're not connected, and everything else still works.

List the capabilities you use

Put the Floatboat capabilities your workbench needs under capabilities in the manifest, such as llm, calendar, or automation.

Listing one doesn't guarantee access. Floatboat checks again against the signed-in account on every call. Every capability and how to use it is in How workbenches work.

Package it and import it into Floatboat

Happy with it? Turn it into a single file and load it into Floatboat.

Package

pnpm run package

This creates a .fbworkbench file in artifacts/.

Watch the command: it's pnpm run package, not pnpm pack. They look alike, but Floatboat won't accept the file pnpm pack makes.

Test data from your previews isn't included by default.

Import it in Floatboat

Open Floatboat, click My in the sidebar, switch to Workbenches, click Import workbench, and pick your .fbworkbench file.

The My page in Floatboat, with Shop inventory and Customer follow-ups cards under the Workbenches tab. Number 2 outlines the Import workbench button at the top right, next to Import from share code and Create workbench. Number 1 outlines the store icon at the bottom of the Shop inventory card, which is what you click to list it.

Floatboat then installs the dependencies, builds it, and creates a new space just for it. This takes a little while. When it's done, follow the prompts to connect any files or services it needs.

List it on the marketplace

An imported workbench can be listed on the Workbench marketplace, just like one you built inside Floatboat. Anyone can list for free. To charge for it, join the Creator Plan first.

Ship a new version

When you're ready for a new version:

  1. Make your changes in the template repository.
  2. Raise version in app/manifest.json, for example from 1.0.0 to 1.1.0.
  3. Note what changed in changelog.
  4. Package again.

A version number that's been listed can't be used again, so each new submission needs a higher one.

Something not working?

pnpm install or the build fails. Run node -v to check your version. The template needs Node 22.x (22.16 or later). Version 23 and above aren't supported, so switch back to 22 and try again.

Floatboat says the file isn't valid when you import. Make sure you picked the .fbworkbench file that pnpm run package created in artifacts/, not one from pnpm pack.

Model calls in the workbench say they're not connected. Open Floatboat, sign in, and refresh the preview. If you have several copies of Floatboat running, follow docs/platform.md in the template to pick the one to connect to.

A connector call the agent wrote doesn't work. Usually the action name is a guess. Have the agent run pnpm workbench:catalog to look up the exact name first.

What's next

On this page