ReleasedSep 2026
Canvas Buddy
Ask questions about your Canvas classes from a small terminal app.
01The problem
Finding one policy or deadline means opening a dozen Canvas tabs. Canvas Buddy keeps a local cache of your classes and lets you ask things like "When is the midterm? Cite the syllabus."
02What I built
01
Answers with sources
Uses your existing Codex or OpenCode CLI login, or a local Ollama model. Replies stream in and link back to the Canvas source.
02
Home screen
Upcoming work, what Canvas posted, moved or removed in the last week, and current grades.
03
Library and planner
Each course laid out the way Canvas does, with a reader that jumps to PDF pages and slides, and a planner of work by day with overdue work first.
04
Local and read-only
Local storage, read-only Canvas access. Without a model you can still sync, browse, search and check deadlines.
05
Installs with brew
Prebuilt Homebrew packages for Apple Silicon and Intel; no Python setup or repo clone. 0.4.0 is a personal-testing release; wider onboarding needs Canvas OAuth.
03Architecture
Five runtime dependencies (Textual, HTTPX, Beautiful Soup, python-dotenv, pypdf). Search runs on SQLite FTS5 from the standard library; local embeddings through Ollama are optional.
The model can call six read-only tools: search, read a document, list documents and courses, deadlines and recent changes. Codex and OpenCode spawn them as a stdio MCP server, about 60 lines of JSON-RPC that opens SQLite read-only and never loads credentials.
Courses sync three at a time, automatically on launch when the cache is more than six hours old. Unchanged files and embeddings are reused, snapshots update atomically, and failed endpoints keep their previous data.
The Homebrew formula installs an isolated Python environment from checksummed prebuilt packages, with a pinned source release as the fallback.