Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
ed348e3
basic scaffolding
stevensJourney Feb 2, 2026
2e6fa58
confg templates
stevensJourney Feb 3, 2026
73763b2
Schema packages. Improve templates. WIP link commands.
stevensJourney Feb 3, 2026
f8021ca
wip: linking
stevensJourney Feb 3, 2026
16352ad
unify config types
stevensJourney Feb 3, 2026
63eebde
Command structures and implement deploy command
stevensJourney Feb 4, 2026
ec8d323
Add destroy and stop command implementation
stevensJourney Feb 4, 2026
77cc382
fetch and pull cloud config commands
stevensJourney Feb 4, 2026
a066fd7
Improvements from testing deploy workflow
stevensJourney Feb 5, 2026
0def649
Add multiple options for specifying cloud instance
stevensJourney Feb 5, 2026
23ad67e
Various command improvements. cloud Token and schema generation comma…
stevensJourney Feb 5, 2026
5d9a090
wip: shared commands
stevensJourney Feb 6, 2026
14d3e51
Help groups for CLI command flags. Unify linking resolve patterns. Up…
stevensJourney Feb 6, 2026
51bd353
validation commands
stevensJourney Feb 6, 2026
5a916c1
update docs
stevensJourney Feb 6, 2026
874e4d4
Support for naming and creating cloud instances
stevensJourney Feb 6, 2026
78fcb42
cleanup token input
stevensJourney Feb 6, 2026
321591c
update commands' descriptions
stevensJourney Feb 6, 2026
4d76397
strategic command shuffle
stevensJourney Feb 6, 2026
873d463
cli plugin framework. Docker deploy for self hosting example plugin.
stevensJourney Feb 6, 2026
a13c9f8
monorepo structure
stevensJourney Feb 6, 2026
69c3250
add usage docs for docker
stevensJourney Feb 6, 2026
5ec0fe3
wip: update docker templates
stevensJourney Feb 9, 2026
8a70580
docker plugin templating improvements
stevensJourney Feb 9, 2026
40a92b4
update workspace layout
stevensJourney Feb 9, 2026
78cc6d3
cleanup templates
stevensJourney Feb 9, 2026
35d2983
update readme
stevensJourney Feb 9, 2026
2798d21
formatting
stevensJourney Feb 9, 2026
68104f7
cleanup cloud commands
stevensJourney Feb 9, 2026
ec8180f
add colour to logs
stevensJourney Feb 9, 2026
756db05
update packages
stevensJourney Feb 9, 2026
90164bc
update start command docs
stevensJourney Feb 9, 2026
e6df80f
colourize errors. Add some basic examples
stevensJourney Feb 10, 2026
deface8
pretty format client errors
stevensJourney Feb 10, 2026
4ed581b
fix cloud deploy command failure. use micro web sdk client.
stevensJourney Feb 11, 2026
78f1c48
styled errors
stevensJourney Feb 11, 2026
bd40e12
cleanup logs - format command strings to standout
stevensJourney Feb 11, 2026
f8ed092
update fetch status command
stevensJourney Feb 11, 2026
b6face2
update examples with readmes
stevensJourney Feb 11, 2026
7c13bdc
Add basic node.js example app
stevensJourney Feb 11, 2026
a7a91fc
update docs
stevensJourney Feb 11, 2026
885dd0b
share code with core-api
stevensJourney Feb 11, 2026
604cab3
use relative paths for Docker
stevensJourney Feb 11, 2026
34e0ade
specify docker project name in compose projects
stevensJourney Feb 11, 2026
59edbca
accounts client and list instances command
stevensJourney Feb 12, 2026
5030b44
cleanup project loading
stevensJourney Feb 12, 2026
30720bb
cleanup token storage. Improve login command.
stevensJourney Feb 12, 2026
e517f95
wip: browser based PAT for login
stevensJourney Feb 16, 2026
cc979fa
improve config pull output
stevensJourney Feb 16, 2026
91e7667
improve schemas and config validation
stevensJourney Feb 16, 2026
758cf7e
update readmes
stevensJourney Feb 16, 2026
5781534
split init commands. Add interactivity to docker configure
stevensJourney Feb 16, 2026
b7aee18
refactor: rename link.yaml to cli.yaml
stevensJourney Feb 16, 2026
aef9ced
clean login command
stevensJourney Feb 16, 2026
4506cdc
Add ability to configure custom YAML tags for VSCode.
stevensJourney Feb 16, 2026
89aeec9
show progress during validations. neaten init commad logs.
stevensJourney Feb 17, 2026
25faae9
add more usage docs. refactor command name to powersync pull instance
stevensJourney Feb 17, 2026
c3a19f4
default org-id for PAT tokens with single org
stevensJourney Feb 17, 2026
e8aea02
readme cleanup
stevensJourney Feb 17, 2026
fe892ac
fallback login token to prompt if dashboard cannot send it
stevensJourney Feb 17, 2026
66a7fb5
improve PAT login with encryption for edge cases.
stevensJourney Feb 18, 2026
3d1a218
respond with html for long
stevensJourney Feb 19, 2026
4de930f
feat: migration of sync rules
stevensJourney Feb 19, 2026
ef7bac7
remove service-schema override
stevensJourney Feb 19, 2026
22d410c
less colour is more colour
stevensJourney Feb 19, 2026
0c60b99
rename sync rules to sync config. Add command for only deploying sync…
stevensJourney Feb 19, 2026
e082df0
YAML language server templating
stevensJourney Feb 19, 2026
23aff77
More token storage options.
stevensJourney Feb 19, 2026
a239df9
minor log cleanup
stevensJourney Feb 20, 2026
c837230
remove pnpm overrides
stevensJourney Feb 20, 2026
9d1a14d
formatting
stevensJourney Feb 20, 2026
1cc41b8
use single pnpm version
stevensJourney Feb 20, 2026
50d9ef1
remove local override
stevensJourney Feb 20, 2026
ae2f997
fix prettier ignore
stevensJourney Feb 20, 2026
770426c
pretty lint
stevensJourney Feb 20, 2026
6d1cd26
more cleanup
stevensJourney Feb 20, 2026
dce470e
cleanup
stevensJourney Feb 20, 2026
9e54182
try fix windows
stevensJourney Feb 20, 2026
39ac48a
tests for login command
stevensJourney Feb 20, 2026
bcf14bc
Add example commands
stevensJourney Feb 20, 2026
a2929c0
cleanup template config
stevensJourney Feb 20, 2026
9fd74e8
Merge branch 'init' into sync-rules-migrate
stevensJourney Feb 20, 2026
d61e2bc
update sync stream defaults
stevensJourney Feb 20, 2026
921e61b
formatting
stevensJourney Feb 20, 2026
054fadf
lint
stevensJourney Feb 20, 2026
50a45f6
update readme
stevensJourney Feb 20, 2026
249ceb2
initial editor app
stevensJourney Feb 22, 2026
5ef9443
schema validations from editor
stevensJourney Feb 22, 2026
83a7603
building and stying
stevensJourney Feb 22, 2026
9f44116
wip: serve
stevensJourney Feb 22, 2026
93b8840
plugin for opening the editor
stevensJourney Feb 23, 2026
caebe3f
Update cli/src/api/write-vscode-settings-for-yaml-env.ts
stevensJourney Feb 23, 2026
dccb61d
pr feedback items
stevensJourney Feb 23, 2026
d6f249f
Merge branch 'init' of github.com:powersync-ja/temp-cli into init
stevensJourney Feb 23, 2026
8429145
lint
stevensJourney Feb 23, 2026
2f6af9f
cleanup
stevensJourney Feb 23, 2026
f86df4e
ensure directory is required for multiple directories
stevensJourney Feb 23, 2026
e16a941
update sync config examples to edition 3
stevensJourney Feb 23, 2026
e729d8e
remove debug_api from templates
stevensJourney Feb 23, 2026
4c5bbaf
list is_provisioned in instance statuses. Wait for destroy and stop c…
stevensJourney Feb 24, 2026
34cef60
document oclif plugins
stevensJourney Feb 24, 2026
1c140ba
update templates in order to create cloud instances without replicati…
stevensJourney Feb 24, 2026
9a4bcd1
update instance status data_queries to used_for_replication
stevensJourney Feb 24, 2026
7cfd2e9
update validate message.
stevensJourney Feb 24, 2026
89385b8
update validation messages. refresh unit tests
stevensJourney Feb 24, 2026
4a5d932
fix tests
stevensJourney Feb 24, 2026
8665efe
husky lint
stevensJourney Feb 24, 2026
23d5999
more husky
stevensJourney Feb 24, 2026
3c4329d
update docs to refer to powersync docker command and topic - not plugin
stevensJourney Feb 24, 2026
78c4f15
wip: cleanup commands and topics
stevensJourney Feb 24, 2026
a6c1f0a
add autocomplete
stevensJourney Feb 24, 2026
1ba7179
add commands plugin
stevensJourney Feb 25, 2026
c35a15d
rename sync.yaml to sync-config.yaml
stevensJourney Feb 25, 2026
d952cca
update package name
stevensJourney Feb 25, 2026
268e879
add install instructions to readme
stevensJourney Feb 25, 2026
2188bef
update build script
stevensJourney Feb 25, 2026
11eb305
fix login command when pasting a PAT
stevensJourney Feb 25, 2026
b88dbe6
cleanup flag resolution order
stevensJourney Feb 25, 2026
80560f9
cleanup login command
stevensJourney Feb 25, 2026
d33535d
add ability to deploy only service config changes (no sync config)
stevensJourney Feb 25, 2026
7e1c365
cleanup deploy logging
stevensJourney Feb 25, 2026
4844ba2
Polish the yaml templates (#5)
benitav Feb 25, 2026
fe6fc60
fix format
stevensJourney Feb 25, 2026
38d88b5
Merge branch 'init' of github.com:powersync-ja/temp-cli into init
stevensJourney Feb 25, 2026
04019b7
fix tests
stevensJourney Feb 25, 2026
72f6b7f
fix typo
stevensJourney Feb 25, 2026
7f986e7
add note about cloud secrets
stevensJourney Feb 26, 2026
e29b1c5
allow linking if project directory does not exist
stevensJourney Feb 26, 2026
58d23b7
add powersync status alias
stevensJourney Feb 26, 2026
64e25ec
add objectId validation, and org - project existance checks
stevensJourney Feb 26, 2026
0653202
remove unknown error code.
stevensJourney Feb 26, 2026
1d87c0d
rename TOKEN to PS_ADMIN_TOKEN
stevensJourney Feb 26, 2026
9ff2af3
fix format
stevensJourney Feb 26, 2026
05177fb
assign project for self hosted commands
stevensJourney Feb 26, 2026
96cdb73
fix filename casing
stevensJourney Feb 26, 2026
2e60a40
fix order of spreading default options.
stevensJourney Feb 26, 2026
a10ed87
fix: destroy command should call destroyInstance
stevensJourney Feb 26, 2026
2d0b2a2
fix: docker typo
stevensJourney Feb 26, 2026
adc5964
temp move
stevensJourney Feb 26, 2026
6a4d1f4
move op
stevensJourney Feb 26, 2026
344d777
Merge branch 'init' into editor
stevensJourney Feb 28, 2026
6f3051e
improve editor with sync config validation
stevensJourney Mar 1, 2026
eafec7b
cleanup upstream state
stevensJourney Mar 1, 2026
6a68eba
cleanup powersync status examples
stevensJourney Mar 1, 2026
a9d08d3
feedback from AI review
stevensJourney Mar 1, 2026
7ec5ee8
cleanup
stevensJourney Mar 1, 2026
cda6501
Merge branch 'init' into editor
stevensJourney Mar 1, 2026
e606c4c
update app name
stevensJourney Mar 1, 2026
fe899d7
Merge branch 'main' into editor
stevensJourney Mar 2, 2026
a290092
fix formatting
stevensJourney Mar 2, 2026
0d5b481
linting fixes
stevensJourney Mar 2, 2026
fe10621
fix formating
stevensJourney Mar 2, 2026
e32d712
Merge remote-tracking branch 'origin/main' into editor
stevensJourney Mar 2, 2026
96c7757
update
stevensJourney Mar 2, 2026
4e06b77
try more memory
stevensJourney Mar 2, 2026
10e5a07
fix editor tests
stevensJourney Mar 2, 2026
7218766
Merge remote-tracking branch 'origin/main' into editor
stevensJourney Mar 2, 2026
3d410ea
cleanup
stevensJourney Mar 2, 2026
21fdb51
fix readme
stevensJourney Mar 2, 2026
5c6a36f
PR feedback
stevensJourney Mar 2, 2026
5da27f9
remove unused buffer
stevensJourney Mar 2, 2026
4fa8cdd
update sync migration package
stevensJourney Mar 3, 2026
1d5d88d
update CI comment
stevensJourney Mar 3, 2026
3558c01
cleanup
stevensJourney Mar 3, 2026
70401b7
cleanup
stevensJourney Mar 3, 2026
9b5ebf6
treeshaking typo
stevensJourney Mar 3, 2026
be0a3a8
cleanup Moncaco severities
stevensJourney Mar 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/onPushToMain.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
name: release on push to main

env:
Comment thread
stevensJourney marked this conversation as resolved.
# Increase heap to keep Nitro/Vite SSR builds (editor) from OOMing while treeshaking.
NODE_OPTIONS: --max-old-space-size=4096

on:
push:
branches: [main]
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/onRelease.yml
Comment thread
stevensJourney marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
name: publish on release

env:
# Increase heap to keep Nitro/Vite SSR builds (editor) from OOMing while treeshaking.
NODE_OPTIONS: --max-old-space-size=4096

on:
release:
types: [released]
Expand Down
7 changes: 6 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
name: tests

env:
# Increase heap to keep Nitro/Vite SSR builds (editor) from OOMing while treeshaking.
NODE_OPTIONS: --max-old-space-size=4096

on:
push:
branches-ignore: [main]
Expand All @@ -23,4 +27,5 @@ jobs:
- name: Check formatting
run: pnpm exec prettier --check .
- run: pnpm run build
- run: pnpm run test
- name: Run tests
run: pnpm run test
5 changes: 1 addition & 4 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,7 @@ fi
git diff --cached --name-only -z --diff-filter=ACMR \
| xargs -0 pnpm prettier --write --ignore-unknown

if git diff --cached --name-only --diff-filter=ACMR -- '*.js' '*.cjs' '*.mjs' '*.ts' '*.tsx' | grep -q .; then
git diff --cached --name-only -z --diff-filter=ACMR -- '*.js' '*.cjs' '*.mjs' '*.ts' '*.tsx' \
| xargs -0 pnpm eslint --fix
fi
pnpm lint:fix

git diff --cached --name-only -z --diff-filter=ACMR \
| xargs -0 git add --
3 changes: 3 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
pnpm-lock.yaml
**/pnpm-lock.yaml
**/*.json
.output
editor-dist
routeTree.gen.ts
11 changes: 11 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"files.watcherExclude": {
"**/routeTree.gen.ts": true
},
"search.exclude": {
"**/routeTree.gen.ts": true
},
"files.readonlyInclude": {
"**/routeTree.gen.ts": true
}
}
43 changes: 33 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

