Persephone is a notepad for Windows that opens almost anything. It starts exactly like a notepad — one empty text page — but drop in a JSON file, a Word document, a SQLite database, or a ZIP archive and it shows the content, not the bytes. And it is built to be shared with AI agents: everything you see on screen, an agent can see and drive too.
Website: andriy-viyatyk.github.io/persephone — demo videos, features and use cases, plus the board catalog.
Any file a developer meets during the day opens in place — in three tiers:
.docx/.xlsx), side-by-side diffs, and more. See the full list below.Persephone ships a built-in MCP server — enabled with one checkbox in Settings (setup guide). It exposes a single tool, call, and behind it the whole application as one object model: pages and their editors, files, settings, dialogs, the browser, boards, Git, the window itself. The agent works in the same UI you are looking at:
pages[2].editor is the grid, the Markdown preview, the browser tab, or the board you are looking at — with its content, selection, and controls. Snapshot, click, and type work on the app itself and on web pages in the built-in browser.Content lives in one place and both of you operate on it: the agent drafts, you correct; you paste, the agent transforms.
This transparency is not hundreds of hand-written MCP tools — one per screen and action, all charged to the agent's context on every turn. Instead every object in Persephone carries a small self-description: what it is, what its members are, one line of help each. The agent starts with call and no path, reads a short overview, and descends only into the branch the task is about. Each result hints at what lies below, and a wrong path answers with the right names. The agent looks at the one part of the application the task concerns — hence vision — and everything else costs nothing. A small model that got lost choosing among individual tools drives the same app through paths with few mistakes.
The engine is published as the standalone ai-vision library (npm), so any application can describe itself the same way — and when such an app runs as a board or in Persephone's browser, its model plugs straight into the same tree.
Boards turn Persephone into a platform for small personal applications: dashboards, data browsers, deployment helpers, tools specific to one project. A board runs locally in a sandboxed webview with no remote network access, is trusted per board, and pins to the sidebar next to the built-in editors.
The practical loop: describe the tool you need to your agent — it scaffolds the board, builds it, opens it, and iterates while you watch. Tools that used to stay on a "someday" list become things you get within a coffee break. See the Boards guide.
app.* API behind the agent's object model is yours too, in a JavaScript/TypeScript tab with full Node.js access. See the Scripting guide.Persephone does not collect or send usage data. It contacts other networked systems on its own in three cases only:
Everything else is network traffic you start yourself: web pages in the built-in browser, Git push/pull, boards you install, scripts you run.
| Editor | File Types | Description |
|---|---|---|
| Text Editor | all files | Monaco-powered editor with syntax highlighting for 50+ languages |
| JSON Grid | .json | Sortable, filterable table view for JSON arrays |
| CSV Grid | .csv, .tsv | Spreadsheet-like view with auto-detected delimiters |
| JSONL Grid | .grid.jsonl, .jsonl | Grid view for JSONL/NDJSON data — one JSON object per line |
| Log View | .log.jsonl | Structured viewer for JSONL log files with log-level filtering |
| Markdown Preview | .md | Rendered markdown with live updates |
| Mermaid Diagrams | .mmd, .mermaid | Rendered diagram preview with light/dark toggle |
| SVG Preview | .svg | Rendered SVG with zoom and pan |
| HTML Preview | .html | Sandboxed rendered preview with script support |
| Image Viewer | .png, .jpg, .gif, .webp, .bmp, .ico | Image viewer with zoom and pan |
| Audio / Video Player | .mp4, .mkv, .webm, .mov, .mp3, .flac, .wav, .m3u8 | Plays local and streamed media, with HLS support and an audio spectrum visualizer |
| Archive | .zip, .rar, .7z, .tar, .docx, .xlsx, .epub, .iso | Browse archive contents as a file tree; open entries inline (ZIP-based formats are writable) |
| Notebook | .note.json | Structured notes with categories, tags, and search |
| Drawing | .excalidraw | Excalidraw-based drawing editor with library persistence, export, and screen snip |
| Links | .link.json | Bookmark/link manager with tiles, list view, categories, and pinned links |
| Rest Client | .rest.json | HTTP request builder with collections, body types, and response viewer |
| Board | folder w/ board-manifest.json | Sandboxed custom HTML mini-app — dashboard, tool, viewer, or custom editor |
| Browser | — | Web browser with profiles, incognito, Tor, bookmarks, and DRM support |
| Git Tree | — | Commit-history graph with branches & tags, staging, commit, and pull/push (Git integration) |
| Git Diff | — | Side-by-side revision comparison for any tracked file (Git integration) |
| Compare | any two files | Side-by-side diff view |
More viewers and editors — PDF, Word, Excel, PowerPoint, draw.io, SQLite, and others — install on demand from the persephone-boards catalog: browse it from the Search boards tab of the Tools & Editors hub, or just open a matching file. See the Boards guide.
page/app API, autoload scriptsapp.pages, app.fs, app.settings, app.ui, app.fetchContributions, bug reports, and feature requests are more than welcome!
This project is developed with Claude AI assistance. Before contributing, please review:
Licensed under the MIT License.
TypeScript
89.0%
Rust
4.8%
CSS
2.7%
JavaScript
2.2%
Persephone is a notepad for Windows that opens almost anything. It starts exactly like a notepad — one empty text page — but drop in a JSON file, a Word document, a SQLite database, or a ZIP archive and it shows the content, not the bytes. And it is built to be shared with AI agents: everything you see on screen, an agent can see and drive too.
Website: andriy-viyatyk.github.io/persephone — demo videos, features and use cases, plus the board catalog.
Any file a developer meets during the day opens in place — in three tiers:
.docx/.xlsx), side-by-side diffs, and more. See the full list below.Persephone ships a built-in MCP server — enabled with one checkbox in Settings (setup guide). It exposes a single tool, call, and behind it the whole application as one object model: pages and their editors, files, settings, dialogs, the browser, boards, Git, the window itself. The agent works in the same UI you are looking at:
pages[2].editor is the grid, the Markdown preview, the browser tab, or the board you are looking at — with its content, selection, and controls. Snapshot, click, and type work on the app itself and on web pages in the built-in browser.Content lives in one place and both of you operate on it: the agent drafts, you correct; you paste, the agent transforms.
This transparency is not hundreds of hand-written MCP tools — one per screen and action, all charged to the agent's context on every turn. Instead every object in Persephone carries a small self-description: what it is, what its members are, one line of help each. The agent starts with call and no path, reads a short overview, and descends only into the branch the task is about. Each result hints at what lies below, and a wrong path answers with the right names. The agent looks at the one part of the application the task concerns — hence vision — and everything else costs nothing. A small model that got lost choosing among individual tools drives the same app through paths with few mistakes.
The engine is published as the standalone ai-vision library (npm), so any application can describe itself the same way — and when such an app runs as a board or in Persephone's browser, its model plugs straight into the same tree.
Boards turn Persephone into a platform for small personal applications: dashboards, data browsers, deployment helpers, tools specific to one project. A board runs locally in a sandboxed webview with no remote network access, is trusted per board, and pins to the sidebar next to the built-in editors.
The practical loop: describe the tool you need to your agent — it scaffolds the board, builds it, opens it, and iterates while you watch. Tools that used to stay on a "someday" list become things you get within a coffee break. See the Boards guide.
app.* API behind the agent's object model is yours too, in a JavaScript/TypeScript tab with full Node.js access. See the Scripting guide.Persephone does not collect or send usage data. It contacts other networked systems on its own in three cases only:
Everything else is network traffic you start yourself: web pages in the built-in browser, Git push/pull, boards you install, scripts you run.
| Editor | File Types | Description |
|---|---|---|
| Text Editor | all files | Monaco-powered editor with syntax highlighting for 50+ languages |
| JSON Grid | .json | Sortable, filterable table view for JSON arrays |
| CSV Grid | .csv, .tsv | Spreadsheet-like view with auto-detected delimiters |
| JSONL Grid | .grid.jsonl, .jsonl | Grid view for JSONL/NDJSON data — one JSON object per line |
| Log View | .log.jsonl | Structured viewer for JSONL log files with log-level filtering |
| Markdown Preview | .md | Rendered markdown with live updates |
| Mermaid Diagrams | .mmd, .mermaid | Rendered diagram preview with light/dark toggle |
| SVG Preview | .svg | Rendered SVG with zoom and pan |
| HTML Preview | .html | Sandboxed rendered preview with script support |
| Image Viewer | .png, .jpg, .gif, .webp, .bmp, .ico | Image viewer with zoom and pan |
| Audio / Video Player | .mp4, .mkv, .webm, .mov, .mp3, .flac, .wav, .m3u8 | Plays local and streamed media, with HLS support and an audio spectrum visualizer |
| Archive | .zip, .rar, .7z, .tar, .docx, .xlsx, .epub, .iso | Browse archive contents as a file tree; open entries inline (ZIP-based formats are writable) |
| Notebook | .note.json | Structured notes with categories, tags, and search |
| Drawing | .excalidraw | Excalidraw-based drawing editor with library persistence, export, and screen snip |
| Links | .link.json | Bookmark/link manager with tiles, list view, categories, and pinned links |
| Rest Client | .rest.json | HTTP request builder with collections, body types, and response viewer |
| Board | folder w/ board-manifest.json | Sandboxed custom HTML mini-app — dashboard, tool, viewer, or custom editor |
| Browser | — | Web browser with profiles, incognito, Tor, bookmarks, and DRM support |
| Git Tree | — | Commit-history graph with branches & tags, staging, commit, and pull/push (Git integration) |
| Git Diff | — | Side-by-side revision comparison for any tracked file (Git integration) |
| Compare | any two files | Side-by-side diff view |
More viewers and editors — PDF, Word, Excel, PowerPoint, draw.io, SQLite, and others — install on demand from the persephone-boards catalog: browse it from the Search boards tab of the Tools & Editors hub, or just open a matching file. See the Boards guide.
page/app API, autoload scriptsapp.pages, app.fs, app.settings, app.ui, app.fetchContributions, bug reports, and feature requests are more than welcome!
This project is developed with Claude AI assistance. Before contributing, please review:
Licensed under the MIT License.
TypeScript
89.0%
Rust
4.8%
CSS
2.7%
JavaScript
2.2%