> ## Documentation Index
> Fetch the complete documentation index at: https://powersync-diagnostics-docs.mintlify.site/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

<Frame caption="The DevTools header and status bar.">
  <img src="https://mintcdn.com/powersync-diagnostics-docs/tGo6qMjMqnM2PSty/images/tools/devtools-header.png?fit=max&auto=format&n=tGo6qMjMqnM2PSty&q=85&s=97ea2b22788271923986648d6a9b0234" alt="DevTools header with the Sync now and Clear and re-sync icon buttons, and the status bar below it" width="1082" height="132" data-path="images/tools/devtools-header.png" />
</Frame>

The status bar stays visible on every tab and summarizes the sync state, including the latest error. The header has these controls:

| Control | Description |
| - | - |
| 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. |
| **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). |
| **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.
</Warning>

## Sync Status

<Frame caption="The Sync Status tab.">
  <img src="https://mintcdn.com/powersync-diagnostics-docs/tGo6qMjMqnM2PSty/images/tools/devtools-sync-status.png?fit=max&auto=format&n=tGo6qMjMqnM2PSty&q=85&s=366dbb946b172e9df0c4e3cd018c85c1" alt="Sync Status tab with connection details, download progress, and the upload queue" width="2070" height="1304" data-path="images/tools/devtools-sync-status.png" />
</Frame>

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

<Frame caption="The Data Inspector tab with a SQL query.">
  <img src="https://mintcdn.com/powersync-diagnostics-docs/tGo6qMjMqnM2PSty/images/tools/devtools-data-inspector.png?fit=max&auto=format&n=tGo6qMjMqnM2PSty&q=85&s=8175c0eed16e38ad5f27472704920aa5" alt="Data Inspector tab with the table list and a SQL query result" width="2070" height="1298" data-path="images/tools/devtools-data-inspector.png" />
</Frame>

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`. Queries do not reach your source database.

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.
</Warning>

## Buckets

<Frame caption="The Buckets tab.">
  <img src="https://mintcdn.com/powersync-diagnostics-docs/tGo6qMjMqnM2PSty/images/tools/devtools-buckets.png?fit=max&auto=format&n=tGo6qMjMqnM2PSty&q=85&s=48ce34edd189a1948aee7102ea21b467" alt="Buckets tab with a list of buckets, their operations, and their size" width="2068" height="1300" data-path="images/tools/devtools-buckets.png" />
</Frame>

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

<Frame caption="The Streams tab.">
  <img src="https://mintcdn.com/powersync-diagnostics-docs/tGo6qMjMqnM2PSty/images/tools/devtools-streams.png?fit=max&auto=format&n=tGo6qMjMqnM2PSty&q=85&s=773175e91933c1f8616497d5af2c584c" alt="Streams tab with Sync Stream subscriptions and the subscribe form" width="2072" height="1302" data-path="images/tools/devtools-streams.png" />
</Frame>

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

<Frame caption="The Config tab.">
  <img src="https://mintcdn.com/powersync-diagnostics-docs/tGo6qMjMqnM2PSty/images/tools/devtools-config.png?fit=max&auto=format&n=tGo6qMjMqnM2PSty&q=85&s=212ffe20e6d45be91da0f55878392633" alt="Config tab with connection details and the schema as JSON" width="2072" height="1302" data-path="images/tools/devtools-config.png" />
</Frame>

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

<Frame caption="The Logs tab.">
  <img src="https://mintcdn.com/powersync-diagnostics-docs/tGo6qMjMqnM2PSty/images/tools/devtools-logs.png?fit=max&auto=format&n=tGo6qMjMqnM2PSty&q=85&s=737a5e4ef8de3961fda6a62a9a185594" alt="Logs tab with log records and the level filter" width="2078" height="1302" data-path="images/tools/devtools-logs.png" />
</Frame>

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.