twilight ventures

duckdb lens

JetBrains Marketplaceplugin 33853free viewer, Pro subscription

Install from the JetBrains Marketplacefree to read; the Pro trial runs 30 days

Read-only by default means it cannot write back until you say so. Take the shelter from that one danger: the engine rides inside the plugin in its own read-only mode and refuses every write itself until you turn Edit or Write statements on, and it downloads no extension by itself.

DuckDB Lens opens a DuckDB database file in the editor tab of IntelliJ IDEA and the other JetBrains IDEs. The connection is opened in the engine's own read-only mode, so any statement that would write is refused by the engine itself. The console's Write statements switch, off on every open, reopens the connection read-write for that file once you turn it on and the file stays byte for byte as it was. The first thing on screen is the schema tree, every schema's tables, views, sequences and indexes, and the rows page in as you scroll. The engine ships inside the plugin, there is no server to reach, and the engine fetches no extension on its own, so a laptop with no internet access opens a file the same way as one on the office network. Pro adds a whole-table sort, a diff of two database files, exports to CSV, JSONL or Parquet, and a SQL console for SELECT and EXPLAIN. We ship the engine at version 1.5.5 and measured which database files it opens: storage versions 64 through 68, the rest refused with the engine's own message.

opens
.duckdb and .ddb files, and any file that starts with the DuckDB magic bytes; a pending .wal beside the file is called out in a banner
runs on
every JetBrains IDE from 2024.2 on; Linux x64, Windows x64 and macOS (Intel and Apple Silicon), not Linux ARM
store
JetBrains Marketplace, plugin 33853
newest version
1.4.1, published 2026-10-27
pro
a subscription with its own 30-day trial; the price is quoted below as the store shows it
DuckDB Lens in IntelliJ IDEA: a schema tree, a paged orders table and a cell inspector
orders-2026.duckdb: the schema tree, the orders table paged 100 rows at a time out of 120,000, the inspector on the right.

free

  • Read-only by default: the connection opens in the engine's own read-only mode, so while the console's Write statements switch is off every write statement is refused by DuckDB itself; the file changes only at your word: Save (Pro) or Undo last save (Pro) with Edit on, or a script run with the switch on
  • Any size: rows arrive in constant-memory pages of up to 5000, and go-to-row jumps anywhere in the table
  • Schema tree: every schema's tables, views, sequences and indexes with estimated row counts and exact counts behind them; column types and primary keys, an index's columns, a sequence's next value
  • Find in table: every column of every row, case folded, with the match position inside the cell; next and previous jump between hits
  • Cell inspector: the whole value behind a cell, long text in windows; BLOBs as hex or text, PNG, JPEG and GIF blobs as the picture
  • WAL-aware: a pending .wal sidecar is called out in a banner, in bytes, with a one-click snapshot reload that folds it into a copy and leaves the original alone
  • Exact types: BIGINT stays exact, HUGEINT and DECIMAL never pass through a double, BOOLEAN renders as true and false, and a LIST, STRUCT or MAP cell renders as the engine's own text for it
  • Database facts: storage version, block size, engine version, sidecar state; a file written by a newer DuckDB is refused with both versions named and the fix in the same line
  • Copy out: a row as JSON, the page as CSV
  • Wrong file: something that is not a DuckDB database is reported by reason, in words, with no stack trace
  • Themes: eight looks for the grid, the console results and the diff; trying one is free for the open window

pro

  • Saving edits: with Edit on, change cells in the grid, insert or delete rows, or set one column on the rows the page shows; Review lists every change beside the file's value with the exact SQL, Save (Pro) runs it as one transaction, a copy of the file kept beside it first when you ask for one, and Undo last save (Pro) takes the save back until the file is closed or reloaded
  • SQL console: your SELECT or EXPLAIN goes to DuckDB untouched, one statement or a whole script run in order, each timed; results land in the same grid. Writes need the Write statements switch, which is off when a file opens. Turned on, it runs the script as one transaction, so a statement that fails takes the whole run back with it, and before the first write of the session it keeps a copy of the file beside the original (there is a box to untick if you do not want one)
  • Export: a table, the search matches or any query result to CSV or JSONL
  • Parquet out: name the export .parquet and DuckDB writes it itself, whole table or search matches, streamed
  • Diff two databases: schema and rows compared between two files; exact added, removed and changed counts, drill-in to the rows matched by primary key, the changed cells marked
  • Whole-table sort: order by any column across every row, not just the page a header click sorts
  • Kept themes: a chosen look stays set from file to file

price, as the store shows it

The viewer is free and stays free. Pro is a subscription for this plugin: USD 2.90 a month or USD 29 a year for individual use. For organizations it is, per user, USD 5.80 a month or USD 58 a year.

where it stops

The DuckDB Lens Pro SQL console: a GROUP BY query with its four result rows in a grid
The Pro SQL console: a GROUP BY over 120,000 orders answered in 2 ms, its four rows in the grid.

what's new

more

Pricing, invoices and licensing questions go to sales@twilightventures.dev; anything else about the product to support@twilightventures.dev.