Crow NestDocs

Publish and share

Publishing

Publishing uploads a folder of web files and makes it the app's current version. Today you publish through your AI with the MCP server; the crow command-line tool is coming.

From your AI (MCP)

Ask your AI to publish. It calls the publish tool with the built folder's files. For a new app it asks you for a name and who should see it; for an existing app it publishes a new version to the same address.

Your AI should build the project first (see the table below) and publish the output folder.

From the terminal (crow CLI, coming soon)

bash
npm install -g crow-nest
crow login            # opens crow-nest.com/device to sign in
crow publish          # in your project folder

crow publish recognizes Vite, React, Next.js, Astro, SvelteKit, Nuxt and Remix projects, runs the build on your machine, checks the output will work on Crow Nest, and publishes it. The first publish asks for a name and visibility and writes .crow.json with the app's ID, so later publishes update the same app. See CLI for every command.

What to publish

Publish the built output, the folder with index.html in it:

ProjectFolderNotes
Plain HTMLthe folder itself
Vite, AstrodistVite base must be / or ./
Create React App, SvelteKitbuildSvelteKit needs @sveltejs/adapter-static
Next.jsoutNeeds output: "export" in next.config.js
Nuxt.output/publicFrom nuxt generate
Remixbuild/clientSPA mode

Put crow.json at the root of that folder if the app uses data, files, AI, APIs, live updates or server code. Put server code in server/; it's never served to browsers.

An icon is required

Every app has an icon. It's the app's favicon in the browser tab, and how it shows on your dashboard and in your organization's app list. Publishing without one is refused with icon_required. Crow Nest looks for it in this order:

  1. The icon key in crow.json.
  2. The first <link rel="icon"> (or shortcut icon, apple-touch-icon) in the root index.html that points at a file you publish.
  3. icon.svg, favicon.svg, favicon.png, favicon.ico or icon.png at the root.

SVG, PNG, ICO and WebP work, up to 256 KB. PNG and WebP must be square and at least 32 pixels. An SVG needs a viewBox and can't hold scripts, <foreignObject>, on* attributes, javascript: links or links to other sites. If your folder has no icon, your AI can make a simple square SVG for you. Apps published before icons were required show a letter on a colored square until their next publish.

Checks on every publish

The same checks run whether you publish with MCP or the CLI:

  • No secrets in files. API keys and tokens in the app's files are refused. Use secrets instead.
  • A valid crow.json. Unknown keys and invalid rules are refused with a message that says what to fix.
  • Server code is bundled. Bare npm imports in server/ are refused; bundle them first.
  • Sizes. Up to 300 MB unzipped and 25,000 files per app; a single upload through the CLI is up to 100 MB zipped.

If a check fails, nothing is published and the previous version stays live.

Versions and rollback

Every publish is a new version. To go back, ask your AI to roll back (the rollback tool), use the dashboard, or call POST /tools/:id/rollback. Rolling back also brings back that version's server code and schedules.

A card before your first publish

A personal account needs a card on file to publish. New accounts add one when they sign up (Pay as you go charges nothing until your apps use paid services). If there isn't one, publishing answers card_required with a link to Settings, where you can add it. See Plans and billing.

Deleting an app

Ask your AI to delete it (the delete_tool tool asks you to confirm) or use the dashboard. The app stops working for everyone and its address can't be reused. Crow Nest staff can restore its data for 30 days.