A lightweight web UI for browsing and querying SQLite databases. No build step — runs directly with Bun.
curl -fsSL https://raw.githubusercontent.com/devchitchat/sqlite-admin/main/install.sh | bashInstalls the source to ~/.local/share/sqlite-admin and a shim to ~/.local/bin/sqlite-admin. Requires Bun to be installed.
Options:
# Pin to a specific release
curl -fsSL .../install.sh | SQLITE_ADMIN_REF=v1.2.0 bash
# Install from main branch (bleeding edge)
curl -fsSL .../install.sh | SQLITE_ADMIN_REF=main bash
# Custom install locations
curl -fsSL .../install.sh | INSTALL_DIR=~/apps/sqlite-admin BIN_DIR=~/bin bashIf ~/.local/bin is not in your PATH, add this to your shell profile:
export PATH="$HOME/.local/bin:$PATH"Point it at a database file and it starts a web server:
DB_FILE_PATH=/path/to/your.db sqlite-adminThen open http://localhost:4269/sqlite-admin.
Update to the latest release:
sqlite-admin update # update to latest release
sqlite-admin update --ref v1.2.0 # pin to a specific version
sqlite-admin update --force # reinstall even if already on the latestOptions:
sqlite-admin --port 7889 # override port via CLI flag
PORT=9000 sqlite-admin # or via environment variable (CLI flag takes precedence)| Variable | Default | Description |
|---|---|---|
DB_FILE_PATH |
— | Path to the SQLite file to open (required, or set in the UI) |
PORT |
4269 |
Port to listen on (overridden by --port) |
SQLITE_ADMIN_BASE_PATH |
/sqlite-admin |
URL prefix for all routes |
You can also set the database path from the UI — there is a path field at the top of every page. It is persisted in a browser cookie for the session.
Prerequisites: Bun ≥ 1.3
git clone git@github.com:devchitchat/sqlite-admin.git
cd sqlite-adminNo dependencies to install — the project uses only Bun built-ins (bun:sqlite, Bun.serve).
Start with file watching:
DB_FILE_PATH=/path/to/your.db bun run devRun tests:
bun testProject layout:
src/
SqliteAdmin.mjs — request handler, all routes, HTML rendering
server.js — Bun.serve() entry point
scripts/
package.mjs — builds sqlite-admin-src.zip for release
release.mjs — bumps version, commits, tags, packages
tests/
SqliteAdmin.test.mjs
install.sh — curl-installable installer
Uses conventional commits to determine the version bump automatically.
bun run release # auto-detect: fix: → minor, feat!:/BREAKING → major, else patch
bun run release:fix # force minor bump
bun run release:breaking # force major bumpThen push:
git push && git push --tagsPushing the tag triggers the GitHub Actions release workflow, which builds sqlite-admin-src.zip and attaches it to a GitHub Release. That asset is what the install script downloads.
To preview what a release would do without making changes:
bun run release --dry-run