SQLite IntelliView is currently in BETA on the VS Code Marketplace. Features and stability are evolving. Please report issues and feedback via GitHub.
Modern SQLite/SQLCipher database viewer and editor for VS Code: Monaco-powered queries, ER diagrams, cell editing, encryption, and more.
- Custom Editor for SQLite Files: Open
.db,.sqlite, and.sqlite3files in a rich, Monaco-powered editor. - Database Explorer: Tree view of tables and columns, with icons and tooltips.
- Monaco Query Editor: Syntax highlighting, autocompletion, and SQL snippets.
- Cell Editing: Edit table data directly with real-time updates.
- Context Menus: Right-click for copy, navigation, and export actions.
- Foreign Key Navigation: Visual indicators and direct navigation for relationships.
- Advanced Pagination: Configurable page size for large tables.
- SQLCipher Support: Open encrypted databases with a password.
- WAL Mode Support: Automatic detection and checkpoint of Write-Ahead Logging files for up-to-date data.
- Real-time WAL Monitoring: Automatically refreshes when WAL files change.
- Theme Integration: UI matches your VS Code theme.
- Keyboard Shortcuts: Fast access to all major features.
Install from the VS Code Marketplace:
code --install-extension bowlerr.sqlite-intelliview-vscodeOr search for "SQLite IntelliView" in the Extensions sidebar.
- Right-click any
.db,.sqlite, or.sqlite3file in the Explorer and select "Open SQLite Database". - Or run the command:
Ctrl/Cmd+Shift+O or search forOpen SQLite Databasein the Command Palette.
- Run "Connect with SQLCipher Key" from the Command Palette or use Ctrl/Cmd+Shift+K.
- View all tables and columns in the Database Explorer side panel.
- Click tables to view data and schema.
- Write and execute SQL queries in the Monaco-powered editor.
- Use Ctrl/Enter (or Cmd/Enter on Mac) to run queries.
- Run "Export Data" from the Command Palette or use Ctrl/Shift+E.
- Right-click table cells for copy and navigation options.
| Command ID | Title | Description |
|---|---|---|
| sqlite-intelliview-vscode.openDatabase | Open SQLite Database | Open a SQLite/SQLCipher database file |
| sqlite-intelliview-vscode.connectWithKey | Connect with SQLCipher Key | Open encrypted database with a password |
| sqlite-intelliview-vscode.refreshDatabase | Refresh Database | Refresh the database explorer/tree view |
| sqlite-intelliview-vscode.exportData | Export Data | Export table data (CSV/JSON, coming soon) |
| sqlite-intelliview-vscode.checkpointWal | Checkpoint WAL and Refresh | Force checkpoint WAL files and refresh |
| Setting | Type | Default | Description |
|---|---|---|---|
| sqliteIntelliView.defaultPageSize | number | 100 | Default number of rows per page in data tables (10–1000) |
| sqliteIntelliView.enableEncryption | boolean | true | Enable SQLCipher encryption support |
| sqliteIntelliView.themeIntegration | boolean | true | Enable automatic theme integration for the editor UI |
| Command | Windows/Linux | macOS | When |
|---|---|---|---|
| Open SQLite Database | Ctrl+Shift+O | Cmd+Shift+O | explorerViewletVisible |
| 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 |
-
Open SQLite Database:
Ctrl/Cmd+Shift+O or search forOpen SQLite Database. -
Connect with SQLCipher Key:
Ctrl/Cmd+Shift+K or search forConnect with SQLCipher Key. -
Refresh Database:
Ctrl/Cmd+Shift+R or search forRefresh Database. -
Export Data:
Ctrl/Cmd+Shift+E or search forExport Data.
- Node.js 20.x or higher
- VS Code 1.101.0 or higher
git clone https://github.com/Bowlerr/sqlite-intelliview-vscode.git
cd sqlite-intelliview-vscode
npm install
npm run vendor # Vendor external libraries (Monaco Editor, etc.)
npm run compile
# For development mode:
npm run watchnpm run package # Automatically runs vendor + compile + vsce packageIn development, press Ctrl/Cmd+Shift+D to open debug controls for:
- Adjusting log levels (OFF, ERROR, WARN, INFO, DEBUG, TRACE)
- Exporting debug logs for troubleshooting
- Real-time debugging feedback
npm testnpm run lintSQLite IntelliView fully supports databases using Write-Ahead Logging (WAL) mode. WAL is a high-performance journaling mode that writes changes to a separate -wal file before committing them to the main database.
- Automatic Detection: Automatically detects when a database is in WAL mode
- Automatic Checkpoint: Checkpoints WAL files before opening to ensure you see current data
- Real-time Monitoring: Watches WAL and SHM files for changes and auto-refreshes
- Encrypted Database Support: Works with SQLCipher encrypted databases in WAL mode
When you open a database with WAL mode enabled:
- The extension detects associated
.db-waland.db-shmfiles - Automatically checkpoints the WAL to merge uncommitted changes
- Loads the up-to-date database content
- Monitors WAL files for external changes and refreshes automatically
Control WAL behavior with these settings:
sqliteIntelliView.walAutoCheckpoint: Automatically checkpoint WAL files before opening (default:true)sqliteIntelliView.walMonitoring: Monitor WAL files for changes and auto-refresh (default:true)
Force a WAL checkpoint and refresh:
- Run command:
SQLite IntelliView: Checkpoint WAL and Refresh - Useful when automatic checkpointing is disabled or when you want to force an update
Database shows stale data:
- The extension automatically checkpoints WAL files, but if the database is locked by another process, you may see a warning
- Try the manual checkpoint command or close the other application
Read-only databases:
- Checkpointing requires write access to perform the operation
- If you have read-only access, the extension will display a warning and show data from the main database file only
Large WAL files:
- Checkpointing may take a few seconds for very large WAL files (>100MB)
- The extension shows a progress indicator during checkpoint operations
If you encounter issues, enable debug logging:
- Press Ctrl/Cmd+Shift+D to open debug controls
- Set debug level to DEBUG or TRACE
- Reproduce the issue
- Click Export to save debug logs
- Share the exported JSON file when reporting issues
"Database is locked" error:
- Another application has an active connection to the database
- Close the other application or wait for it to release the lock
- The extension will retry automatically up to 3 times with exponential backoff
"Cannot checkpoint WAL due to read-only access":
- You don't have write permissions to the database file
- Data may be stale if there are uncommitted changes in the WAL file
- To see current data, you need write permissions
WAL file not detected:
- Ensure the database is actually in WAL mode (check with:
PRAGMA journal_mode;) - WAL files (
.db-waland.db-shm) must be in the same directory as the database file
See CHANGELOG.md for release notes and version history.
MIT License – see LICENSE for details.
- better-sqlite3 - High-performance SQLite binding
- sql.js - SQLite compiled to WebAssembly
- monaco-editor - Code editor (bundled locally)
- sortablejs - Drag-and-drop functionality (bundled locally)
- d3 - Data visualization for ER diagrams
- VS Code API - Extension host integration
Enjoy browsing your SQLite databases with style! ✨