A modern MongoDB GUI for macOS, Windows, and Linux.
brew install --cask sschlesier/dgrid/dgrid
Or download the latest .dmg from Releases.
Download the .exe installer from Releases.
Download the .deb or .AppImage from Releases.
If you installed from the DMG directly (not Homebrew), macOS will block the app because it isn't signed with an Apple Developer ID. To open it:
Or from terminal:
xattr -cr /Applications/DGrid.app
Homebrew installs handle this automatically.
DGrid runs as a native desktop app. Launch it and you get a window for browsing databases, running queries, and managing documents.
Create connections using standard MongoDB URIs, including mongodb+srv:// for Atlas. Passwords are stored in your OS keyring (macOS Keychain, Windows Credential Manager, or Linux Secret Service), not on disk. If you uncheck "Save Password", you'll be prompted each time you connect.
Connection data lives in ~/.dgrid/connections.json (URIs with credentials stripped).
The editor accepts MongoDB shell syntax:
db.users.find({ age: { $gt: 25 } }).sort({ name: 1 }).limit(10)
db.orders.aggregate([ { $group: { _id: "$status", count: { $sum: 1 } } } ])
db.users.distinct("email", { active: true })
db.users.countDocuments({ role: "admin" })
Database-level commands are also supported: db.stats(), db.serverStatus(), db.currentOp(), db.runCommand({...}), db.createCollection("name"), etc.
Write multiple queries separated by blank lines and use the execute dropdown to run all, run current, or run selected.
Press ? to see all shortcuts. The essentials:
| Shortcut | Action |
|---|---|
Cmd+Enter |
Run All queries |
Cmd+Shift+Enter |
Run Current query (at cursor) |
Cmd+T |
New tab |
Cmd+W |
Close tab |
Cmd+S |
Save query to file |
Cmd+O |
Load query from file |
</> button in the query toolbar. Persists across sessions.find() and aggregate() results. Exports the full result set, not just the current page.xcode-select --install)sudo apt install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelfpnpm install
pnpm dev
This runs tauri dev, which starts the Vite frontend with hot-reload and compiles the Rust backend. A native app window opens automatically.
To work on just the frontend without the Tauri shell:
pnpm dev:frontend
pnpm build
This runs tauri build and produces a platform-specific installer in src-tauri/target/release/bundle/:
| Platform | Output |
|---|---|
| macOS | dmg/DGrid_<version>_aarch64.dmg |
| Windows | nsis/DGrid_<version>_x64-setup.exe |
| Linux | deb/dgrid_<version>_amd64.deb, appimage/dgrid_<version>_amd64.AppImage |
# TypeScript tests (frontend + shared)
pnpm test run
# Rust tests (backend)
cd src-tauri && cargo test
# Type-check, lint, test, and build in one command
pnpm verify
Releases are automated via GitHub Actions. Pushing a v* tag builds for all three platforms and creates a GitHub release.
# 1. Update CHANGES.md with user-facing changes
# 2. Bump version (creates commit + tag)
pnpm version patch # or minor / major
# 3. Push to trigger the release workflow
git push origin main && git push origin v<version>
The workflow:
src-tauri/ Tauri v2 Rust backend (commands, executor, storage, keyring)
src/ Svelte 5 frontend (Vite build)
tests/e2e/ Playwright E2E tests
MIT