Quickstart
One command, a Chatfuel token, and the app running on your machine.
Node 20.18.1 or newer is the only prerequisite. There is nothing to install first and nothing to clone — the wizard installs the app's dependencies itself, and offers to install a coding agent if you do not have one.
Check your Node
node --versionAnything below 20.18.1 and the launcher stops before it loads anything, printing the version
you have and the install command for your platform.
Run the wizard
npx @chatfuel/wizardAnswer the four questions
Which modules you want. Thirteen exist. core comes with all of them; the other twelve are
livechat, contacts, deals, bookings, knowledge-base, automations, coworker,
flow-builder, ads-optimization, publishing, auth and admin — the same ids --modules
takes. auth and admin are offered in the picker but never picked for you: both need
credentials the wizard cannot invent, so a --yes run leaves them out unless you name them.
A Chatfuel token. Take one from
the token page. The wizard checks it
against the API before going any further, and writes it to .env with mode 0600.
Which workspace the app opens on. Not which bot. The app lists your workspaces and their bots itself at runtime, so a bot you create next month is in the picker without a re-run.
What the app is called, and its logo. The name is the browser tab, the top bar and the
sign-in screen; the image becomes the tab icon and the mark beside it. VITE_APP_LOGO points at
a file in public/, so replacing logo.svg later is all a change of mark takes. Skip either
and the app still ships with a name and a real logo.
Then it writes the project, installs the dependencies, offers to deploy, and installs one skill per module where your coding agent reads them.
Check that it works
/ opens the first installed module, with the rest grouped in the sidebar beside it. With
exactly one module installed there is no sidebar at all.
In the top bar, a picker listing every workspace the token's account owns and the bots inside each. That list is read live from the API, so seeing it is proof the token reached Chatfuel through the proxy. No bot is named anywhere in the code.
Click into a second module and watch the address bar. It reads /<moduleId>, and a module with
more than one screen adds its own segment — /contacts/fields, /bookings/calendar?mode=week.
Reload that address: these are real paths, not fragments, and the dev server answers an unknown
one with index.html, so it comes back on the same screen.
A Chatfuel token can read and change every bot in an account, so it never reaches the browser.
Calls go to a same-origin /chatfuel/* path and the proxy attaches the token server-side.
Where to go next
What the wizard writes
The tree on disk, and why the design system and the API client are vendored.
Your first change
Add a view to a module, end to end, and check it in the browser.
Deploy
Vercel, your own Node server, or the Dockerfile that comes with it.
Other ways to run the wizard:
npx @chatfuel/wizard --embed # add the modules to a project you already have
npx @chatfuel/wizard doctor # what the wizard can see before it asks anything
npx @chatfuel/wizard auth # replace the stored Chatfuel token