Overview
SQLiteScope is a desktop SQLite database viewer, editor, and manager built with Electron and Node.js. It uses Electron's built-in SQLite engine, so Windows doesn't need Python, Visual Studio, C++ build tools, or a separate database server.
It's aimed at anyone who needs to look inside a .db file and get real work done — browsing rows, editing schema, running SQL, importing CSVs — without opening a terminal or standing up a database server for a single file.
Install & run
Prefer not to build from source? Get the Windows installer from the home page instead.
To run from source, install Node.js 22 or newer, then:
git clone https://github.com/connect2sazad/sqlitescope.git
cd sqlitescope
npm install
npm start
On Windows, double-click Start-SQLiteScope.vbs. Startup stays terminal-free: when dependencies need installing, a native progress window stays visible until it finishes. Timestamped startup and npm diagnostics are written to logs/sqlitescope-startup.log, and a failed setup offers to open that log immediately. Runtime logs are also available from Help → Open Runtime Logs. Start-SQLiteScope.bat forwards to the same launcher.
On Linux:
chmod +x start-sqlitescope.sh
./start-sqlitescope.sh
npm run dev starts the app with developer flags enabled, useful when working on SQLiteScope itself.Build installers
npm run dist:win
npm run dist:linux
The build command downloads the packaging tool (electron-builder) only when you explicitly build a release, so normal installation stays small. The Windows build produces both an installer and a portable executable. Run npm run dist:win on Windows itself.
Public releases should be built on the target operating system, code-signed, malware-scanned, and tested on a clean machine — see RELEASE-CHECKLIST.md in the repository. Don't publish an unsigned installer under a commercial brand and expect Windows users to trust it.
Sample database
A ready-to-use database ships at sample/sample-store.db. Recreate it any time with:
npm run sample
Browsing & editing data
- Open several database files at once and switch between independent tabs.
- Select multiple files in the native Open dialog, or drag several files into the app.
- Each tab preserves its current table, page, filter, sorting, view, and SQL draft while you switch databases.
- Reopening an already-open file activates its existing tab instead of duplicating it.
- Browse tables and views with pagination, sorting, and SQL filters.
- Insert, edit, select, duplicate, and safely delete rows. Row edits use primary keys where available and SQLite's
rowidotherwise. - Views are browse-only for row editing, but their SQL definitions can be created, edited, or dropped.
- SQLiteScope detects external
.dbchanges and refreshes browse screens automatically — except mid-edit or mid-SQL-work, where it warns and waits for a manual F5 refresh so it doesn't disrupt what you're doing.
Filter examples
The Browse filter accepts a SQLite expression — not a full SELECT statement:
status = 'active'
price >= 1000 AND stock > 0
name LIKE '%server%'
created_at >= date('now', '-30 days')
SQL console
Run single statements or multi-statement scripts against the active database, with SQL templates for SELECT, COUNT, INSERT, UPDATE, DELETE, and schema definitions. Every database keeps its own query history with timestamps, timing, and result summaries — load or rerun any past query with one click.
Specialized SQLite features that depend on free-form grammar, compiled modules, or application-defined code are handled through the SQL console rather than approximated with fixed UI controls. That includes:
- Virtual-table modules and FTS/RTree configuration
- Generated columns
- UPSERT and RETURNING clauses
- Common table expressions and window functions
- Savepoints
- Custom extensions, application-defined functions, and collations
- Advanced PRAGMAs
Availability of extension-dependent features depends on the SQLite runtime bundled with the installed Electron version. SQLiteScope doesn't display controls for operations the active runtime can't execute.
Schema & structure tools
| Area | What you can do |
|---|---|
| Tables | Create, rename, empty, and drop, with confirmation dialogs and transactional rebuilds for structural changes |
| Columns | Add, rename, remove; set type, default, primary key, AUTOINCREMENT, NOT NULL, UNIQUE |
| Constraints | Composite primary keys, CHECK expressions, composite foreign keys with ON UPDATE / ON DELETE / MATCH and deferred enforcement |
| Table options | STRICT tables and WITHOUT ROWID tables |
| Indexes | Ordinary, unique, expression, ASC/DESC, and partial indexes; drop existing indexes |
| Views & triggers | Create, inspect, edit, and drop |
| Inspection | Columns, primary keys, indexes, foreign keys, triggers, and the underlying CREATE SQL for any object |
Import & export
- Import CSV rows into an existing table, with detection, type inference, a preview step, transactional import, and cleanup on failure.
- Export a table or view as CSV or JSON, or export the full database as SQL.
- Convert
.sqlor.csvfiles into.db,.sqlite,.sqlite3, or.db3internally, with integrity validation and automatic cleanup on incomplete output. - SQLiteScope includes tested compatibility for phpMyAdmin/MariaDB SQL dumps — including
START TRANSACTION, MySQLALTER TABLEprimary keys and auto-increment metadata folded into valid SQLite definitions, MySQL unique/secondary keys converted into collision-safe indexes, andCURRENT_TIMESTAMP()defaults normalized.
Maintenance tools
- Consistent backups and integrity checks, runnable at any time.
- PRAGMA inspector, plus WAL checkpoint, optimize, analyze, and vacuum.
- Attach and detach additional databases, and edit safe connection PRAGMAs.
- Recent Databases list in the native File menu.
Themes
SQLiteScope ships with a phpMyAdmin-style theme selector and twelve installed themes — Classic Beauty, Windows XP, Modern Dashboard, Cyber Neon, Dracula Plum, Forest Terminal, Ocean Glass, Rose Quartz, Retro Amber, Midnight Code, Solarized Sand, and High Contrast — plus compact and comfortable density settings. Switch anytime from Preferences; nothing extra to download. See the theme gallery on the home page.
Safety model
- Back up important databases before schema changes or large updates.
- Destructive UI actions — dropping a table, deleting rows, running a migration — always ask for confirmation first.
- Every open file has a separate SQLite connection; commands always run against the active tab, not whichever tab you last clicked into.
- The renderer has no direct filesystem or Node.js access. Database work runs through an isolated preload API, renderer Node integration is disabled, and context isolation is enabled.
- A restrictive Content Security Policy blocks remote scripts and connections. External links are denied inside the app and opened in the system browser instead.
- SQLite files and SQL can contain hostile content — only open files you trust, and don't run unknown SQL against valuable data.
Privacy
SQLiteScope is local-first software:
- Database files are opened directly from locations you select.
- Database contents are never uploaded, synchronized, sold, or shared by the app.
- No analytics, telemetry, advertising SDK, or user account system.
- Recent file paths and your selected theme are stored locally in Electron's application-data directory.
- Export and backup files are written only to destinations you choose.
- No network access is required for normal database use. The Documentation menu opens this website in your system browser.
You remain responsible for access controls, backups, and the confidentiality of database and exported files on your own device.
Security
Security fixes are provided for the latest published major version. If you find a vulnerability, don't publish it — or an exploitable sample database — in a public issue. Contact the maintainer privately through the security-contact method listed on the official release page, and include the affected version, operating system, reproduction steps, and impact, with any real credentials or personal data removed.
Official installers should be code-signed and accompanied by SHA-256 checksums. Don't install binaries from unverified mirrors.
Support & limitations
- SQLiteScope edits SQLite files only — it's not a MySQL/PostgreSQL server client.
- Changes are committed by SQLite immediately unless your SQL explicitly opens a transaction.
- Encrypted databases require the relevant encryption extension and aren't supported by this build.
- Very large result sets should be paginated or constrained in SQL — the SQL console currently renders the returned result set in memory.
- Back up production data before schema changes or bulk SQL operations.
Project structure
SQLiteScope/
├── main.js Electron main process
├── preload.js Isolated bridge exposed to the renderer
├── src/
│ ├── database.js Core database operations
│ ├── converter.js SQL/CSV ↔ database conversion
│ └── workspace.js Tab and workspace state
├── renderer/ UI (HTML/CSS/JS)
├── scripts/ Setup and sample-data scripts
├── tests/ Unit tests
├── sample/ Sample database
├── PRIVACY.md
├── SECURITY.md
├── CHANGELOG.md
├── RELEASE-CHECKLIST.md
└── build/ Icons and packaging resources
Changelog
The current release is 5.4.0. Recent highlights:
- 5.4.0 — accessible SVG action icons throughout, a persistent sidebar collapse control (Ctrl+B), copy-object-name and copy-schema workflows, conflict-safe duplicate-row generation, and new app artwork.
- 5.3.0 — row detail viewer, duplicate-row workflow, one-click value copying, visible-column chooser, frozen selection/action columns, right-click cell copying.
- 5.2.0 — theme gallery expanded to twelve, full phpMyAdmin/MariaDB dump conversion support, MySQL key and timestamp normalization for SQLite.
- 5.1.0 — phpMyAdmin-style theme selector, six curated themes, basic MySQL/phpMyAdmin SQL-dump compatibility.
- 5.0.0 — removed the branded header for more workspace height, reusable color themes, SQL/CSV → database conversion.
Full history: CHANGELOG.md on GitHub.