SQLite browser for Mac
Open any SQLite database on your Mac, or create one, then browse, edit and query it with every change held until you save. There’s a sample database to try it on.
Free for personal use · macOS 26 Tahoe or later · Apple silicon and Intel

Tested on Any SQLite file on your Mac
Open a database file, create a new one, or start from the sample: a music store, with artists, albums, tracks and invoices.
What you can do with SQLite
Edits you review first
Changed cells, new rows and deletions wait until ⌘S saves them in one transaction. Review shows the exact SQL first.
Foreign keys on
Every connection turns foreign keys on (PRAGMA foreign_keys = ON), so a reference to a missing row is refused, as you’d expect.
Patient with locks
If another program is writing to the file, Inlet waits up to 5 seconds before reporting “database is locked”.
Structure, with the SQL shown
Edit columns, indexes and constraints with the statements in view before anything runs.
A query editor
Completion from your tables and columns, a formatter, history and saved queries. ⌘↵ runs the statement under the cursor.
A diagram of the tables
Tables and the foreign keys between them, drawn for you. With Pro, save it as an image, a PDF or Mermaid.
Import and export
CSV import. Export to CSV, JSON, SQL INSERT statements or Excel.
A fast grid
100,000 rows scroll smoothly. Filters, sorting and search run in SQLite, not on a copy.
Errors explained
A failed statement shows SQLite’s error, with a link to a page on what it means and the fix.
Safe on production
Nothing changes until you say so, and nothing you save overwrites a change you never saw. How Inlet keeps data safe
Nothing changes until you save
Edits wait, marked in colour, until ⌘S saves them all at once, in one transaction. If one fails, none of them go through.
See the exact SQL first
Review shows the statements that will run before anything is written to the file.
Drafts survive a crash
Unsaved edits come back when Inlet does.
Connecting
A SQLite database is a file on your Mac: open it from Inlet, or create a new one where you choose.
Open with ⌘OFiles ending .sqlite, .sqlite3, .db, .db3, .s3db or .sl3, several at once if you like.
Start from the sampleA music store with artists, albums, tracks, customers and invoices, to try queries and edits on.
No account, no telemetryInlet talks to your database and nothing else. Passwords stay in your Keychain.
~/Projects/shop/db.sqlite3~/Library/Application Support/MyApp/store.db~/Downloads/music-store.sqlite
SQLite errors, explained
22 SQLite error messages, each reproduced on a real server: what it means, why it happens and the fix. Inlet links to them when they happen.
- database is lockedAnother connection holds a lock on the database file, and yours gave up instead of waiting. Set a busy timeout so it waits, switch to WAL so readers stop blocking the writer, and keep write transactions short.
- no such tableSQLite looked for the table in the database file you opened and didn’t find it. Most often it’s the wrong file: SQLite quietly creates an empty database when the path doesn’t exist.
- UNIQUE constraint failedThe row you inserted or updated has the same value as an existing row in a column (or set of columns) that must be unique. The message names the table and column; find the row that already has that value.
- FOREIGN KEY constraint failedA row refers to a parent row that doesn’t exist, or you tried to delete or change a parent that other rows still refer to. SQLite checks this only when PRAGMA foreign_keys = ON, which is off on every new connection.
- attempt to write a readonly databaseSQLite opened the database but can’t write to it. Either the process lacks write permission on the file, its folder or its -wal and -shm files, or the database was opened read-only on purpose.
- file is not a databaseThe file doesn’t start with an SQLite header, so SQLite won’t read it. Usually it isn’t an SQLite database at all (a CSV, a SQL dump, a compressed backup, a Git LFS pointer) or it’s encrypted.
- database disk image is malformedSQLite read a page of the file that doesn’t make sense: the database is corrupt. Stop writing to it, work on a copy, run PRAGMA integrity_check to see what’s damaged, then rebuild an index or recover the data into a new file.
- near "…": syntax errorSQLite’s parser reached the quoted word and couldn’t fit it into any valid statement. The mistake is at that word or right before it: often a reserved word used as a name, a missing or extra comma, or syntax from another database.
- no such columnSQLite can’t find a column by that name in the tables your statement uses. Usually it’s a typo, a column your migrations haven’t added to this file, or text written in double quotes, which SQLite reads as a column name.
Coming from another app?
What’s different, side by side, and how to bring your connections across.
- Inlet vs DB Browser for SQLiteInlet and DB Browser for SQLite compared on a Mac: price, licence, SQLCipher, plotting, export formats, other databases, and how to switch.
- Inlet vs TablePlusInlet and TablePlus side by side: price, platforms, engines, production safety and PostgreSQL tools, and how to import your TablePlus connections.
Inlet for SQLite
Free for personal use, with every safety feature. For work, Pro is $49 once, with a year of updates.
Version 0.1.0 · macOS 26 Tahoe or later · Apple silicon and IntelQuestions
Something else? Write to hello@inletdb.com.
Is Inlet free for SQLite?
It’s free for personal use: personal projects, students and open source, with every engine and every safety feature. For work, Pro is $49 once, with a year of updates, and a new install has 14 days of Pro to try it.
Can I open a database another app is using?
Yes. If the other app is writing at that moment, Inlet waits up to 5 seconds for its lock before saying the database is locked.
Does it work with any SQLite file?
Any SQLite 3 database file on your Mac ending .sqlite, .sqlite3, .db, .db3, .s3db or .sl3. A file that isn’t a database says so.
Can I try it without a database of my own?
Yes: the sample database is a small music store, ready to browse, query and edit.