KasyKasy

kasy update

Bring the kit's improvements into an existing project without breaking your customizations.

Implementation

Via MCP (recommended): ask your assistant "update my project to the latest kit". It runs update_project and, if a file you customized gets overwritten, reconciles your change with the new code instead of dropping it. See Kasy MCP.

  1. Run:

    kasy update
  2. Check what's new, shown in the output. The CLI applies incremental patches and tries to preserve your changes in files you've customized.

Information

When to run it

  • The banner in kasy run: "Updates available"
  • After updating the CLI (curl ... | bash or npm)
  • Before publishing a major version

What's new

The post-update screen in the app (if enabled) shows a short changelog. Full details come from kasy update's output.

kasy update backend

kasy update (no target, components, core, or a feature) only touches Dart code. Server-side fixes (a new SQL migration, a fixed Edge Function/Cloud Function, an updated firestore.rules) never reach an already-created project through any of those paths.

kasy update backend

This adds whatever is missing from the project:

  • Supabase: SQL migrations and Edge Functions
  • Firebase: Cloud Functions and firestore.rules

It only adds what's missing. It never overwrites a migration or function that already exists in the project (they may have been customized, and a migration already applied to a real database is immutable). After running it, you still need to push it to the actual backend:

supabase db push
# or
firebase deploy --only functions,firestore:rules

When the kit fixes a file you already have

Since the command never overwrites, a fix published in the kit after your project was created does not arrive on its own. That used to happen silently. Now kasy update backend tells you, separating the two cases that call for different actions:

  • The kit fixed it and you never touched the file. You can pull the new version straight over, with no risk of losing anything of yours.
  • The kit fixed it and you edited it too. Copying over is not an option here: you need to look at both sides and merge by hand.

If you customized a file and the kit did not change it, no warning appears. That distinction is what keeps the warning worth reading: it only speaks up when there is real work on your side.

This works because the kit records the state of each file, in .kasy/backend-files.json, at the moment it is delivered to the project. That file is versioned with your repository, so it holds for the whole team. Projects created before this version have no record: there the command lists what differs, warns that it cannot tell who changed what, and starts recording from then on.

Feature files (screens, notifiers) still have no automatic sync to an existing project. That's the template's scope at creation time (kasy new), not kasy update's.

kasy update web

Part of web support lives in web/index.html, outside the Dart code: the scripts that clear development storage, resolve the theme before the app boots, and fix the viewport height in Safari on iPhone.

kasy update web

This command does not copy the whole file. It swaps only the kit's own script blocks and leaves everything else alone, so your title, your favicon, your splash and anything you added to index.html stay exactly as they are.

If the project was generated without web support, the command says so and does nothing.

Last updated on 08/02/2026