Your files.
One place.
Keep the reports, notes, data and code your agents make. Find them again, edit them in place, and share the file instead of another copy.
Works with Claude, Codex and Cursor.
Retrieval notes
Chunk boundaries matter more than embedding choice. Three runs, same corpus, and the only variable that moved recall was where we split.
What we changed
Not just markdown.
CSV files open as tables. Images and PDFs get their own viewers. JSON and source code are structured and highlighted, with raw source one click away.
Retrieval notes
Chunk boundaries matter more than embedding choice. Three runs over the same corpus, and the only variable that moved recall was where we split the document.
What we changed
Tables, checklists, code blocks, links and nested lists all render, and all round-trip back to clean Markdown when you save.
1{ 2 "run": 114, 3 "strategy": "heading-split", 4 "corpus": "long-documents", 5 "metrics": { 6 "recall@10": 0.914, 7 "precision@10": 0.782, 8 "median_latency_ms": 148 9 }, 10 "regressions": [], 11 "passed": true 12}
Keys, strings and numbers are coloured, nesting is collapsible, and invalid JSON is caught before it can be saved.
| Region | Edge | p50 ms | p99 ms | Requests |
|---|---|---|---|---|
| us-east | IAD | 41 | 118 | 1,284,003 |
| eu-west | DUB | 38 | 102 | 908,441 |
| ap-south | BOM | 56 | 163 | 412,770 |
| sa-east | GRU | 62 | 181 | 204,118 |
| af-south | CPT | 71 | 209 | 88,652 |
Delimited data becomes a real table with a header row, not a wall of commas you have to parse in your head.
PNG, JPEG, WebP, GIF and AVIF open as images, fitted or at actual size, and PDFs open in the browser's own viewer. SVG is kept as readable source, for the reason under HTML.
1// Split on headings, carrying the parent down. 2export function chunk(doc: Document): Chunk[] { 3 const out: Chunk[] = []; 4 let parent = ''; 5 6 for (const block of doc.blocks) { 7 if (block.type === 'heading') parent = block.text; 8 else out.push({ parent, text: block.text }); 9 } 10 11 return out; 12}
Syntax highlighting, code folding, in-file search, line wrapping and an indentation setting that respects the file you're actually in.
1<section class="digest"> 2 <h1>Week 38</h1> 3 <p>Recall up 4.1 points after the 4 chunker change.</p> 5</section>
A real editor, built in.
Files open rendered and edit in place, so correcting a number or rewriting a paragraph doesn't mean exporting it somewhere else and bringing it back.
- Rich Markdown with tables, checklists and code blocks, exported back as clean Markdown
- A syntax-aware editor for everything else, with folding, search and formatting for six languages
- Drafts survive reloads. Invalid JSON is caught before it can overwrite something good.
Chunking v2
Heading-aware splitting, with the parent carried into every child chunk.
| Strategy | Recall | Δ |
|---|---|---|
| Fixed 512 | 0.873 | — |
| Heading split | 0.914 | +4.1 |
Hand someone the file, not a paste.
Share one artifact or a whole folder with an email address. They open the real document, and if you give them edit access their changes land in the same file instead of a copy that quietly drifts out of date. Someone without an account can have a link.
- View or edit, on a single file or a whole folder. A folder grant covers everything inside it, including files added later
- Access follows the verified email address. Copying the app's URL for a file grants nothing
- Anonymous links are unguessable, kept out of search engines, rate-limited and revocable, and one screen lists everything reachable without signing in
- Your labels, colours and stars stay yours. They never travel with the file
The first share to someone emails them an invitation that names you and nothing else. Later shares to the same person within 24 hours stay quiet, so an agent sharing thirty files sends one email, not thirty.
Hard to lose.
Every save writes a new version instead of painting over the last one, so a bad overwrite is something you recover from rather than something you explain.
- VersionedEvery save writes a new version. Yesterday's copy is still there when today's goes wrong.
- Private by defaultNothing leaves your library until you share it, with a person by address or with a link you can revoke at any time.
- Still youngShelf is new. Keep your own copy of anything you cannot afford to lose.
Your agents get a shelf too.
Install the skills once and Claude, Codex or Cursor work from the same library you do. Same files, same folders, same sharing. An agent writes the report, you fix the number it got wrong, and whoever needs it opens the file rather than a wall of chat.
- 01 / Install the CLI
npm install -g @shelftrove/cli - 02 / Connect your account
trove auth login - 03 / Install the agent skills
trove skills install
Node 20.11 or newer, no runtime dependencies. Every command
takes --json, and the JSON is the contract.
Free while it's new.
Everything on this page works today at no cost. These are the real limits, not a headline number with an asterisk under it.
- Storage
- 1 GB per account.
- Files
- Up to 100,000 artifacts.
- File size
- 1 MB each. Text goes a long way at that size.
- Writes
- 100 a minute, 5,000 a day. An agent working flat out stays inside that.
- Reads
- 600 a minute.
- Other changes
- 300 a minute for renames, keywords, labels and folders.
- Sign-in codes
- 10 an hour from one network address.
- History
- The last 3 versions of every file, and you can raise it to 100. Older versions are kept for up to 30 days.
- Deleted files
- Recoverable for 30 days before they are purged.
- Sharing
- Up to 100 people per file or folder, as viewer or editor.
- Links
- 100 new anonymous links an hour, once your account is a day old.
- Agents
- Every skill, on every agent you use. No separate tier.
A paid plan with higher limits and more features is something we are thinking about. Nothing is decided and nothing is scheduled, so please treat that as an intention rather than a promise. If it happens, what you have already put in Shelf stays yours and stays reachable.
Questions
What is Shelf?
Where is my content stored?
Can my agents use it?
Can I share a file?
Make room for the work.
Sign in with your email and start putting things somewhere they'll survive.