GuidesTechnology

How to use opencode with Fabapp AI

Figures from September 17, 2026

Connecting opencode to your account

opencode declares MCP servers in opencode.json, marking this one as running locally:

{ "mcp": { "fabapp": { "type": "local", "command": ["npx", "-y", "@fabappai/cli", "mcp"] } } }

The command is the same as in any client; what changes is the shape, which here takes the command as a list and asks for the server's type. If your version arranges it differently, opencode's documentation is what counts.

What you need

Node 20 or newer, a Fabapp account on the Builder plan or above, and a single login:

npx @fabappai/cli login

The credential goes into the system keychain. It is never displayed, and it is revoked from one place, in the panel.

The loop

npx @fabappai/cli create "My store"
npx @fabappai/cli dev

dev assembles the app on your machine on the same template the platform publishes with, installs the dependencies and starts the local server. With it running, ask for what you would do by hand: read the definition, create the entities, write the screens. Then:

npx @fabappai/cli deploy

It uploads what you changed and publishes, in that order. Publishing before uploading would publish what is on the server, and your work would be left behind.

What is different about opencode

opencode is open and does not tie you to one model provider. That is why most people pick it, and it has a good consequence on the Fabapp side: the model cost is yours and so is the choice. You can run the whole loop on whatever model you prefer, including a local one, and the platform is not part of that bill.

What it does not change is worth saying: the tools the assistant receives are the same, because what exists is decided by the credential's permission, not by the client or the model. A weaker model does not get more tools or fewer; it just uses the ones it has less well.

What to ask for

"Read the platform documentation before writing the schema." The field types are a closed list and anything else is refused; the access rules are the only thing between an app's data and the public.

"Read the current definition before changing it." Without the schema at hand, a wrong model id answers 404 and an invented field answers 422.

"Schema first, screens after." The SDK is generated against the data model.

Frequently asked questions

Which model works best for this?
Any one that uses tools reliably. The hard part is not writing React, it is calling the right tool in the right order: read the documentation, read the definition, then write. A model that struggles with tools struggles here.
Is the model cost on Fabapp?
No. When your assistant writes the code, you pay the model. Generating in Fabapp's Studio is the other path, and that one spends your account's build credits.
Can I use a local model?
You can, and the MCP server does not care. It speaks over stdio to whatever is on the other side.
Start building for free
Read next
Command line and MCP in app builders: what changes when the project leaves the browserBest AI app builders in 2026