Notebook
Notebook is a format where SQL is split into cells, each runs independently, results stick around between runs. Like Jupyter, but no Python — just SQL and Markdown.
Why
The regular SQL editor is great for one-off queries. Notebook is for when you:
- Prepare an ad-hoc report: 5–10 queries in the flow "load → clean → aggregate → export".
- Want to keep an incident postmortem: "here's the slow query, here's the EXPLAIN, here's the fix".
- Share an analysis with a teammate: one file with SQL + Markdown commentary.
Create
+ New tab → Notebook or from the tab dropdown: New Notebook.
An empty document opens with one empty cell.
Cells
Two types:
SQL cell
- ▶ Run cell button or ⌘+Enter — executes and shows the result below.
- Run all — executes top to bottom in order.
- The result persists between runs (saved with the notebook file).
Markdown cell
- Text notes with markdown support: headings, lists, links, inline code.
- Double-click to enter edit mode. Click outside to render.
Toggle between types via the icon in the cell's top-right (SQL ↔ Text).
Cell management
Icons left of each cell:
- + add a cell above / below
- ↑↓ move
- × delete
- ▶▶ run from this cell to the bottom
Saving
File → Save notebook or ⌘+S. File extension — .ide99-nb (it's JSON: list of cells + last results + connection reference).
To open one — File → Open notebook or drag&drop the file onto the ide99 window.
What's in the file
A report.ide99-nb file is plain JSON, drop it into git:
{
"version": 1,
"title": "Q4 revenue analysis",
"connection_hint": "db_prod",
"cells": [
{ "type": "markdown", "body": "# Daily revenue\n\nLast 30 days:" },
{ "type": "sql", "body": "SELECT ... LIMIT 30;", "result": { "rows": 30, "duration_ms": 142 } }
]
}
connection_hint — the connection name at save time. When opening on another machine, ide99 looks for a connection with that name; if not found — it prompts you to pick one.
What's not saved
- Result contents (just metadata: row count, duration). Safe to share via git — no data leakage.
- Connection passwords (those live in keychain, not in the file).
If you want to export results with data — use Export on a specific cell (CSV, JSON, Excel).
Tip: on-call workflow
A template for incident postmortems:
- Markdown cell: link to incident + date
- SQL:
SELECT * FROM events WHERE event_at BETWEEN ... ORDER BY ts;
- SQL:
EXPLAIN ANALYZE of the slow query
- Markdown: root cause + fix
- SQL: confirmation that things work after the fix
Save as 2026-05-22-incident-orders.ide99-nb, commit to your team's repo.
Next
- SQL editor — regular mode with one tab and a result panel.
- Query history — global history, separate from notebooks.