Prerequisites
- A Xano account (free tier works)
- Node.js 18 or later
- VS Code
- Git
Authenticate
Log in with your Xano account:Your browser will open for authentication. After logging in, select your instance and name your profile.
For self-hosted or beta environments, add
-o https://your-environment-url.com. See Get Started for details.Create a workspace
Create a new workspace for your project:Note the workspace ID from the output, then add it to your profile:
Set up your local project
Pull the empty workspace scaffold to create your local directory structure:This creates the directory structure where you’ll add your XanoScript files.
We recommend initializing a Git repository in your workspace folder so you can track and review the details of what changed before each push.
Open in VS Code and install the extension
Open the workspace folder in VS Code, then install the XanoScript Language Server extension. This provides syntax highlighting, inline validation, and autocomplete for
.xs files — without it, they appear as plain text with no error feedback.Install the Developer MCP
The Developer MCP gives AI tools direct access to XanoScript documentation and real-time code validation, significantly improving AI-generated XanoScript quality.In the VS Code terminal, add the Developer MCP to your project:
Build with AI
This is where the power of local XanoScript development shines. Use Claude Code with the Developer MCP to generate your backend — the MCP provides XanoScript documentation and real-time validation directly to your AI assistant.Ask Claude Code to generate what you need. For example:
Create a users table with name, email, and role fields, a signup API endpoint, and a login API endpoint.Claude Code will write the XanoScript files directly into your local workspace.You can also write XanoScript by hand or paste the XanoScript documentation into your AI tool’s context and ask it to generate
.xs files. Place them in the appropriate subdirectories (table/, api/, function/, task/).Review your changes
Before pushing, review what changed against your local repository. Pay attention to any table schema changes — renamed or removed columns can affect existing data. The CLI is safe by default: objects deleted locally won’t be removed from your Xano workspace unless you explicitly use the
--delete flag. If any changes would result in data loss, the push preview will call them out as destructive operations before you confirm. See Push & Pull for a full breakdown.Preview the push
Before pushing, run a dry run to see exactly what will be created, updated, or changed — without applying anything:Review the output carefully, especially any destructive operations or schema changes.
Push to Xano
When you’re satisfied with the preview, head to your terminal and push yourself — we recommend not asking the AI agent to push for you, so you stay in control of what gets applied:The CLI shows the same preview again and prompts for confirmation before applying. Your tables, APIs, functions, and tasks are now live in Xano.
See Push & Pull for a full breakdown of what each section of the preview means.

Verify in Xano
Open your workspace in the Xano dashboard to see your resources. You can test APIs directly from the dashboard, view your database tables, and make visual adjustments.Any changes you make visually in Xano can be pulled back down:
Recommended Workflow
Once you’re up and running, a typical development cycle looks like this:- Pull the latest —
xano workspace pull ./my-new-app - Edit locally — Write or generate XanoScript with Claude Code and the Developer MCP
- Test — Run your workflow and unit tests with the CLI before pushing
- Review with Git — Run
git diffto inspect exactly what changed before pushing - Dry run —
xano workspace push ./my-new-app --dry-run— preview the server-side impact without applying anything - Push —
xano workspace push ./my-new-app— review the preview and confirm - Verify in Xano — Check your APIs and resources in the Xano dashboard
- Iterate — Pull any Xano browser-edited changes, edit locally, and push again