SQLitePad — SQLite Editor & Manager for VS Code
A full-featured SQLite editor inside VS Code. Click any .db / .sqlite file and get a fast, themed GUI — browse, edit, query, and export, like a phpMyAdmin for SQLite. All of it free.




Why SQLitePad?
- It just works — SQLite runs as WebAssembly with file I/O through a Node VFS. No native binaries, nothing to compile, no "module failed to load" errors; identical behavior on Windows, macOS, and Linux. Writes go straight to your
.db file page by page — large databases are never loaded fully into memory.
- A true editor, not just a viewer — inline cell editing, row insert/delete/duplicate, CSV import, a SQL runner, and undo. Every editing feature is included, free.
- Fast — a canvas-rendered grid that smoothly handles 100k+ row tables with virtualized scrolling, sorting, and paging.
- AI-ready — copy a whole schema as Markdown or export any table as a SQL dump, ready to paste into your favorite assistant.
- Private by design — no telemetry, no tracking, no network calls. Your databases never leave your machine.
Features
- 🖱️ Open by clicking —
.sqlite, .sqlite3, .db, .db3, .s3db files open directly in the editor; no command-palette dance
- ✏️ Full editing — inline cell editing with type-affinity-aware coercion, insert rows via a form panel, delete rows, set NULL with Del; every change is committed to the file immediately and transactionally
- 🧪 SQL query runner — CodeMirror editor with theme-aware SQLite syntax highlighting and schema autocompletion; run multi-statement scripts (Ctrl+Enter, or just the selection); per-statement results, timings, and rows-affected; DDL like
ALTER TABLE updates the sidebar instantly; save a SELECT as a database view with one click
- 🔍 Filters & quick search — per-column filters from header menus (
=, contains, ranges, NULL/empty checks), right-click a cell for instant filter/exclude, plus a debounced quick-filter box searching every column
- 🔗 Foreign-key superpowers — filter an FK column by searching the referenced table by its human-readable columns (pick "Gaming Mice", get
group_id = 3); name-like columns are auto-detected and you can choose your own preview columns (remembered per database); right-click an FK cell to jump to the referenced row; FK value autocompletion in insert forms
- 📦 Import & export — import CSV files into tables (header matching, preview, single transaction); export tables or query results to CSV / JSON / Markdown / SQL dump (
CREATE TABLE + INSERTs) — to a file or straight to the clipboard
- ↩️ Undo & history — session audit log showing row and old → new value for every change; undo with Ctrl+Z or from the History tab (updates, inserts, and deletes are fully reversible)
- 📋 Row details — vertical field view for wide rows, JSON pretty-printing, BLOB hex preview with automatic image detection (PNG/JPEG/GIF/WebP) plus download/replace, and inline foreign-key previews with one-click navigation
- 🗂️ Schema view — columns, primary keys, foreign keys, indexes, and pretty DDL; copy the whole schema as Markdown
- 🔒 Safe with shared databases — a database another program may be writing (WAL journal mode, or one with a
-wal/-shm/-journal sibling) opens read-only and stays locked, so SQLitePad never corrupts a file a live process is updating; a genuine read-only toggle, modal confirmation for multi-row deletes, and external-change detection with a refresh banner round it out
- 🧠 Remembers your layout — column widths, pinned columns, and FK preview choices persist per database
Usage
| Action |
How |
| Open a database |
Click the file in the Explorer |
| Sort |
Click a column header (asc → desc → off) |
| Edit a cell |
Double-click it, type, Enter |
| Set NULL |
Select cell(s), press Del |
| Insert a row |
Toolbar + Insert |
| Delete rows |
Select rows via the row markers, press Del or toolbar 🗑 Delete |
| Run SQL |
Query tab, Ctrl+Enter |
| Save query as view |
Query tab, ⊞ Save as view… |
| Filter via a foreign key |
FK column header ▾ → search the referenced table |
| Lock the file |
Toolbar 🔒 Read-only toggle |
Notes & limitations
- A database that looks in use by another program — WAL journal mode, or one with a
-wal/-shm/-journal sibling file — opens read-only and cannot be unlocked, so the editor never writes a file a live process (e.g. a server or scraper) is updating. Close it in the other program to edit it here. (The WASM SQLite engine coordinates locks differently from native SQLite, so sharing write access with another process is not safe.)
- Editing requires a row identity: rowid tables and
WITHOUT ROWID tables with a primary key are editable; views and exotic rowid-less results are read-only.
- BLOB values are viewed and replaced through the row detail panel (not inline in the grid).
- Not yet available in VS Code for Web.
Support & feedback
The source is private, but bug reports and feature requests are very welcome and tracked publicly on GitHub:
You can also reach me at serdarvural94@gmail.com.
License
Free to install and use, for personal and commercial purposes. The code is proprietary — see the LICENSE file. Bundled open-source components are listed in THIRD-PARTY-NOTICES.md.
| |