A Markdown editor for the docs in your repo
Think with agents.
Work in docs inside your agentic coding app or your favourite code editor. Strategy, research, specs and roadmaps, kept as files in the repo your agents can read at local lightning speeds.

- Tables that sort, filter and become boards. Still plain text in your file.
- A second brain your agents can read. Files on your disk. Nothing to sync.
- Open source. Free, MIT-licensed, and no subscription.
Tables
Select a range, like a spreadsheet.
Click a cell and type, drag across a range, or paste one in. On disk it stays a Markdown table.
- Spreadsheet keys. Arrows, Tab and Enter. Drag a row or column to move it.
- Scattered cells. Cmd-click cells that are not next to each other.
- Paste a real range. From Excel, Numbers or Sheets, and back out as TSV.
- Row and column commands. Insert, delete, duplicate, sort and align, from the bar or the keyboard.

Views
Filter and sort from the header.
Name a table, and a view shows it filtered, sorted and trimmed to the columns you want. Click a header and Sheaf writes the query for you.
- From a block or a file. A named csv block in the document, or a .csv beside it.
- Filter from the header. is, is not, contains, is empty, is not empty.
- Hide what you do not need. Trim the view to the columns that matter.
- Edit through it. Change a cell or add a row, and the table behind it changes.

Boards
The same rows as a board.
Group by a column and each value becomes a column of cards. Drag a card and its value changes in the table.
- Group by any column. Every value becomes a column, with its count.
- Drag to change a value. Mouse, pen or finger. Escape puts the card back.
- Filters and sorting still apply. A board shows the rows the view keeps, in its order.
- Two lines in the file. layout: board and group: status. The rows stay text.

Blocks
Every block, rendered as you write.
Headings, callouts, task lists, maths, footnotes and code look like the finished page while you type into them.
- Slash menu. Type / for any block. Each row shows the Markdown it writes.
- Raw Markdown on demand. Cmd+Alt+E shows the Markdown of the block you are in.
- Shortcuts. Cmd+/ lists every one.
- Find and replace. Across the prose, the tables and the link addresses.

Diagrams
Diagrams drawn where you wrote them.
A mermaid block is the diagram. It draws from the colours behind it and stays text in the file.
- Mermaid, in place. Flowcharts, sequences and the rest, the way GitHub draws them.
- Light or dark. Read off the background behind it, in any theme.
- Still text underneath. The block holds the Mermaid you typed.

Agents
Hand your agent the exact lines.
Right-click any line. Copy ref and Send to terminal give your agent a quoted reference to exactly what you picked.
- Copy ref. Cmd+Shift+Alt+R, or right-click.
- Send to terminal. Cmd+Shift+Alt+T. Nothing runs until you press Enter.
- When it writes over you. Sheaf shows what it took. One undo brings it back.
- Beside any agent. Open the folder in a browser tab on your machine.

Changes
See what your agent changed.
When an agent writes your file, Sheaf marks the lines it touched. You read the change in the document, not in source control.
- Marked where it happened. A bar in the margin and a tint on the lines the write put in.
- Row by row in a table. The bar sits beside the row number, the tint across its cells.
- A tick where lines went. A write that only removed lines leaves a mark where they were.
- Yours to clear. Edit the line and its mark goes. Nothing is written to the file.

Your program's brain
Build the brain your agents read.
Strategy, research, specs, roadmaps, decisions and the tables behind them, written as files in the repo. Every agent that opens the repo reads the lot. There is no sync step, no retrieval layer and no account in the way.
- It compounds. What you wrote last month is still there, so a session starts from where the last one stopped instead of from a summary of it.
- It travels with the code. The brain sits beside what it describes. Clone the repo and you have it. Branch, and it branches with you.
- One read, whole. Plain text with the tables inside it, so an agent takes in the argument and the numbers together.
- Your structure. Folders and filenames you chose, not a schema someone else picked for you.
Markdown
Everything GitHub renders, and a little more.
Sheaf reads the Markdown you already have, and writes the same Markdown back. The markers are hidden while you type, and they are still in the file.
| Feature | In Sheaf | On GitHub |
|---|---|---|
| Markdown you already write | ||
| Text and structureHeadings, bold, italic, strikethrough, inline code, links, quotes, lists and rules | Drawn as you type | on GitHub too |
Task checkboxes- [ ] | Click the box | on GitHub too |
Code``` | A panel, coloured by its language, contents untouched | on GitHub too |
Tables| a | b | | A grid you click into | on GitHub too |
Callouts> [!NOTE] | Icon, colour and a fold | on GitHub too |
Maths$x$A price in dollars is left alone | Typeset with KaTeX | on GitHub too |
Diagrams```mermaid | Drawn, light or dark | on GitHub too |
Footnotes[^1] | Numbered, the note a hover away | on GitHub too |
Emoji by name:warning:The 1,913 names GitHub draws; one it does not know is left as you typed it | Drawn as the emoji | on GitHub too |
| Images | Resize, align and caption in place | on GitHub too |
Front matter--- | In full, on one line, or hidden | as a table |
| What Sheaf adds | ||
Highlights==like this== | Marked up, no comment needed | the equals signs |
CSV and TSV blocks```csv | A spreadsheet grid, not a wall of pipes | a code block |
Views```view | One table filtered, sorted, trimmed and editable | a code block |
Boardslayout: board | Cards in columns, dragged to change a value | a code block |
Data files.csv, .tsv | A grid of its own, or read by a view | as a table |
Comments<!-- --> | A note you can collapse | hidden |
Everything in the lower half is a fenced block or an HTML comment, apart from the highlights, so GitHub still renders the file, every other editor still opens it, and an agent still reads the whole thing in one pass.
Those six are our calls, and none of them is final. Sheaf is MIT, so if you want a different syntax or a different way of drawing one, fork it and make it yours.
Release notes
What shipped in 0.3.0.
Released on 2 October 2026, 30 changes in all. These are the new things, andthe changelog has the rest.
- In a table, double-click the divider beside a column's heading to fit that column to its content.
- In a table, double-click a row's edge to read all of a long cell.
- A plain click on a link opens it, wherever the link is.
- The editor no longer loads the HTML, CSS and JavaScript grammars to open a Markdown document.
- The editor opens without the maths typesetter and fetches it the first time a document shows an equation.
Your files stay yours
It is still just a folder of Markdown (ish).
- No import step. Your files, where they already are.
- Only your changes change. git diff shows exactly what you did.
- Every commit, forever. No plan tier expires your history.
- Nothing to sign up for. No account, no database, no cloud.
- The (ish). A csv or view block shows as a code block anywhere else.
- Your .txt notes too. Right-click one and open it in Sheaf, read exactly as a .md. Double-clicking still gives you plain text.
- Never locked in. Uninstall Sheaf and your documents are exactly as you left them.