# Ognom > Ognom is a free, open-source MongoDB desktop client for macOS, Windows and Linux. It is a native Tauri 2 / Rust application with table, document, schema and index views, an aggregation builder, a mongosh-flavoured shell, a TypeScript and Zod interface builder, SSH tunnels, collection diff and copy tools, eight themes, and connection-level production safety. No account, no sign-in, no telemetry. Ognom 2.0 is built on a single 30-token theme contract, ships under the MIT licence, and stores credentials AES-256-GCM encrypted with an optional OS keychain toggle. Everything in the app is a query, a table, a document or an index: there are no AI features and no premium tier. ## What makes it different - **Knows what production is.** A connection marked production opens read-only every time. The block is enforced in the API layer, so no menu, shortcut, shell statement or `$out` stage can write around it. Edit mode is an explicit, session-scoped switch in the status bar and Ognom asks for confirmation first. - **Diff two collections, then sync them.** Compare a collection against another database or another server by `_id`, with live progress. Identical, changed, only-source and only-target buckets are counted; changed rows expand into a field-level diff. Copy, overwrite or delete, each behind its own confirmation, and the diff re-runs after every sync. - **Move a collection anywhere.** Stream a collection to another database or any open connection, in batches, with optional filter, optional index copy, free-text target database, and cancel-at-any-time reporting. - **Destructive actions are slow on purpose.** Dropping a collection states what it removes, requires typing the collection name, and offers a BSON dump first; cancelling the backup cancels the drop. Bulk deletes refuse an empty filter and preview affected counts with sample `_id`s. - **A query never hides its cost.** Matched count, timing and the winning plan sit above the input. Explain names the index a collection scan wants, and one click creates it. ## Features - **Query dock** - Find, Aggregate and Shell over one transport. Multi-line editor with auto-closing brackets and completions sampled from the real schema. `/regex/i`, `new Date()` and `ObjectId()` literals work as written. Queries save with their sort and projection, per collection. - **Aggregation builder** - one editor card per stage, 24 operators with starter snippets, disable a stage, run to any point, per-stage doc counts, drop-off and timing. - **Shell** - mongosh-flavoured syntax with history and completions. Unbounded finds are capped and updates require operator documents. - **Schema analysis** - samples up to 10,000 documents for types per field, mixed-type percentages, example values and per-path coverage. - **Interface builder** - turns the sampled schema into TypeScript interfaces or Zod schemas. Node.js backend types (ObjectId, Date, Decimal128 from `mongodb`, `bson` or `mongoose`) or frontend types (strings). Split any nested object or array of objects into its own named interface, switch fields between ObjectId and string, turn repeated string values into literal unions, and mark fields optional. The code updates live and is read-only; copy it or save a `.ts` file. - **SSH tunnels** - reach databases behind a bastion with a private key, a password or ssh-agent. Host keys are checked against `~/.ssh/known_hosts`, and a changed key is refused. - **Database overview** - documents, average size, data, storage and index sizes for every collection in one table, with flags for big collections that only have the `_id` index, indexes larger than the data, and empty collections. Exports as CSV or JSON. - **Indexes** - unused indexes are called out with zero-ops stats; six create templates from compound to TTL with a live preview of the exact `createIndex` call. - **Import and export** - JSON, NDJSON, CSV and mongodump-compatible BSON, streamed with progress and cancel. Export honours the current filter and sort. - **Command palette** - `⌘K` jumps to any collection, database, connection or action, with fuzzy matching and open-in-new-tab via `⌘⏎`. - **Workspaces** - each connection is a colour-tagged tile on the rail; several stay live at once and each remembers its tabs, picker and query state between launches. - **Server operations** - live `currentOp` with kill, a per-database profiler with COLLSCAN pills, and 2-second server metrics. Missing privileges degrade into plain-English notices. - **Appearance** - eight themes (Mongo dark, Mongo light, Bloom, Bloom noir, Midnight, Mono, Contrast, Solar) plus Follow OS, and three densities (compact, comfortable, roomy). `⌘⇧T` cycles themes. ## Privacy and security - No account and no sign-in. - No telemetry, ever. Queries go to your server and nowhere else. - Credentials are encrypted at rest with AES-256-GCM; one toggle moves the key into the OS keychain. ## Install Current version: 2.1.0. Builds update themselves from GitHub releases. - macOS (Apple Silicon and Intel): https://github.com/sunilksamanta/ognom/releases/latest - Windows (`.exe`, `.msi`): https://github.com/sunilksamanta/ognom/releases/latest - Linux (`.AppImage`, `.deb`, `.rpm`): https://github.com/sunilksamanta/ognom/releases/latest macOS builds are unsigned. If Gatekeeper objects, run `xattr -dr com.apple.quarantine /Applications/Ognom.app`. ## Links - Website: https://ognom.dev/ - Full description for language models: https://ognom.dev/llms-full.txt - Source code: https://github.com/sunilksamanta/ognom - Releases: https://github.com/sunilksamanta/ognom/releases - Issues and feature requests: https://github.com/sunilksamanta/ognom/issues - Licence (MIT): https://github.com/sunilksamanta/ognom/blob/main/LICENSE - Product Hunt: https://www.producthunt.com/products/ognom