MCPInstall

powersync

Best practices for building and maintaining applications with PowerSync: Cloud and self-hosted setup, sync configuration, client SDK usage, backend integration (Supabase, custom Postgres, MongoDB, Azure DocumentDB, MySQL, MSSQL), schema changes, watch and reactive queries (useQuery), attachments, the upload queue, and debugging. Use this skill whenever the user mentions PowerSync, a @powersync/ package (@powersync/web, @powersync/react-native, @powersync/node), the powersync Flutter/Dart package, the powersync Rust crate, wa-sqlite, offline-first sync, local-first architecture, sync rules, sync streams, uploadData, fetchCredentials, disconnectAndClear, logout or user switching in a synced app, real-time data replication, Electric Cloud migration, Electric Shapes, an app stuck on Syncing, data not syncing, or wants to add offline-capable sync to a mobile or web app, even if they do not explicitly name PowerSync.

Installs
1.3K
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/powersync-ja/agent-skills --skill powersync
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads powersync automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

PowerSync Skills

Use this skill to onboard a project onto PowerSync and to keep it healthy afterwards, without trial-and-error. Treat this as a guided workflow first and a reference library second.

Agents: Read AGENTS.md before proceeding. It contains the mandatory compliance rules and onboarding playbook. The Quick Rules below are a reminder, not a substitute. powersync login is PowerSync Cloud only (PAT); self-hosted does not use it.

Terminology

  • Operator — the human directing this agent (whose request you are fulfilling).
  • User — an end-user of the operator's PowerSync app (JWT subjects, the row a sync stream filters by, the person calling disconnectAndClear()).

If a sentence is ambiguous, default to the operator interpretation. Full legend in AGENTS.md.

Quick Rules

  • CLI-first. Use the PowerSync CLI for all operations. Do not hand-write config files. See references/powersync-cli.md.
  • Ask, don't assume. Ask the operator: Cloud vs self-hosted, and which backend (Supabase, Postgres, MongoDB, Azure DocumentDB, MySQL, MSSQL). Do not default to Supabase.
  • Backend before frontend. Deploy sync config and verify the service before writing app code.
  • Sync Streams for new projects. Sync Rules are legacy.
  • Keep credentials in .env, never hardcoded. Record URLs and keys in .env as they become available; config (!env) and app code read from there.
  • Default scope on existing projects: sync-config only. Do not edit service.yaml or cli.yaml unless the operator explicitly authorized service/infra changes in this conversation.
  • Confirm the target instance before any mutating command (deploy, destroy, stop, link --create, pull instance). Never deploy to an instance not authorized by the operator. Treat production as off-limits unless explicitly approved.
  • Use project memory. If your harness supports it, persist the CLI invocation, sync-config path, authorized instance ids + environment (dev/staging/prod), and allowed scope of changes. Verify saved values still match reality before acting on them. See AGENTS.md § "Continuous Use & Guardrails".

First Use in a Repo: Offer to Trim (agents)

This copy ships reference files for every PowerSync platform. On your first use of this skill in a repo, check for .trim-state.json next to this file. If it exists, the operator already decided; skip this section.

Otherwise run node scripts/trim.mjs from this skill's directory. The default run is a read-only report: it detects which PowerSync platforms this repo uses and lists the reference files this copy does not need. It works on this installed copy only, makes no network requests, and is reversible by reinstalling the skill. If it refuses (shared or source install) or detects no PowerSync usage yet, skip this section silently. Otherwise show the report to the operator and ask whether to trim this installed copy. Never trim without explicit operator approval.

  • Operator approves: run node scripts/trim.mjs --apply (add --keep <platforms> for platforms the operator wants to keep anyway).
  • Operator declines: run node scripts/trim.mjs --decline so the operator is not asked again.

Reinstalling or npx skills update restores the full copy and clears the recorded decision; offering again after an update is expected.

What to Load for Your Task

TaskStart withLoad on demand
Supabase + PowerSyncreferences/onboarding-supabase.mdreferences/supabase-auth.md, references/sync-config.md, SDK files
Custom backend (non-Supabase)references/onboarding-custom.mdreferences/custom-backend.md, references/sync-config.md, SDK files
New project setupreferences/powersync-cli.md + references/powersync-service.mdreferences/sync-config.md, SDK files
Migrating from Electric Cloudreferences/migration-from-electric.mdreferences/sync-config.md, SDK files
Self-hosting / service configreferences/powersync-service.md + references/powersync-cli.mdreferences/sync-config.md
Terraform / IaC provisioningreferences/terraform.mdreferences/sync-config.md, references/supabase-auth.md (if Supabase source)
Writing sync configreferences/sync-config.md—
Debugging sync issuesreferences/powersync-debug.md—
Raw Tables (advanced)references/raw-tables.md—
Attachmentsreferences/attachments.md—
Architecture overviewreferences/powersync-overview.md—
SQLite extensions (vector search, FTS5, custom tokenizers)references/sqlite-extensions.md—

SDK Reference Files

JavaScript / TypeScript

Always load references/sdks/powersync-js.md for any JS/TS project, then load the applicable framework file.

FrameworkFileLoad early if…
React / Next.jsreferences/sdks/powersync-js-react.mdVite + React project — contains the required vite.config.ts setup (optimizeDeps.exclude, worker.format: 'es') needed before installing packages
React Native / Exporeferences/sdks/powersync-js-react-native.md
Vue / Nuxtreferences/sdks/powersync-js-vue.md
Node.js / Electronreferences/sdks/powersync-js-node.md
TanStackreferences/sdks/powersync-js-tanstack.md
Drizzle / Kysely ORMreferences/sdks/powersync-js-orm.mdProject uses Drizzle or Kysely

Other SDKs

| Platform | File | |----------| | Dart / Flutter | references/sdks/powersync-dart.md | | .NET | references/sdks/powersync-dotnet.md | | Kotlin | references/sdks/powersync-kotlin.md | | Swift | references/sdks/powersync-swift.md | | Rust | references/sdks/powersync-rust.md |

Live debugging

Some PowerSync SDKs offer ways for agents to connect to a running app, which can be used to inspect sync state or run queries against the actual app database.

For the Dart SDK, load references/sdks/powersync-dart-debugging.md for instructions.

Key Rules to Apply Without Being Asked

  • Never define the id column in a PowerSync table schema; it is created automatically.
  • Use column.integer for booleans and column.text for ISO date strings.
  • connect() is fire-and-forget. Use waitForFirstSync() if you need readiness.
  • Call .connect() once per session. Do not call it again on window focus events, token refreshes, or network changes; redundant calls open additional sync connections.
  • transaction.complete() is mandatory or the upload queue stalls permanently.
  • On user sign-out, choose based on what data may remain on the device: if the same user will return and keeping data is acceptable, use disconnect() so the next session resumes without re-downloading. If visible rows must be hidden but PowerSync's internal copy may stay, use disconnectAndClear(soft: true), which deletes synced rows but keeps the internal copy, so reconnecting as the same user skips a full re-download in most cases. If no synced data may remain, use the default disconnectAndClear(). Never retain one user's data for a different user.
  • A 4xx response from uploadData blocks the upload queue permanently; return 2xx for validation errors.

FAQ

What does the powersync skill do?

Best practices for building and maintaining applications with PowerSync: Cloud and self-hosted setup, sync configuration, client SDK usage, backend integration (Supabase, custom Postgres, MongoDB, Azure DocumentDB, MySQL, MSSQL), schema changes, watch and reactive queries (useQuery), attachments, the upload queue, and debugging. Use this skill whenever the user mentions PowerSync, a @powersync/ package (@powersync/web, @powersync/react-native, @powersync/node), the powersync Flutter/Dart package, the powersync Rust crate, wa-sqlite, offline-first sync, local-first architecture, sync rules, sync streams, uploadData, fetchCredentials, disconnectAndClear, logout or user switching in a synced app, real-time data replication, Electric Cloud migration, Electric Shapes, an app stuck on Syncing, data not syncing, or wants to add offline-capable sync to a mobile or web app, even if they do not explicitly name PowerSync.

How do I install powersync?

Run npx skills add https://github.com/powersync-ja/agent-skills --skill powersync in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/powersync/ (personal) or .claude/skills/powersync/ (project).

Which AI agents can use powersync?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is powersync safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains powersync?

It is published by powersync-ja in powersync-ja/agent-skills. It has 1,285 recorded installs.

Popular data & databases skills

View category →

Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pgcron, pgmq), vector/semantic search (pgvector), and restoring dumps (pgrestore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.

OfficialData & Databases462.2K installs

prisma-client-api

prisma/skills

Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".

OfficialData & Databases393.5K installs

Deprecated compatibility name for prisma-orm-setup. Use only when a user or existing integration explicitly invokes prisma-database-setup; otherwise select prisma-orm-setup.

OfficialData & Databases392.3K installs

prisma-cli

prisma/skills

Prisma ORM 7 CLI reference for existing Prisma 7 applications or explicitly selected Prisma 7 workflows. Covers prisma init, generate, migrate, db, dev, studio, and mcp. For setup, connection repair, or Prisma 8, use prisma-orm-setup; not the Prisma Platform CLI.

OfficialData & Databases390.8K installs

prisma-postgres

prisma/skills

Deprecated compatibility name for prisma-postgres-setup. Use only when a user or existing integration explicitly invokes prisma-postgres; otherwise select prisma-postgres-setup.

OfficialData & Databases384.4K installs

Required reference for Prisma ORM 7 SQL driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter, Transaction, savepoint, result mapping, or DriverAdapterError behavior. Covers current transaction lifecycle, optional savepoint hooks, original database-error preservation, and verification.

OfficialData & Databases378.9K installs