SQLite IntelliView (Beta)

Modern SQLite (and SQLCipher) database viewer/editor for VS Code: table browsing, Monaco-powered queries, ER diagrams, and quality-of-life tooling for JSON/BLOBs and large tables.
Beta note: features and stability are evolving. Please report issues/feedback on GitHub.
Offline + Secure: runs locally inside VS Code and the extension does not send your database contents anywhere (no cloud, no telemetry).
GIF Demos
A quick tour of the main workflows (all offline, inside VS Code):
Browse + edit tables
|
Multi-table tabs
|
Schema view
|
Query editor (Monaco)
|
Foreign-key navigation
|
ER diagram
|
JSON viewer
|
BLOB viewer
|
SQLCipher (encrypted DBs)
|
External updates
|
What You Get
- Free: no paywalls; MIT-licensed.
- Offline + secure by design: database contents stay on your machine (the extension doesn’t make network requests).
- Custom database editor for
.sqlite, .sqlite3, .db, .db3, .s3db, and .sl3 (opens as a rich UI, not plain text).
- Database Explorer view (tables + columns) while a database is open.
- Multi-table tabs (open multiple tables/results, drag to reorder).
- Fast table browsing: pagination, quick search, sorting, column filters, resizable columns/rows, column pinning.
- Editing: inline cell edit + row delete (writes changes back to the database file).
- Context menu tools: copy cell/row/column, copy row/table as JSON, JSON viewer for JSON cells, BLOB viewer + copy as Base64/Hex.
- Export from the table UI: export currently visible rows to CSV.
- Foreign-key navigation: jump to referenced rows from FK cells.
- ER diagram: interactive relationship diagram (zoom/pan) built with D3.
- WAL-aware: checkpoints WAL on open (best-effort) and refreshes when
-wal/-shm change.
Quick Start
- Open any
.sqlite, .sqlite3, .db, .db3, .s3db, or .sl3 file.
- If VS Code asks, choose Open With… → SQLite Database IntelliView.
- Use the left Database Explorer to open tables, then:
- Data tab: browse/edit rows
- Schema tab: inspect columns/keys
- Query tab: run SQL
- Diagram tab: generate an ER diagram
Tip: right-click a database file in Explorer → Open SQLite Database.
Requirements (Optional, but Recommended)
SQLite IntelliView runs locally inside VS Code. For best functionality, install these command-line tools and ensure they’re available on your PATH:
sqlite3 (recommended): used for WAL checkpointing on unencrypted databases.
sqlcipher (only for encrypted DBs): used to decrypt/re-encrypt SQLCipher databases and checkpoint encrypted WAL databases.
If you don’t install these:
- Unencrypted databases will still open, but WAL checkpointing may be limited.
- Encrypted (SQLCipher) databases won’t be able to open/decrypt.
Install sqlite3
- macOS (Homebrew):
brew install sqlite
- Ubuntu/Debian:
sudo apt-get update && sudo apt-get install -y sqlite3
- Windows:
- Winget:
winget install --id SQLite.SQLite -e
- Chocolatey:
choco install sqlite
Verify: sqlite3 --version
Install sqlcipher
- macOS (Homebrew):
brew install sqlcipher
- Ubuntu/Debian:
sudo apt-get update && sudo apt-get install -y sqlcipher
- Windows:
- MSYS2:
pacman -S mingw-w64-x86_64-sqlcipher
- Or install a SQLCipher build and add
sqlcipher.exe to your PATH.
Verify: sqlcipher -version
Detailed PATH setup guides
- Windows:
readme/windows-path-setup.md
- macOS:
readme/macos-path-setup.md
SQLCipher (Encrypted Databases)
- Run SQLite IntelliView: Connect with SQLCipher Key and enter your key.
- Or use the input box at the top of the Database Explorer view.
- SQLCipher support requires the
sqlcipher CLI to be available on your PATH (used for decrypt/re-encrypt and WAL operations).
WAL Mode (Write-Ahead Logging)
If your database uses WAL mode, IntelliView will try to checkpoint the WAL before loading so you see up-to-date data, and will refresh when WAL/SHM files change.
If the database is locked by another process (or you only have read-only access), you may see stale data. Use:
- SQLite IntelliView: Checkpoint WAL and Refresh
For best results, ensure the sqlite3 CLI is available on your PATH (used for WAL checkpointing on unencrypted databases).
Settings
SQLite IntelliView recognizes .sqlite, .sqlite3, .db, .db3, .s3db, and .sl3 files by default. Add other extensions with sqliteIntelliView.additionalFileExtensions. Values may include a leading dot, are matched case-insensitively, and invalid or duplicate entries are ignored:
{
"sqliteIntelliView.additionalFileExtensions": [
".database",
"sqlite-backup"
]
}
The additional extensions are available immediately in SQLite IntelliView's open dialogs and commands. VS Code custom editor associations, activation events, and Explorer context-menu visibility are static package.json contributions, so they cannot be changed dynamically from this setting. To open a custom-extension file, run SQLite IntelliView: Open SQLite Database and select it.
These settings control WAL behavior and external refresh noise:
sqliteIntelliView.walCheckpointMode ("full" | "passive" | "off", default: "full"): controls how WAL checkpointing runs when opening a database with a -wal file.
full: more aggressive checkpoint (best chance of up-to-date data).
passive: less intrusive checkpoint attempt.
off: skip auto-checkpoint on open.
sqliteIntelliView.walAutoCheckpoint (default: true): backward-compatibility toggle. If set to false, auto-checkpoint is disabled even if walCheckpointMode is full or passive.
sqliteIntelliView.walMonitoring (default: true): watches DB/WAL/SHM files and auto-refreshes when changes are detected.
sqliteIntelliView.externalRefreshDebounceMs (default: 500): coalesces bursts of DB/WAL/SHM file events into a single refresh. Increase this if external writers are noisy.
sqliteIntelliView.defaultPageSize: default rows per page in table views.
Tip: if you see repeated refresh notifications from busy external writers, keep walMonitoring on and increase externalRefreshDebounceMs (for example, 750 or 1000).
Commands
| Command |
Purpose |
SQLite IntelliView: Open SQLite Database |
Open a database in the custom editor |
SQLite IntelliView: Connect with SQLCipher Key |
Connect to an encrypted database |
SQLite IntelliView: Refresh Database |
Refresh the Database Explorer view |
SQLite IntelliView: Checkpoint WAL and Refresh |
Force a WAL checkpoint (best-effort) |
SQLite IntelliView: Export Data |
Placeholder command (use the in-table Export button today) |
Keybindings (VS Code)
| Command |
Windows/Linux |
macOS |
| Open SQLite Database |
Ctrl+Shift+O |
Cmd+Shift+O |
| Connect with SQLCipher Key |
Ctrl+Shift+K |
Cmd+Shift+K |
| Refresh Database |
Ctrl+Shift+R |
Cmd+Shift+R |
| Export Data |
Ctrl+Shift+E |
Cmd+Shift+E |
Keyboard Shortcuts (Inside IntelliView)
These work while focus is inside the database editor webview:
| Action |
Shortcut |
| Execute query |
Ctrl+Enter / Cmd+Enter |
| Clear query editor |
Ctrl+K / Cmd+K |
| Focus table search |
Ctrl+F / Cmd+F (or / on the Data tab) |
| Refresh view (re-fetch) |
Ctrl+Shift+R / Cmd+Shift+R |
| Hard reload from disk |
Ctrl+Alt+R / Cmd+Option+R |
Notes, Limits, and Safety
- Query results are capped (to keep the UI responsive). For very large exports, use the table UI’s CSV export or a dedicated SQLite client.
- Query editor writes are not persisted yet: non-
SELECT statements may run in-memory but are not currently written back to disk; use inline cell editing / row delete for persisted changes.
- Edits write to the database file. Consider working on a copy if the database is important or shared with other processes.
- SQL restrictions: some sensitive statements are blocked in the query editor (for example:
PRAGMA key, ATTACH DATABASE, DETACH DATABASE).
Troubleshooting
- “Database is locked” / WAL checkpoint fails: close other apps holding the DB, or run Checkpoint WAL and Refresh.
- Encrypted DB won’t open: ensure
sqlcipher is installed and on PATH, then reconnect with the correct key.
- Stale data in WAL mode: checkpoint requires write access; read-only workspaces may not be able to merge WAL changes.
Changelog
See CHANGELOG.md.
License
MIT License – see LICENSE.
Credits
Built with (bundled locally): sql.js (WASM SQLite), monaco-editor, d3, sortablejs.