A polyglot notebook powered by Bun.
TypeScript-first with Python support. One command, zero config.
bunx @codepawl/yeastbook newThat's it. No Python, no conda, no kernel installs. Opens in your browser in under 1 second.
| Jupyter | Marimo | Yeastbook | |
|---|---|---|---|
| Language | Python (+ kernels) | Python | TypeScript + Python |
| Runtime | IPython + ZeroMQ | Python | Bun (fast, single binary) |
| Setup | conda/pip + kernel install | pip install | bunx or single binary |
| Top-level await | No | No | Yes |
| Type checking | No | No | Monaco + TypeScript |
| Format | .ipynb (complex JSON) | .py | .ybk + .ipynb + .ybk.md |
| Package install | %pip install |
import |
%install lodash |
| Cross-language | Kernels (no shared state) | No | YeastBridge (shared data) |
| SQL | Needs extensions | No | %sql built-in |
|
|
- Runtime: Bun — fast JavaScript/TypeScript runtime
- Language: TypeScript (with Python cell support via persistent daemon)
- Editor: Monaco (VS Code's editor engine) with IntelliSense
- UI: React, bundled via Bun's built-in bundler
- Database: bun:sqlite for SQL cells
- Format:
.ybk(JSON-based) with.ipynbimport/export - CI/CD: GitHub Actions — test, build, publish on tag push
# Run instantly (no install needed)
bunx @codepawl/yeastbook new
# Or install globally
bun install -g @codepawl/yeastbook
yeastbook new
# Or download a binary (no Bun required)
curl -fsSL https://github.com/codepawl/yeastbook/releases/latest/download/install.sh | bash
# Or via Homebrew (macOS/Linux)
brew install codepawl/tap/yeastbookSearch "Yeastbook" in VS Code Extensions, or install from the Marketplace.
yeastbook doctor # Verify Bun, Python, venv, portsToggle any code cell to Python with the language badge or press L in command mode.
import numpy as np
data = np.random.randn(1000)
print(f"Mean: {data.mean():.4f}, Std: {data.std():.4f}")YeastBridge — share data between TypeScript and Python:
// TypeScript cell
yb.push("config", { lr: 0.001, epochs: 10 })# Python cell
config = yb.get("config")
print(config["lr"]) # 0.001Yeastbook auto-detects virtualenvs (.venv/ or venv/) and injects them automatically.
Query SQLite databases and CSV files directly in your notebook:
%sql import sales.csv as sales
%sql SELECT category, SUM(amount) as total FROM sales GROUP BY category ORDER BY total DESC
%sql attach analytics.db
%sql @analytics SELECT * FROM events WHERE date > '2024-01-01' LIMIT 100
Results render as interactive tables with sorting, filtering, and pagination.
// Chart.js
;({ __type: "chart", data: [10, 20, 30], config: { chartType: "bar", title: "Sales" } })
// Vega-Lite
;({ __type: "vega", spec: { $schema: "...", data: { values: [...] }, mark: "bar", encoding: {...} } })
// DataFrame
;({ __type: "dataframe", columns: ["name", "age"], data: [{name: "Alice", age: 30}], shape: [100, 2] })
// LaTeX
;({ __type: "math", latex: "E = mc^2" })
// HTML
;({ __type: "html", html: "<h1 style='color: tomato'>Hello</h1>" })
// Table (any array of objects auto-renders)
[{ name: "Alice", age: 30 }, { name: "Bob", age: 25 }]yeastbook new # Create new .ybk notebook
yeastbook new --ipynb # Create new .ipynb notebook
yeastbook new --template <name> # Create from template
yeastbook <file.ybk> # Open existing notebook
yeastbook export <file.ybk> # Convert .ybk -> .ipynb
yeastbook import <file.ipynb> # Convert .ipynb -> .ybk
yeastbook export-md <file.ybk> # Convert .ybk -> .ybk.md (readable diff)
yeastbook import-md <file.ybk.md> # Convert .ybk.md -> .ybk
yeastbook export-script <file.ybk> # Export to .ts script
yeastbook strip-outputs <file.ybk> # Remove outputs for clean commits
yeastbook doctor # Check system requirements| Shortcut | Action |
|---|---|
Shift+Enter |
Run cell & advance |
Ctrl+Enter |
Run cell & stay |
Ctrl+S |
Save |
Ctrl+Shift+P |
Command palette |
Ctrl+Shift+E |
Toggle presentation mode |
Ctrl+Shift+H |
Find & replace across cells |
Ctrl+Shift+D |
Select across all cells |
A / B |
Add cell above / below (command mode) |
D D |
Delete cell (command mode) |
M / Y |
Switch to markdown / code |
L |
Toggle TypeScript / Python |
git clone https://github.com/codepawl/yeastbook
cd yeastbook
bun install
bun run dev # Build UI + start dev server with hot reload
bun test # Run tests (285 tests)
bun run build:all # Full build (UI + embed + all platform binaries)packages/
core/ @codepawl/yeastbook-core — shared types, transforms, format conversion
app/ @codepawl/yeastbook — CLI, server, kernel, SQL engine
ui/ @codepawl/yeastbook-ui — React UI (Monaco editor, rich outputs)
vscode/ vscode-yeastbook — VS Code extension (notebook API)
Releases are automated via GitHub Actions on tag push (v*.*.*). Manual publish:
npm login
bun run publish:allSee CONTRIBUTING.md. PRs welcome!
Built with Claude Code as coding assistant.