Monorepo for the PowerSync CLI and related tooling. Built with [pnpm](https://pnpm.io) workspaces and [OCLIF](https://oclif.io).

- Architecture, scripts, and troubleshooting tips live in [packages/editor/README.md](./packages/editor/README.md).

## Requirements

- **Node**: LTS v24+ (see [.nvmrc](./.nvmrc); use `nvm use` to switch)
Expand All @@ -11,19 +13,23 @@ Monorepo for the PowerSync CLI and related tooling. Built with [pnpm](https://pn

The workspace is split into the main CLI, shared **packages**, and optional **plugins**:

| Package | Path | Description |
| ---------------------------------------------------- | -------------------- | ---------------------------------------------------------------------------------- |
| [**@powersync/cli**](./cli) | `cli/` | Main CLI — manage instances, config, sync config, cloud and self-hosted |
| [**@powersync/cli-core**](./packages/cli-core) | `packages/cli-core/` | Core types and base commands shared by the CLI and plugins |
| [**@powersync/cli-schemas**](./packages/schemas) | `packages/schemas/` | Shared config schemas (cli.yaml, service.yaml, etc.) |
| [**@powersync/cli-plugin-docker**](./plugins/docker) | `plugins/docker/` | Docker plugin — self-hosted PowerSync with Compose (configure, reset, start, stop) |
| Package | Path | Description |
| -------------------------------------------------------------- | ---------------------- | --------------------------------------------------------------------------------------------------- |
| [**@powersync/cli**](./cli) | `cli/` | Main CLI — manage instances, config, sync config, cloud and self-hosted |
| [**PowerSync CLI Config Studio**](./packages/editor) | `packages/editor/` | Monaco-based UI that edits `service.yaml`/`sync-config.yaml` and ships with the config-edit plugin |
| [**@powersync/cli-core**](./packages/cli-core) | `packages/cli-core/` | Core types and base commands shared by the CLI and plugins |
| [**@powersync/cli-schemas**](./packages/schemas) | `packages/schemas/` | Shared config schemas (cli.yaml, service.yaml, etc.) |
| [**@powersync/cli-plugin-config-edit**](./plugins/config-edit) | `plugins/config-edit/` | CLI plugin that sets `POWERSYNC_PROJECT_CONTEXT` and serves the Config Studio with the Nitro server |
| [**@powersync/cli-plugin-docker**](./plugins/docker) | `plugins/docker/` | Docker plugin — self-hosted PowerSync with Compose (configure, reset, start, stop) |

```
├── cli/ # @powersync/cli — main CLI (commands, cloud/self-hosted, templates)
├── packages/
│ ├── cli-core/ # @powersync/cli-core — base commands & YAML utils (used by CLI + plugins)
│ ├── editor/ # CLI Config Studio — Monaco web app that edits service.yaml/sync-config.yaml
│ └── schemas/ # @powersync/cli-schemas — config validation (LinkConfig, CLIConfig)
├── plugins/
│ ├── config-edit/ # @powersync/cli-plugin-config-edit — serves the Config Studio preview
│ └── docker/ # @powersync/cli-plugin-docker — docker configure, reset, start, stop
├── examples/ # Sample projects initialized with the CLI (see examples/README.md)
│ ├── cloud/
Expand All @@ -33,17 +39,19 @@ The workspace is split into the main CLI, shared **packages**, and optional **pl
└── usage-docker.md # Docker plugin (configure, reset, start, stop, templates)
```

- **cli** depends on **cli-core**, **cli-schemas**, and **@powersync/cli-plugin-docker**. It loads the docker plugin and re-exports base command types from cli-core.
- **plugin-docker** (in **plugins/docker**) depends on **cli-core** and **cli-schemas**. No dependency on the CLI package.
- **cli** depends on **cli-core**, **cli-schemas**, **@powersync/cli-plugin-config-edit**, and **@powersync/cli-plugin-docker**. It loads the bundled plugins and re-exports base command types from cli-core.
- **cli-core** depends on **schemas**. It provides `SelfHostedInstanceCommand`, YAML helpers (`!env`), and shared types for plugins.
- **packages/editor** builds the Config Studio assets consumed by the config-edit plugin and embeds schemas from `@powersync/cli-schemas`.
- **@powersync/cli-plugin-config-edit** depends on **cli-core** and serves the built editor from `plugins/config-edit/editor-dist` using the Nitro server.
- **@powersync/cli-plugin-docker** depends on **cli-core** and **cli-schemas**. No dependency on the CLI package.

Workspace roots are listed in [pnpm-workspace.yaml](./pnpm-workspace.yaml): `cli`, `packages/*`, `plugins/*`.

## OCLIF plugins

We rely on standard [OCLIF plugin loading](https://oclif.io/docs/plugins/) so plugins can register new commands or hook into command execution. The main CLI ships with a Docker plugin under [plugins/docker](./plugins/docker), and any other OCLIF-compatible plugin can be installed the same way.
We rely on standard [OCLIF plugin loading](https://oclif.io/docs/plugins/) so plugins can register new commands or hook into command execution. The main CLI ships with Docker and Config Studio plugins under [plugins/docker](./plugins/docker) and [plugins/config-edit](./plugins/config-edit), and any other OCLIF-compatible plugin can be installed the same way.

For PowerSync-specific plugins, the optional [@powersync/cli-core](./packages/cli-core) package exposes base command helpers and shared types. The Docker plugin consumes these helpers and adds Docker-focused commands as a reference implementation.
For PowerSync-specific plugins, the optional [@powersync/cli-core](./packages/cli-core) package exposes base command helpers and shared types. The bundled plugins consume these helpers and serve as reference implementations.

Users can manage their own installed plugins dynamically at runtime. Run `powersync plugins --help` for install, uninstall, and inspection options.

Expand Down Expand Up @@ -72,6 +80,21 @@ powersync docker start

See [plugins/docker](./plugins/docker/README.md) and [docs/usage-docker.md](./docs/usage-docker.md) for details.

### Configuration editor

Open the Monaco-based Config Studio that edits `service.yaml`/`sync-config.yaml` directly inside your project:

```bash
pnpm build # ensures packages/editor copies its dist to plugins/config-edit/editor-dist
powersync edit config --directory ./powersync --port 3000
```
Comment thread
stevensJourney marked this conversation as resolved.

- The command above is provided by **@powersync/cli-plugin-config-edit** and automatically sets `POWERSYNC_PROJECT_CONTEXT` (based on the linked project) before serving the built editor through the Nitro server.
- Features include YAML schema validation, Monaco-powered completions, unsaved-change tracking, reset/save controls, and an error panel for schema violations.
- For local UI work (without running the CLI command) export `POWERSYNC_PROJECT_CONTEXT` JSON that points at your project (the CLI sets this for you) and start the dev server: `POWERSYNC_PROJECT_CONTEXT='{"linkedProject":{"projectDirectory":"/path/to/project","linked":{"type":"self-hosted"}}}' pnpm --filter editor dev`.
- Prefer the default host (127.0.0.1); only pass `--host 0.0.0.0` when you explicitly intend to expose the editor on your network.
- Architecture, scripts, and troubleshooting tips live in [packages/editor/README.md](./packages/editor/README.md).

## Examples

The [**examples/**](./examples) folder contains basic projects initialized with the CLI. See [examples/README.md](./examples/README.md) for the full list and links to each example's README.
Expand Down
50 changes: 45 additions & 5 deletions cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,7 @@ See [docs/usage.md](../docs/usage.md) for full usage and resolution order (flags
- [`powersync docker reset`](#powersync-docker-reset)
- [`powersync docker start`](#powersync-docker-start)
- [`powersync docker stop`](#powersync-docker-stop)
- [`powersync edit config`](#powersync-edit-config)
- [`powersync fetch config`](#powersync-fetch-config)
- [`powersync fetch instances`](#powersync-fetch-instances)
- [`powersync fetch status`](#powersync-fetch-status)
Expand Down Expand Up @@ -632,6 +633,46 @@ EXAMPLES
$ powersync docker stop --project-name=powersync_myapp --remove
```

## `powersync edit config`

Open the PowerSync configuration editor (Nitro server).

```
USAGE
$ powersync edit config [--api-url <value> | --instance-id <value> | --org-id <value> | --project-id <value>]
[--directory <value>] [--host <value>] [--port <value>]

FLAGS
--host=<value> [default: 127.0.0.1] Host to bind the editor preview server. Pass 0.0.0.0 to expose on all interfaces.
--port=<value> [default: 3000] Port for the editor preview server.

SELF_HOSTED_PROJECT FLAGS
--api-url=<value> [Self-hosted] PowerSync API URL. When set, context is treated as self-hosted (exclusive with
--instance-id). Resolved: flag → cli.yaml → API_URL.

PROJECT FLAGS
--directory=<value> [default: powersync] Directory containing PowerSync config. Defaults to "powersync". This is
required if multiple powersync config files are present in subdirectories of the current working
directory.

CLOUD_PROJECT FLAGS
--instance-id=<value> [Cloud] PowerSync Cloud instance ID (BSON ObjectID). When set, context is treated as cloud
(exclusive with --api-url). Resolved: flag → cli.yaml → INSTANCE_ID.
--org-id=<value> [Cloud] Organization ID (optional). Defaults to the token’s single org when only one is
available; pass explicitly if the token has multiple orgs. Resolved: flag → cli.yaml → ORG_ID.
--project-id=<value> [Cloud] Project ID. Resolved: flag → cli.yaml → PROJECT_ID.

DESCRIPTION
Open the PowerSync configuration editor (Nitro server).

Loads the linked project context and runs the editor Nitro server to edit config files.

EXAMPLES
$ powersync edit config

$ powersync edit config --directory ./powersync
```

## `powersync fetch config`

[Cloud only] Print linked Cloud instance config (YAML or JSON).
Expand Down Expand Up @@ -748,13 +789,12 @@ Generate client schema file from instance schema and sync config.

```
USAGE
$ powersync generate schema --output dart|dotNet|flutterFlow|js|jsLegacy|kotlin|swift|ts --output-path <value>
[--api-url <value> | --instance-id <value> | --org-id <value> | --project-id <value>] [--directory <value>]
$ powersync generate schema --output dart|dotNet|js|jsLegacy|kotlin|swift|ts --output-path <value> [--api-url
<value> | --instance-id <value> | --org-id <value> | --project-id <value>] [--directory <value>]

FLAGS
--output=<option> (required) [default: type] Output type: dart, dotNet, flutterFlow, js, jsLegacy, kotlin, swift,
ts
<options: dart|dotNet|flutterFlow|js|jsLegacy|kotlin|swift|ts>
--output=<option> (required) [default: type] Output type: dart, dotNet, js, jsLegacy, kotlin, swift, ts
<options: dart|dotNet|js|jsLegacy|kotlin|swift|ts>
--output-path=<value> (required) Path to output the schema file.

SELF_HOSTED_PROJECT FLAGS
Expand Down
3 changes: 3 additions & 0 deletions cli/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import rootConfig from '../eslint.config.mjs';

export default [...rootConfig];
13 changes: 8 additions & 5 deletions cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,16 @@
"@oclif/plugin-commands": "^4.1.40",
"@oclif/plugin-help": "^6",
"@oclif/plugin-plugins": "^5",
"@powersync-community/sync-config-rewriter": "^0.1.1",
"@powersync-community/sync-config-rewriter": "^0.1.2",
"@powersync/cli-core": "workspace:*",
"@powersync/cli-plugin-config-edit": "workspace:*",
"@powersync/cli-plugin-docker": "workspace:*",
"@powersync/cli-schemas": "workspace:*",
"@powersync/management-client": "0.0.1",
"@powersync/management-types": "0.0.1",
"@powersync/service-sync-rules": "^0.30.0",
"@powersync/service-types": "0.0.0-dev-20260225093637",
"@powersync/management-client": "^0.0.4",
"@powersync/management-types": "^0.0.3",
"@powersync/service-sync-rules": "^0.32.0",
"@powersync/service-types": "^0.15.0",
"bson": "^7.2.0",
"fastify": "^5.0.0",
"jose": "^6.1.3",
"lodash": "^4.17.23",
Expand Down Expand Up @@ -74,6 +76,7 @@
"@oclif/plugin-help",
"@oclif/plugin-plugins",
"@powersync/cli-plugin-docker",
"@powersync/cli-plugin-config-edit",
"@oclif/plugin-autocomplete",
"@oclif/plugin-commands"
],
Expand Down
Loading