Selecting capabilities

Choose a preset for a standard project, Custom for an interactive selection, or --caps when you already know the components you need.

Use a preset

Use a preset

mistral init my-app --preset app
mistral init my-workflow --preset workflow

The app preset creates a web frontend, a Python API, a Postgres database, and a workflow worker. The workflow preset creates a workflow project. Presets select the components without asking you to choose each one.

Select interactively

Select interactively

mistral init my-app

Choose Custom when prompted. The CLI groups capabilities by component type, such as frontend, backend, or database, and shows the complete selection before installing it. Required components and dependencies are included automatically.

mistral apps init my-app skips the first question and opens the component pickers directly.

Specify capabilities

Specify capabilities

List the available IDs, then pass a comma-separated selection:

mistral apps capability list
mistral init my-app --caps tanstack-start,fastapi

You can't combine --preset and --caps. Use the IDs printed by capability list, such as mistralai-capabilities/backend/fastapi, or the short form, such as fastapi, when it's unambiguous. If you leave out apps, the CLI adds it, because it's the only deployment capability. The CLI reports incompatible or missing components rather than silently substituting them.

Change an existing app

Change an existing app

Tip

Commit your work before you change the selection. You can then review the diff and restore your files if needed.

Run these commands from the app directory:

mistral apps capability add workflows
mistral apps capability remove workflows
mistral apps capability select --caps tanstack-start,fastapi,postgres,apps

add extends the selection. remove drops a selected capability, but not a required component or a dependency another capability still needs. select replaces the complete selected set, so include every component you want to keep.

Removing a capability doesn't delete its module from mistral.json. select warns about modules that are no longer used; remove doesn't. If you no longer need a module, delete its entry yourself.

Update capabilities

Update capabilities

To re-pin installed capabilities to their declared versions and refresh their generated files, run:

mistral apps capability update

The CLI reports the update plan and relevant changelog entries. Review modified files and run your app's checks before deploying. To update one capability to a specific version, pass its ID and version:

mistral apps capability update CAPABILITY_ID VERSION

Replace the placeholders with an installed capability ID and the version you want. For flags, see the CLI reference.