DesktopAcademic Companion
A Desktop App That Sits Through Lectures With You
Academic Companion turns syllabi, assignment PDFs and recorded lectures into deadlines, summaries and a chat over everything in a class.
Rochester, N.Y. Every semester starts the same way: a syllabus per class, a pile of PDFs and deadlines scattered across all of them. Academic Companion is the desktop app I built to handle that. Internally it's called Academic Weapon, which explains the sword in the logo.
You create a class and drop in the syllabus and assignment PDFs. It pulls out deadlines and exams and puts them in a tracker and a calendar. Hit record during a lecture and it transcribes it, then writes a summary and key topics. After that you can chat with one class, or across all of them at once.
Both sit behind the same Rust interface, so the rest of the app doesn't care which one is on.
It's a Tauri 2 app. The Rust backend owns everything: files, the database, audio and AI calls, across 19 modules and about 55 commands. The React frontend never touches any of it directly; it only talks to Rust through invoke(). Lecture audio is recorded in Rust too, with cpal and hound.
PDF parsing and local transcription live in a Python FastAPI sidecar that the app starts on its own. I bundled it with PyInstaller, so students don't need Python installed. It handles PDF-to-markdown conversion with pymupdf4llm, deadline and exam extraction, and faster-whisper transcription.
One setting decides where the AI runs. In local mode everything runs on your machine with Ollama (qwen2.5:1.5b for chat, llava for images) and faster-whisper. In cloud mode it uses Groq for Whisper and Llama 3.3 70B, which is much faster. Both sit behind the same Rust interface, so the rest of the app doesn't care which one is on. The Windows installer even downloads and installs Ollama for you.
Chat is backed by an embedded LanceDB vector store that indexes documents, notes and recordings per class. Honest note: the vectors come from a simple hashed bag-of-words function right now, a stopgap I marked in the code. Real embeddings from Ollama are the obvious replacement.
Around all that I added the things students actually reach for: 11 tools including a Pomodoro timer, GPA and grade calculators, a flashcard generator, a citation generator, an email drafter and a tldraw whiteboard. There are also notes, a calendar with .ics export, a habit tracker and spotlight search. A background task queue runs the slower LLM jobs like flashcards and deadline extraction.
Most of the app came together over three days in February 2026, with the installer and sidecar build done around March 1. There's no public download yet, so I recorded short demo clips of each flow: recording and summaries, drag-and-drop deadlines, chat, the local and Groq switch, and the tools.
How it works
Academic Companion, start to finish, in 6 steps.
- Step 1:
Import
Drop in syllabi and assignment PDFs
- Step 2:
Parse
Python sidecar extracts text, deadlines and exams
- Step 3:
Record
Rust captures lecture audio
- Step 4:
Transcribe
faster-whisper locally or Whisper on Groq
- Step 5:
Summarize
LLM writes summaries and key topics
- Step 6:
Ask
Chat per class or across every class
Graphic: The Sahil Bachu