Agent-first paper management.
Your papers are plain Markdown files. Your AI assistant can read them, write them, and answer questions about them.
Download · Try in browser · 中文
A desktop app (and a read-only web app) for organizing academic papers. Your library is a plain folder of Markdown files — no proprietary database, no lock-in. An AI agent of your choice reads and writes that library through the same files you see.
- Your data stays yours. A CSV plus a folder of Markdown files. Open in Excel, VS Code, anywhere. Version-control with Git.
- AI does the busywork. Ask in natural language: "summarize my unread NLP papers", "tag the diffusion ones", "import this arXiv paper". The agent reads and writes the same files you see.
- Bring your own model. OpenAI, Claude, or Gemini — paste your API key, switch any time.
- Works online too. The web build connects directly to your S3 / R2 / B2 bucket — same UI, same agent.
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | Verko-X.Y.Z-arm64.dmg |
| macOS (Intel) | Verko-X.Y.Z.dmg |
| Windows | Verko-Setup-X.Y.Z.exe |
| Linux | Verko-X.Y.Z.AppImage / verko_X.Y.Z_amd64.deb |
→ Get the latest at Releases.
catvinci-studio.github.io/Verko — connect any S3-compatible bucket (AWS S3, Cloudflare R2, Backblaze B2, MinIO). Your bucket needs CORS allowed for the page origin.
- Launch Verko → pick Open existing folder or Create new local library (web build: Connect S3 instead).
- Open Settings → Agent, paste an API key for OpenAI / Claude / Gemini.
- Press ⌘K or click the Agent in the sidebar — ask anything about your library.
my-library/
papers.csv ← canonical field data: title, authors, status, …
papers/
2017-vaswani-attention.md ← your free-form notes (markdown only)
attachments/
2017-vaswani-attention.pdf
schema.md ← column definitions (yours to extend)
collections.json ← collection membership
skills/ ← optional: your agent workflow templates
papers.csv is the source of truth for every field — open it in Excel, edit a column, the app picks up the change. Each paper's .md file holds only the notes body:
## Key insight
Replace recurrence with self-attention...
## My takeaway
Read the section on positional encoding twice.Out of the box:
- Search and summarize across the whole library
- Add / update papers — direct CSV edits, or import from arXiv
- Look at PDF pages (with vision-capable models — figures, equations, tables)
- Manage collections and tags
- Take notes as you read;
@-mention papers in chat to pin them to the current question
You can extend the agent with your own skills — drop a markdown file in skills/ with name + description frontmatter. The agent sees the description in its prompt and loads the body on demand.
When a conversation gets long, type /compact to compress it; the full transcript is archived. Earlier turns get summarized so the next ones stay coherent without burning context.
All file access is scoped to registered library directories — the agent literally cannot reach files outside.
git clone https://github.com/CatVinci-Studio/Verko.git
cd Verko
npm install
npm run dev # Electron dev mode
npm run build:web # Static web build → dist-web/
npm run dist:mac # or :win / :linuxRequires Node 20+. Codebase layout: CLAUDE.md.
MIT © CatVinci Studio
