Cafe

GPU-drawn, written in Rust

All your work, one window.

Cafe is a code editor that kept going. Servers, containers, databases, APIs, notes, spreadsheets, documents, PDFs and images open as tabs beside your code, and Claude can see and help in every one of them.

15,206 tests passingLinux first, then macOS and WindowsComing soon

The workspace

Stop alt-tabbing through your day.

Every tool shares the same tabs, splits, windows, command palette and keyboard. Click the activity bar, or let the tour play.

orders.rs — orders — Cafe
orders.rsget-order.reqCargo.toml
1use crate::db::Pool;
2
3/// The order's total including tax.
4pub async fn order_total(pool: &Pool, id: i64) -> Result<Money> {
5 let lines = pool.order_lines(id).await?;
6 let subtotal: Money = lines.iter().map(|l| l.price * l.qty).sum();
7 let tax = subtotal * TAX_RATE;
8 Ok(subtotal + tax)
9}
10
11#[cfg(test)]
12mod tests;
Tab accept next edit
⇄ local⎇ mainLn 7, Col 5UTF-8Rustrust-analyzer ✓Claude · Sonnet
Containersorders.rs
proxynginx:1.27 · :443
apiorders-api · :8080
workerrestarted 2× · 4m
postgrespostgres:17 · :5432
redisredis:7 · :6379
⇄ local5 containerscompose: ordersTroubleshoot worker with Claude
get-order.reqcreate-order.reqorders.rs
GET{{base}}/orders/42Send
200 OK41 ms1.2 KBenv: staging (branch)
{ "id": 42, "status": "paid", "lines": [ { "sku": "ESP-250", "qty": 2 }, { "sku": "FLT-01", "qty": 1 } ], "total": 31.40 }
Tests
  • status is 200
  • total equals the sum of lines
  • pm.expect(json.status) is "paid"
  • matches the committed snapshot
⇄ localorders/ collectionQuickJSGenerate tests with Claude
Espresso dial-in.md2026-10-24.md

Espresso dial-in

tags#coffee #recipegrinderNiche, 14

Ratio target is r = mout / min ≈ 2. Pulled 18 g into 36 g in 28 s, settings from Grinder settings.Link? Bean log

Tip. Grind finer before you touch the dose.
Backlinks
  • Daily · 2026-10-24…tried the new beans in Espresso dial-in
  • Bean log…dialled in on the Espresso dial-in note
Related notes
  • Bean log
  • Grinder settings
  • Milk steaming
⇄ vaultLive previewgit sync ✓212 wordsAsk your vault
Q3 sales.xlsxReport.docxInvoice.pdf
D2fx=SUMIFS(Sales[Total], Sales[Region], A2)
ABCD
1RegionOrdersAvgTotal
2Cape Town1,204R 86R 103,544
3Joburg1,872R 79R 147,888
4Durban644R 91R 58,604
5Online2,310R 64R 147,840
Total by region
CPTJHBDBNWeb
⇄ localSum R 457,876Count 4Formula from English
Agentsorders.rs
fix-flaky-sync cafe/agent/fix-flaky-sync
Ready to review
100%
MergeOpen PRReview diffDiscard
order-tax-tests cafe/agent/order-tax-tests
Running
64%
› cargo test -p orders · 37 passed
openapi-sync cafe/agent/openapi-sync
Needs permission
38%
Wants to run: curl https://staging.example/openapi.json
⇄ local3 of 4 slots in useworktrees in ../.cafe-worktreesBackground agents

CodeNext-edit prediction offers the next lines in grey. Press Tab and they land as a single undo step.

The real thing

Screenshots, not mock-ups.

The tour above is a sketch. These are Cafe itself, taken from the current build.

15,206tests across 571 test binaries, run before changes land
100+MCP tools so Claude Code can drive every part of Cafe
10 msto run a Bases query over 10,000 notes
4background agents at once by default, each in its own git worktree (up to 32)

Claude, everywhere

Press Ctrl Alt L in any tab.

Whatever you're looking at goes to Claude as a chip you can remove. It runs on your Claude subscription through Claude Code, or an API key from your keyring. Every change Claude makes arrives as a preview and undoes in one step.

terminal · cargo test · exit 101
why is this failing?
The tax test expects 31.40 but rounding gives 31.39.Round once, after summing the lines. Show the fix?

Ask about anything on screen

Editor, terminal, git, containers, database results, logs, PDFs, sheets, documents, images and notes all hand their content over.

~/orders ❯ rust files changed this week, bigger than 10 KBfd -e rs --changed-within 1w --size +10kInserted at the prompt. Cafe never runs it for you.

English at the prompt

Ctrl K at the prompt turns a sentence into a command. Failed commands and tasks get Explain failure.

orders.rs +12 −3 · tests.rs +28
Round order tax once after summing linesWritten in this repo's style. PR title and description go through gh.

Git that writes itself up

Commit messages, pull requests, AI review with Apply fix, and Explain commit or blame line.

