Crate turns any folder of files into a searchable, citable workspace for you and your AI agent. Everything runs in your browser. Nothing is ever uploaded.
There is no server API. Text extraction, OCR, embeddings and search all run inside the tab. Your data sits in IndexedDB on your machine and is gone when you clear it.
search_documentsopen_documentcite_sourcesummarize_doccompare_documentsextract_tableexport_tableask_my_filesget_crate_statusform toolname="ask"form toolname="upload_folder"cite_source draws a green ring around the exact span the answer came from, live in the viewer, while you watch.
BM25 keywords plus MiniLM embeddings on WebGPU, degrading gracefully to lexical only when the model is unavailable.
Every image is OCR'd locally with tesseract.js. That folder of whiteboard photos is now a queryable corpus.
Same URL, same session, same files. The agent inherits your browser.
Every tool carries spec annotations. The two mutating tools require the agent to ask you first, then pass confirm.
Drag any folder onto the page. Crate walks it, skips the junk, reads every file locally.
Text is extracted, OCR runs, everything is chunked and embedded in your browser. The toolset goes live.
Your agent searches, opens, cites and exports. You watch every call in the activity strip.
Your files were always yours. Now they speak agent.
No. There is no upload endpoint in the codebase. Text extraction, OCR, embeddings and search all run inside your browser tab. Data is stored in your browser's IndexedDB and stays on your machine.
Open the site in ChatGPT's in-app browser, or Chrome 149+ with the WebMCP testing flag enabled, or any agent that speaks WebMCP. Without one of those, everything except agent invocation still works: drop, search, ask, read.
PDFs (page by page), images (OCR'd locally, so screenshots become searchable), Markdown, CSV, code in 30+ languages, and plain text. Files over 25 MB are skipped.
The agent calls typed functions with JSON schemas instead of guessing at pixels and DOM. It is faster, more reliable, and runs on your session with your files, while you watch every call happen on the page.