---
title: "The SQLite Browser for Mac That's Safe for Your Agent"
description: "Open, browse, edit and query SQLite files in a native Mac app, change a table's columns without writing the rebuild yourself, and let your coding agent work on them safely."
canonical_url: "https://tablestudio.sh/databases/sqlite"
---

> Index of every page on this site: [llms.txt](https://tablestudio.sh/llms.txt)

TableStudio is a native Mac app for SQLite. Open the database files in your projects, change their tables without hand-writing the rebuild, catch the defaults that quietly hurt SQLite apps, and let coding agents like Claude Code, Codex and Cursor work on them under rules TableStudio enforces itself.

<lead-feature icon="i-ph-wrench" title="Change tables without the rebuild dance">

SQLite can't change a column's type, nullability or default in place, or add a primary key to an existing table. The documented way is to create a new table, copy the rows, drop the old one and rename the new one. TableStudio does all of that from the Schema tab.

It saves a **restore point** first and tells you the table will be rebuilt, so you can roll back if anything looks wrong. Need rows to test the change against? **Generate sample data** fills a table with realistic fake rows that follow its foreign keys.

</lead-feature>

<feature-cards description="For the database file sitting in your project." title="What TableStudio does for SQLite">
<feature-card icon="i-ph-shield-check" title="When an agent opens the file">

- Agent reads are read-only in SQLite itself, not just checked by TableStudio.
- Writes can be dry-run: they run, report what changed, and roll back.
- Rows are saved before an agent changes them, so one change can be undone.
- The Agent Center records every call, and the Audit Log every statement.
- An agent can make a sandbox copy of the file and try a risky migration there first.

</feature-card>

<feature-card icon="i-ph-folder-open" title="Your files, found">

- Scan your projects for SQLite files and add them in one step.
- Create a new database file from TableStudio.
- Reveal a database in Finder, or open it in `sqlite3` in Terminal.

</feature-card>

<feature-card icon="i-ph-heartbeat" title="The PRAGMAs that bite">

- Foreign keys declared but not enforced, because `PRAGMA foreign_keys` is off.
- Journal mode that isn't WAL, so readers and writers block each other.
- No busy timeout, so a second writer fails instead of waiting.
- No planner statistics, because `ANALYZE` has never run.
- Free space a `VACUUM` would give back.

</feature-card>

<feature-card icon="i-ph-tree-structure" title="Schema checks for loose typing">

- Column types with no matching SQLite affinity, which silently store anything.
- Primary keys that allow NULL, a long-standing SQLite quirk.
- Booleans stored as text, money in floating point, and UUIDs in text columns.
- Duplicate indexes and foreign keys without one.

</feature-card>

<feature-card icon="i-ph-table" title="Browse and edit">

- Filter, sort and search any table, and hover a foreign key to preview the row it points to.
- Queue up several edits and commit them as one.
- Import CSV or TSV; export to CSV, TSV, JSON, SQL, Markdown or Excel.

</feature-card>

<feature-card icon="i-ph-code" title="SQL">

- Autocomplete that knows your tables and columns.
- `EXPLAIN QUERY PLAN` drawn as a tree.
- Ask for SQLite SQL in plain English, or have AI fix an error.
- Query Insights built from your own query history, since SQLite keeps no statistics of its own.

</feature-card>

<feature-card icon="i-ph-clock-counter-clockwise" title="Backups and graduation">

- One-step backups with SQLite's own `VACUUM INTO`, to your Mac or S3.
- Restore points and throwaway sandbox copies of the file.
- Outgrown SQLite? Move the database into Postgres or MySQL with a pre-flight report.

</feature-card>

<feature-card icon="i-ph-squares-four" title="Dashboard">

- SQLite's own widget packs for health and schema objects, plus widgets you write in SQL.
- ER diagrams, schema compare and the Drizzle or Prisma migrations folder, side by side.

</feature-card>
</feature-cards>

## SQLite in development, and beyond

SQLite is often where a project starts: a `dev.db` for Prisma or Drizzle, a Rails or Django default, a local cache in an app. TableStudio treats those files as first-class databases. When the project outgrows the file, Migrate Database moves it into Postgres or MySQL. The pre-flight report flags what SQLite's loose typing let through.

## Sitemap

See the full [sitemap](https://tablestudio.sh/sitemap.md) for all pages.
