> ## Documentation Index
> Fetch the complete documentation index at: https://docs.powersync.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Using PowerSync DevTools

> What each PowerSync DevTools tab shows, and the sync actions you can run from DevTools.

PowerSync DevTools has the same tabs in Vite, Nuxt, and Node.js. To set it up, start with the [overview](/tools/devtools-overview).

## Header and Status Bar

![DevTools header with three numbered controls: 1 the database list, 2 Sync now, 3 Clear and re-sync. The status bar is below the header.](https://mintcdn.com/powersync/_Qarmu1PjiOcxAqE/images/tools/devtools-header-highlighted.png?fit=max\&auto=format\&n=_Qarmu1PjiOcxAqE\&q=85\&s=198e710a7cf3bb7928c51e6bfefca62f)

The status bar stays visible on every tab and summarizes the sync state, including the latest error. The header has these controls. **Sync now** and **Clear & re-sync** appear only while the client is connected.

| Control | Description |
| - | - |
| 1. **Database list** | Selects the database to show. It appears only when more than one database is attached, for example when your app is open in two browser tabs. |
| 2. **Sync now** | Requests a checkpoint and waits until the client is up to date. Your app must connect with `checkpointMode: 'requests'`. Read [Sync Catch-Up](/client-sdks/advanced/checkpoint-requests). |
| 3. **Clear & re-sync** | Deletes the local data and downloads it again. Hold the button for one second to start it. |

> [!WARNING]
>
> **Clear & re-sync** also deletes the local changes in the upload queue. Changes that did not upload, for example writes made offline, are lost.

## Sync Status

![Sync Status tab with connection details, download progress, and the upload queue](https://mintcdn.com/powersync/_Qarmu1PjiOcxAqE/images/tools/devtools-sync-status.png?fit=max\&auto=format\&n=_Qarmu1PjiOcxAqE\&q=85\&s=01c315dd58eb10468ff707df044405d4)

Use the **Sync Status** tab to check the connection, the download progress for each priority, and the local changes that are still waiting to upload. The tab also shows download and upload errors.

Use **Disconnect** and **Reconnect** to test how your app behaves offline and when it connects again.

## Data Inspector

![Data Inspector tab with the table list and a SQL query result](https://mintcdn.com/powersync/_Qarmu1PjiOcxAqE/images/tools/devtools-data-inspector.png?fit=max\&auto=format\&n=_Qarmu1PjiOcxAqE\&q=85\&s=aec750ab957ead4adf8549716c22a3c3)

Use the **Data Inspector** tab to browse your tables and to run SQL against the local SQLite database in your app. To run a query, press `⌘+Enter` or `Ctrl+Enter`.

The tables in your schema are SQLite views. The client's sync state is in internal `ps_*` tables, such as `ps_buckets`, `ps_oplog`, and `ps_crud`.

> [!WARNING]
>
> Writes in the SQL editor change your local data. A write to one of your schema tables goes into the upload queue, and your connector's `uploadData()` sends it to your backend, like a write from your app.

## Buckets

![Buckets tab with a list of buckets, their operations, and their size](https://mintcdn.com/powersync/_Qarmu1PjiOcxAqE/images/tools/devtools-buckets.png?fit=max\&auto=format\&n=_Qarmu1PjiOcxAqE\&q=85\&s=5e7bf6f85cbcf62dce2625440a8936d1)

The **Buckets** tab lists the buckets on the client, with the downloaded operations and size of each. Select a bucket to see its operations and rows.

To also see the total number of operations for each bucket, connect with `diagnostics: true`:

```typescript theme={null}
await db.connect(connector, { diagnostics: true });
```

## Streams

![Streams tab with Sync Stream subscriptions and the subscribe form](https://mintcdn.com/powersync/_Qarmu1PjiOcxAqE/images/tools/devtools-streams.png?fit=max\&auto=format\&n=_Qarmu1PjiOcxAqE\&q=85\&s=b9181bb8491983edc8de62f81decac5e)

The **Streams** tab lists your Sync Stream subscriptions, including when each one expires.

To test a stream, subscribe to it with the form. The form's TTL defaults to 0, so the client removes the stream's data soon after you unsubscribe. Read [Sync Streams](/sync/streams/overview) for more about TTL and priority.

## Config

![Config tab with connection details and the schema as JSON](https://mintcdn.com/powersync/_Qarmu1PjiOcxAqE/images/tools/devtools-config.png?fit=max\&auto=format\&n=_Qarmu1PjiOcxAqE\&q=85\&s=2e074012e69b1cd93cd4cb1d44658860)

The **Config** tab shows the connection details, such as the endpoint, user ID, and connection parameters, and your client schema.

The user ID comes from the `sub` claim of the JWT that your connector returns.

## Logs

![Logs tab with log records and the level filter](https://mintcdn.com/powersync/_Qarmu1PjiOcxAqE/images/tools/devtools-logs.png?fit=max\&auto=format\&n=_Qarmu1PjiOcxAqE\&q=85\&s=3a7bcdfd4b4bef3e9a7c0aa2984fc543)

The **Logs** tab shows the PowerSync SDK's log records. It collects records only after DevTools attaches to the database, so earlier records do not appear.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.