Next-edit prediction

Tab, Tab. Plus Fix and Explain on diagnostics, Generate Tests and Write Docs.

Data that explains itself

SQL from English, Explain result and Fix query. Container troubleshooting and Compose files from a description.

Office with tracked changes

Proofread, rewrite or translate as tracked changes. Formulas from English, chat with a PDF, alt text for images.

Agents in the background

Four Claude Code agents at once by default, each on its own branch. Watch the transcript, then merge, open a PR or discard.

Notes

Open your Obsidian vault. Keep every file as it was.

Any folder is a vault. Cafe reads your .obsidian/ settings, writes plain Markdown, and you can switch back to Obsidian at any time.

  • Links that hold together. Wikilinks, backlinks, tags, properties, callouts and embeds. Renaming a note updates every link to it.
  • Graph, Canvas and Bases. Bases tables run their full expression language and stay editable.
  • Search by meaning. A small embedding model runs on your machine to find related notes, and Ask your vault answers with [[links]] to the notes it used.
  • Synced with git. Commit, pull and push in the background when you turn it on. Never a force push.
An Obsidian vault in Cafe: a note in live preview beside the graph of linked notes
drag to turn · 8 topics · 96 notes

Everything in the box

One install replaces a shelf of apps.

Each of these opens as a tab, splits beside your code, and can move to its own window. Cafe doesn't do everything each app on the shelf does; it does the parts you use every day.

Code

  • Multi-cursor editing that stays quick in a 5 MB file
  • Language servers installed for you, with rename and workspace symbols
  • tree-sitter highlighting and Vim mode
  • A debugger with breakpoints and Explain this stop
  • Git staging, blame, diffs and conflicts. Tasks.

Servers and data

  • SFTP and remote editing over plain SSH
  • Docker as a live graph: stats, logs, actions and Compose
  • A Postgres client with results and Explain plans
  • A log viewer with plain-English filters
  • A terminal with shell integration for bash, zsh and fish

API client

  • One request per .req file. A folder is a collection.
  • Scripts on QuickJS with Postman's pm.* API
  • WebSocket, SSE and gRPC alongside REST and every auth
  • Postman and OpenAPI import, a mock server and a CLI for CI
  • Secrets in the OS keyring. Environments follow your branch.

Notes

  • Opens your Obsidian vault and keeps its files as they are
  • Live preview, Source and Reading modes
  • Daily notes, templates, graph, Canvas and Bases
  • Typeset maths and Mermaid diagrams
  • An audio recorder and git sync

Office files

  • Sheets with formulas, PivotTables, charts and page layout
  • Documents with tracked changes, comments, tables and charts
  • PDF: organise, comment, fill forms, redact, sign, OCR and compare
  • An image editor with layers, selections, painting, filters and type

Platform

  • Windows that remember: drag a tab out, and every window comes back on restart
  • Web apps as Services tabs, drawn by an embedded Chromium
  • WASM extensions that ask for each permission
  • Claude Code settings: subagents, skills, hooks and MCP servers
  • Project templates and the New Project wizard

What it stands in for

  • VS Code, CursorThe editor
  • Postman, Insomnia, BrunoAPI client
  • ObsidianNotes
  • TablePlus, DBeaver, pgAdminDatabases (Postgres)
  • Docker Desktop's dashboardContainers
  • FileZilla, CyberduckSFTP
  • Word, Excel, AcrobatDocuments, Sheets, PDF
  • Photoshop, PhotopeaImage editor

The full list: what Cafe replacesEvery feature, in detail

Fast because it's drawn on the GPU.

Cafe is built in Rust on gpui, the GPU-accelerated UI framework from Zed. Parsing, indexing and graph layout run off the UI thread, so typing doesn't wait.

You decide what leaves your machine.

  • Secret files are refused outright
  • Database and SSH passwords, API secrets and tokens are masked
  • AI stays off for remote hosts until you allow each one
  • Turn AI off for any project
  • The usage log keeps costs, never prompt text

Extend it with WebAssembly.

Add commands, panels, languages, editor actions, note renderers and Bases functions, with the Rust SDK. Install from a git URL pinned by hash, and grant network, process or AI access one at a time.

Cafe Cloud

One account for you and your team.

Accounts with an email code, GitHub or Google. Invite your team, set roles, and see who changed what. Cafe Cloud includes the online suite, starting with Sorted: team projects and chat, where every item is a conversation.

  • Cafe Cloud accounts Email code, GitHub or Google.
  • Teams Owners, admins and members, invite links and an audit log.
  • Sorted Team projects and chat. Coming to Cafe next.
  • Works offline Your licence keeps working for 14 days without a connection.

Get Cafe

Pull up a chair.

Cafe is coming soon, Linux first. Claude features use the Claude subscription you already have.

Linux

Your system

x86-64 · Wayland and X11

Coming soon

macOS

Your system

Apple Silicon and Intel

Coming soon

Windows

Your system

x64 · installer

Coming soon