How to use Zed with Fabapp AI
Connecting Zed to your account
In Zed, MCP servers are context servers, declared in the editor's settings.json. The command is the usual one:
{ "context_servers": { "fabapp": { "command": { "path": "npx", "args": ["-y", "@fabappai/cli", "mcp"] } } } }
If your version of Zed arranges that block differently, its documentation is what counts. The part that is ours, and
does not change, is npx -y @fabappai/cli mcp.
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 Zed
Zed is fast, and people who pick it usually pick it for that. The gain here is that the short loop is genuinely
short: dev runs in the integrated terminal, the app reloads on save, and the agent panel sits alongside without
weighing anything down.
What is worth adjusting is the expectation of what is fast. Editing a screen and seeing it in the browser is
instant. Publishing is not: deploy uploads the files and the platform builds the app for real, with dependency
installation and a build. That is why dev exists. Publish when it is ready, not on every change.
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.