Note taking & PDF library in the age of AI.
- Manage a local library of PDFs.
- PDF annotations (compatible with Skim).
- Markdown & LaTeX editing.
- BibTeX citations.
- AI: ask questions, summaries, tagging, related work, audio, ...
- Metadata are stored in a .json file along the .pdf file.
- Easy to sync via Google Drive or git.
- Web version (see web.md).
npm install # requires node.js
npm start # builds into dist/ and launches ElectronOn first launch, choose one or more library folders and the AI command-line tools you authorize.
Settings are saved in ~/omoeba/config.json. More folders can be added later in Settings.
Only AIs with a command-line interface are used, and only those authorized in Settings. Presets:
| AI | Command |
|---|---|
| Claude Code | claude -p --output-format text |
| OpenAI Codex | codex exec --skip-git-repo-check --sandbox read-only - |
| Gemini Antigravity | agy -p {prompt} --output-format text --print-timeout 15m |
The prompt is sent on standard input, or in place of {prompt} when an argument contains it.
I personally sync PDFs using Google Drive. In Omoeba, each .pdf file has a corresponding .json file containing annotations. I also store these .json files in a git repository.
cd "~/My Drive/papers"
git init --separate-git-dir ~/git/papers.gitBuilt with Electron, TypeScript, pdf.js, KaTeX and CodeMirror.
npm run watch # rebuild on change (then reload the window with ⌘R)
npm test # unit tests (.skim codec, sidecars, search index, …)
npm run typecheck