Skip to content

About

No description, website, or topics provided.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Marginalia app icon: a handwritten M crossing a violet margin line

Marginalia

Handwritten study notes beside your PDFs, for Android tablets.

CI License: GPL-3.0 API 29+ Kotlin

marginalia-film.mp4

Today dashboard with review queue, focus timer and study streak A paper with highlighted text and handwritten notes in the margin Reviewing a card made from a figure, with a handwritten answer and spaced-repetition grades Search results across highlights, handwriting and PDF pages Ask answering a question about the library with equations, numbered citations and a preview of the cited page Today dashboard in the light theme

Lecture slides, papers and textbooks already say most of it. Marginalia gives you the margin: every PDF page gets a writable strip beside it, so your notes live next to the passage they belong to. Then it helps you actually remember them, with flashcards, spaced review, and search that reads your handwriting.

The stylus writes; your finger scrolls and zooms. Offline-first, no account, no cloud required. Your notes stay on your tablet.

Features

Write

  • ✍️ Write beside the page, or on it. A margin canvas next to every PDF page, plus ink directly on the page.
  • 🖍️ Smart highlighter. Highlighter strokes straighten onto the text lines underneath and capture the text.
  • 🔷 Hold to shape. Draw a line, arrow, circle, box or triangle and hold the nib; it snaps clean.
  • 🧽 Scratch out to erase, eraser sizes, and a lasso to move, scale, recolour or copy ink.
  • 🎨 Pen widths and colours, a laser pointer, and a configurable M-Pencil double-tap.

Remember

  • 🗂️ Flashcards from anything. Lasso a region, turn a highlight into a cloze card, or type one.
  • 🔁 Spaced repetition (SM-2) with a daily review queue and a gentle evening reminder.
  • 🔎 Search everything. PDF text, highlights, and your own handwriting, recognised on-device.

Stay on track

  • 📅 Today dashboard. What's due, what to continue, and a focus timer, at a glance.
  • 🔥 Study time tracks itself, with a daily goal, streaks and a Stats screen.
  • 📚 Library for courses and papers. Tags, reading status, arXiv/DOI detection and one-tap BibTeX.

Optional AI

  • ✦ Ask your library. It searches your papers, reads the pages and checks figures before it answers, then cites each claim with numbered sources you can tap to open the page. Answers render math, tables and diagrams.
  • 📝 Ask beside the page. In a notebook it knows the page you're on and your notes on it: explain a page, summarise the paper, draft flashcards, or lasso a figure and ask about it.
  • It uses your ChatGPT plan through OpenAI's "Sign in with ChatGPT", with no API key, and you can pick the model and effort for each action. Nothing is sent unless you ask. Any OpenAI-compatible endpoint (for example Ollama) works too.

See the roadmap for what's next.

Building

You need JDK 17 or newer and the Android SDK.

./gradlew :app:installDebug

Launch from the tablet, or over adb:

adb shell am start -n com.serendeep.marginalia/.MainActivity

Testing

./gradlew test

The connected suite (./gradlew connectedDebugAndroidTest) uninstalls the app when it finishes, which deletes all app data. Run it on an emulator only, never on a tablet you take notes on.

CI runs the unit suite and the emulator suite on every pull request. The emulator suite covers database migrations, lecture CRUD, PDF import, zoom, links, search and ink editing.

Releases

Release Please opens and maintains a release PR from conventional commits on main. Merge that PR to create the GitHub Release, build a signed APK, attach it to the release, and publish it to GitHub Packages as com.serendeep.marginalia:marginalia.

Before the first release, add these repository Actions secrets:

  • SIGNING_KEYSTORE_BASE64 — base64-encoded Android keystore
  • SIGNING_STORE_PASSWORD
  • SIGNING_KEY_ALIAS
  • SIGNING_KEY_PASSWORD

Built with

Contributing

Bug reports, screenshots of broken layouts, and PRs are all welcome: see CONTRIBUTING.md. Licensed under GPL-3.0.

Marginalia is built by Serendeep Rudraraju. The case study covers why it works the way it does.

About

No description, website, or topics provided.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages