PluginBench
Skill
Fail
Audit score 45

powersync

powersync-ja/agent-skills

How to install powersync

npx skills add https://github.com/powersync-ja/agent-skills --skill powersync
Claude Code
Cursor
Windsurf
Cline
Full instructions (SKILL.md)

Source of truth, from powersync-ja/agent-skills.


name: powersync description: Guided onboarding and best practices for building applications with PowerSync — Cloud and self-hosted setup, sync configuration, client SDK usage, backend integration (Supabase, custom Postgres, MongoDB, MySQL, MSSQL), and debugging. Use this skill whenever the user mentions PowerSync, offline-first sync, local-first architecture, sync rules, sync streams, uploadData, fetchCredentials, real-time data replication, or wants to add offline-capable sync to a mobile or web app — even if they don't explicitly name PowerSync. license: MIT compatibility: Works with any skills-compatible agent. Some references include CLI commands requiring the @powersync/cli package. metadata: author: powersync version: "1.2.0" organization: PowerSync tags: powersync, offline-first, local-first, sync-streams, sqlite, replication, uploadData, fetchCredentials, service-config, sync-config, cloud, cli, debugging, supabase, postgres, mongodb, mysql

PowerSync Skills

Use this skill to onboard a project onto PowerSync 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, 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.
  • Persist credentials immediately. Write all URLs and keys to .env as soon as they are available.
  • 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".

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
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 |

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.
  • transaction.complete() is mandatory or the upload queue stalls permanently.
  • disconnectAndClear() is required on logout or user switch when local data must be wiped.
  • A 4xx response from uploadData blocks the upload queue permanently; return 2xx for validation errors.
powersync — AI Skill | PluginBench