Setup Guide

Add over-the-air code-push to any Flutter app in minutes. No App Store review for Dart code changes.

Prerequisites
A Flutter app (Android or iOS) with the Flutter SDK installed
Dart SDK installed (dart --version should work in your terminal)
A QuickPatch account - sign in with Google to create one instantly
Platforms: the CLI runs on macOS, Linux, and Windows. Android releases work on all three; iOS releases require macOS (Apple toolchain).

Get your API key

Sign in with Google on the dashboard. An API key (qp_api_…) is issued automatically - find it in the API Keys tab. You'll paste it into the CLI in step 2.

Part 1 - New Flutter app setup
1
Install the QuickPatch CLI

Pick whichever you prefer - both install the same CLI.

Option A - pub.dev (requires the Dart SDK)

dart pub global activate quickpatch_cli

Make sure ~/.pub-cache/bin is on your PATH (Dart usually adds this automatically). Open a new terminal, then run quickpatch --version to confirm.

Option B - standalone installer (macOS / Linux)

curl -fsSL https://raw.githubusercontent.com/letssuhail/quickpatch-cli/main/install/install.sh | bash

Windows (PowerShell): irm https://raw.githubusercontent.com/letssuhail/quickpatch-cli/main/install/install.ps1 | iex. Installs into ~/.quickpatch; add ~/.quickpatch/bin to your PATH (the installer prints the line). Update later with quickpatch upgrade.

Prefer a pre-built binary? Download it from the GitHub Releases page.

2
Log in and point the CLI at your server

Authenticate with your API key from the dashboard:

quickpatch login

Paste your qp_api_… key when prompted. Credentials are saved to disk so you only need to do this once per machine.

Then set your server URL - macOS / Linux

export QUICKPATCH_HOSTED_URL="https://api.quickpatch.dev"

Add to ~/.zshrc or ~/.bashrc to make it permanent, then source ~/.zshrc.

Windows (PowerShell)

$env:QUICKPATCH_HOSTED_URL = "https://api.quickpatch.dev"

To make it permanent: setx QUICKPATCH_HOSTED_URL "https://api.quickpatch.dev" (then reopen the terminal).

QUICKPATCH_HOSTED_URL is reused automatically for engine downloads - no other URL needed.
3
Initialize QuickPatch in your app

Inside your Flutter project folder:

cd your_flutter_app/
quickpatch init

Registers the app on your server and writes quickpatch.yaml (app ID + server URL). Commit this file.

base_url is filled in automatically from QUICKPATCH_HOSTED_URL - it tells your users' apps where to fetch patches.

4
(Optional) Control updates from Dart
Most apps don't need this. With auto_update: true (the default in quickpatch.yaml), patches download in the background and apply on the next launch automatically - no package and no Dart code. Skip this step unless you want manual control.

Add quickpatch_code_push only when you want to drive updates from your own code - for example to:

Show a "downloading update…" indicator, or a "restart to apply" prompt
Check / apply an update at a specific moment (e.g. a Settings screen), not only at launch
Show the current patch number on an About / debug screen
Turn auto-update off (auto_update: false) and manage everything yourself

If you do want it, add the package:

flutter pub add quickpatch_code_push
import 'package:quickpatch_code_push/quickpatch_code_push.dart';

final _updater = QuickPatchUpdater();

void main() async {
  // Manual control - only needed if you added the package.
  final status = await _updater.checkForUpdate();
  if (status == UpdateStatus.outdated) {
    await _updater.update();
  }

  runApp(const MyApp());
}