Skip to content

brew-ai Running Functionals in Chat

brew-ai can run a published functional for you without leaving the chat panel: pick one, fill in its inputs on an editable run card, and it runs asynchronously while you keep working — then the assistant reads back the results in natural language.

Type /execute-functional in the composer, or pick Execute a functional from the intent chips. brew-ai pre-fetches the catalog of published functionals, then reopens the @ mention picker — headed “Run a functional” — scoped to that catalog instead of the current model’s inputs, outputs, and components. Pick one to load its full definition and open the run card.

brew-ai can also open the same run card on its own initiative, mid-conversation, when it decides running a functional would help answer what you asked — without you typing the slash command. In that case the card carries a short summary of why the assistant proposed the run and may arrive with some inputs already filled in. Approving a self-proposed run hands the run off to the server instead of submitting it from your browser, so the result comes back as part of the assistant’s own reply rather than as a separate results card.

The run card opens inline in the chat, titled “▶ Run <functional name>”. It has one field per input:

  • Scalar and list inputs get the same typed input editor used in the canvas properties panel, matched to the input’s CV type. Required inputs are marked with *.
  • Table inputs get a CSV file picker labeled <field name> (CSV). The Run button stays disabled until every table input has a file attached.
The editable run card for a functional invoked via /execute-functional, showing scalar input fields and a CSV upload control

A functional with table/CSV inputs can’t be launched from a self-proposed (AI-initiated) run — that path submits the run as a JSON payload with no way to attach a file, so the card disables Run and tells you to open the functional in the builder instead. Runs started from the picker aren’t affected; they submit inputs and CSV files together and can use table inputs normally.

While a run is in flight, the button reads “Running…” and the card can’t be resubmitted, but the rest of the chat stays usable. Reject closes the card without starting a run.

When a picker-started run finishes, the run card is replaced by a results card in the thread, headed “✓ Ran <functional name>” (or “⚠️” if it failed) with the run duration. Each output is shown by type: table outputs show the row count with the same view/download actions as the canvas properties panel, file outputs get Open/Download links, and scalar outputs show the raw value. Any warnings the run returned appear underneath.

Right after the results card appears, brew-ai automatically sends itself a summary of the outputs and asks for a brief narration — so the assistant’s next reply in the thread explains what the run produced, without you having to ask.