What has shipped
Release notes for every version. Install and update the Windows version through the Microsoft Store. Get the macOS installer from the download page and check for updates in Settings. Older notes describe the installation and update options available at the time. What comes next is on the roadmap.
[0.5.0] - 2026-10-15
CampusKit Cloud
- An optional subscription that keeps your planner in sync between your computers and backs it up every week: $5 a month or $45 a year, with a 14-day free trial that needs no card. It is separate from Pro, and CampusKit works as before without it. Turn it on from the new cloud button beside the header or in Settings, under Cloud.
- Sign in with your email and a 6-digit code; there is no password. If this computer already has data, you choose whether to merge it with your cloud data or replace it with what is in the cloud. Replacing keeps a backup of the old file on this computer first.
- The cloud button shows whether this computer's changes have reached the cloud: syncing, synced, offline (your work is saved on this computer and syncs when you are back online), or something that needs you. Click it for the last sync, your devices, Sync now and your backups.
- Changes upload a few seconds after you stop editing. Changes from your other devices arrive when CampusKit opens, when its window comes to the front, and about once a minute. When two devices change the same thing, the newer change wins, except that a note or essay text that loses is kept as a version, so nothing you wrote is dropped.
- Backups: the server keeps up to four, one made automatically each week plus any you make with Back up now. Restoring one changes every device and makes a safety backup first, so a restore can be undone.
- When a trial or subscription ends, sync pauses and everything stays on your computer.
- Pictures in notes stay on the computer that added them for now. The note text syncs.
- Notes have a Versions button with the earlier texts from sync conflicts and restores; pick one to put it back, and the text you had is kept as a version too.
- Ask AI and MCP clients can list, create, delete and restore Cloud backups.
Windows
- CampusKit is in the Microsoft Store. The Store signs the app, so there is no SmartScreen warning, and it delivers updates; Settings says so instead of offering a download. Installs from the
.exekeep updating from Settings as before. The Store app keeps its data separately, so to move over, turn on Cloud or export a backup in Settings and restore it in the Store app.
[0.4.1] - 2026-09-09
macOS
- macOS builds are signed with an Apple Developer ID certificate and notarized, so the app opens without the "unidentified developer" warning and the Terminal step is gone. Updates on macOS now download and install in place from Settings, the same as Windows, instead of sending you to the download page. Windows builds are still unsigned.
[0.4.0] - 2026-09-09
Notes
- A Notes tab. Each note belongs to a course (or none) and a day, autosaves as you type, and can be pinned. The editor is a proper page: a toolbar for bold, italic, underline, strikethrough, highlight, headings, bulleted, numbered and check lists, quotes and code, with the usual keyboard shortcuts, and typing
-or1.starts a list. Notes are stored as Markdown, so the AI, MCP tools, search and export all see plain text. Course filters are one-click chips. Search covers the text and everything AI pulled out of it. The list groups by month; the course page shows that course's latest notes with a "New note" button, and ⌘K has "New note". - Pictures in notes: paste a screenshot, drop an image file in, or use the toolbar's image button. Images are stored with your data (not inside the database) and show inline. AI cleanup keeps them in place.
- Clean up with AI runs on your ChatGPT sign-in when no API key is set, the same account the chat uses. So do syllabus import, quick-add, flashcards and essay feedback. A key, when present, still comes first.
- Clean up with AI: paste messy lecture notes and get back a tidy Markdown version plus a summary, key concepts, anything flagged for the exam, and the action items hiding in the notes. You review all of it before it is saved. Your original text is kept and can be restored from the note menu. Works with the same Anthropic or OpenAI key as syllabus import; no key, no cleanup, everything else still works.
- Action items become assignments in one click (or "Add all"), with the type and due date the notes mentioned, on the note's course. The note remembers which ones are already added.
- Three tools for the MCP server and Ask AI: list notes (with a search query), get one note in full, and create a note (write, gated like the others). Notes are in the JSON export.
Essays (college mode)
- An Essays tab for college: papers for a course, and scholarship, transfer and graduate application essays, each with its prompt and word limit. The editor is the same one notes use, with autosave, versions on demand, a status from not started to final, and the live word count against the limit. The high school workspace under Applications is unchanged; both share one table, so an essay is never in two places.
- A reader on call beside the draft, in four modes. Review: how squarely the draft answers the prompt, what works, what gets in the way, the questions a reader is left with. Brainstorm: before drafting, what the prompt really asks, questions that dig up your material, and a few angles with an outline you can drop into the draft as a checklist. Suggested edits: exact passages with a replacement and a reason, accepted or ignored one at a time; accepting changes only that passage. A reader's take: what an admissions reader or instructor remembers, doubts, and would ask you in an interview. Only accepted edits ever change your words.
- Tools:
create_essaytakes a courseId for a paper;list_essaysnames the course.
[0.3.0] - 2026-09-09
MCP server
- The degree and graduation planner is reachable from MCP clients and the in-app chat:
list_requirementsreturns every requirement with totals, pace and prerequisite problems,create_requirementadds a course or slot with its term and prerequisite, andupdate_requirementmarks it done or registered, moves its term or sets a prerequisite. Category and units default by school level. create_semestersets up a term on a fresh install and makes it current, so a client no longer has to ask for one to be made in the app.create_coursetakes grading categories,create_grade_categoryadds one later, andupdate_coursecan replace a course's weekly meetings, which the timetable page needed.- The open page refreshes when a client writes. Before, a requirement or assignment added from Claude stayed invisible until the student changed pages.
Degree planner
- Previous credits. AP, IB, dual enrollment and transfer credit (or, in high school, a middle-school course that counted) get their own card above the requirements. Each row names what it counts toward and how many units, feeds the summary bar and the bucket totals as done, and stays off the term board. MCP clients pass
prior: truetocreate_requirement.
Settings
- The section list no longer scrolls away with a long page; it stays put while the content scrolls.
- ChatGPT sign-in has a Sign in again button. When OpenAI refuses to renew the stored session, CampusKit drops it and says so in Settings instead of failing every chat with a token error; a network hiccup during renewal keeps the session and asks to try again.
0.2.2 - 2026-09-09
MCP server
- Claude Desktop no longer shows "Could not attach to MCP server campuskit" when it starts before CampusKit. The stdio bridge answers the handshake itself while CampusKit is closed and announces the tools the moment the app opens, so no restart is needed.
- Enable all and Disable all buttons for write access, with a count of how many write tools are on.
Website
- campuskit.app is a notebook page now: paper ground with faint rule lines and a red margin, ink borders with hard offset shadows, tape and stickers, and one lime for the things to look at. Bricolage Grotesque and Figtree replace the old dark design.
- The landing page leads with one planner from ninth grade to graduation. The hero shows a high school term with AP and Honors courses, a weighted GPA and a college application list next to a syllabus turning into a course and a final-exam target. A new High school section, with its own nav link, walks through the four years before college. The footer, Open Graph image, structured data and llms.txt carry the same positioning.
- The roadmap drops the high school items that have shipped and adds high school guides and signed installers.
0.2.1 - 2026-09-04
Habits & To-dos
- The page leads with today. Each habit gets one big check for today and a six-day strip beside it, with a progress ring and a line that says how many are left. Streaks and the week count sit under the habit name.
- New habits start from a dashed "New habit" row that opens an inline form with a color picker, or from suggested habits when the list is empty.
- To-dos can carry a due date. Quick-add offers No date, Today, Tomorrow or In a week, and the list is grouped into Overdue, Today, Upcoming, Anytime and a collapsible Done. A row menu moves an item to today, tomorrow or a week out, or clears its date.
- Checks on both panels update instantly instead of waiting on the database.
- Habits can have a schedule: every day, weekdays, chosen days, or a number of times a week. Rest days show as dots and never break a streak; weekly targets streak in weeks. The row shows the current streak, the best ever, and this week's count against the target.
- Edit a habit's name, color and schedule from its menu. Move habits up or down. Click a habit's name for a six-week history grid with streak, best and how much of the schedule was kept; any day can be fixed there.
- Archived habits are listed behind an Archived button and can be restored with their history, and the archive toast has an Undo.
- To-dos can be renamed (double-click or the menu) and given any date with a date picker, both when adding and on an existing row. Finished to-dos clear themselves after a week.
- The dashboard opens with a Today card: one-tap habit chips and the to-dos due today or overdue.
- The command palette adds whatever you type as a to-do.
- Native reminders for to-dos due today and tomorrow, on the same two toggles as assignments.
- Ask AI and the MCP server gain habit and to-do tools: list, create and check habits; list, create and update to-dos.
Updates
- Checking for updates no longer downloads anything on its own. The launch check and the Settings button only report that a newer version exists; a Download button (in Settings and on the notice that pops up) fetches it, and Restart to update installs it. On macOS, where unsigned builds cannot replace themselves, the button opens the download page instead.
0.2.0 - 2026-09-04
High school mode
- Setup asks whether you are in college or high school, and Settings > General can flip it later. College is unchanged. High school swaps units for credits, and courses default to 1 credit.
- Weighted GPA. Each course can be marked Regular, Honors, AP, IB or dual enrollment. The header chip shows the plain GPA and the weighted one side by side; Settings sets the bump per level (Honors +0.5, AP/IB/dual +1.0 by default). A failing grade never earns a bump. Course cards and the course page carry an AP/H/IB/DE badge.
- The Degree Planner becomes the Graduation Planner: requirements are filed by subject (English, Math, Science, Social studies, World language, Arts, PE & health, Electives), the target defaults to 24 credits, and the pace line counts credits. Terms tagged with a grade such as "Fall 2026 · Grade 11" still sort by date. Rows from the other mode are never hidden.
- Setup wizard, onboarding summary, course dialog and MCP tools all speak credits and levels in high school mode.
Activities and honors
- A new Activities tab (high school mode) keeps the Common App activities list over four years: organization, type (the Common App's own 31), position, what you did, grade levels, timing, hours a week, weeks a year and "continue in college". The same character limits (100/50/150) with live counters, so nothing gets cut when you paste.
- Honors sit below with title, grade levels and level of recognition (school, state, national, international).
- The list is in Common App order: numbered, move up or down, and anything past the first 10 activities or 5 honors is marked. The summary shows leadership roles and a rough total of hours over the four years.
- Export: copy as text (one block per activity in the Common App's shape), save as text or CSV.
- Tools for the MCP server and Ask AI: list activities and honors, create an activity, create an honor (writes gated like the others). Both tables are in the JSON export.
Course pathways and service hours
- A requirement in the planner can name the one that comes before it ("Comes after" in the dialog: Algebra II before Precalculus, Spanish II before Spanish III). The planner flags a plan that does not add up: a course in the same term as, or before, an unfinished prerequisite, or scheduled while its prerequisite has no term. Rows show "after Geometry" and an Order badge; the summary counts the problems. Loops are prevented in the picker.
- Service hours (high school): log volunteer shifts on the Activities page with date, hours, organization, what you did, and the activity they count under. Progress against the hours your diploma requires (editable, default 40), hours this school year, and a "logged" figure on the matching activity row. The graduation planner shows the total next to credits. Tools: list service hours, log service hours. JSON export includes the log.
Decisions and GPA target
- A Decisions section on the Applications tab lines up every offer: cost of attendance, grants and aid, scholarships won for that school, net cost per year, distance, and notes, with the lowest net cost marked. Numbers edit in place or in the school's dialog once its status is accepted or waitlisted. Commit to a school with one click (status becomes enrolled); May 1 sits on the dashboard and calendar as decision day until you do.
- A GPA target card on the Courses page answers "what do I need" for the GPA itself: set a target cumulative GPA (plain or weighted in high school) and it names the uniform letter every course this term needs, says when it is locked in or out of reach, shows the range this term can still produce, and whether current live grades are on track. Tools: update application (status and offer numbers), gpa target.
Essays
- The Applications tab gains an Essays section: the personal statement, each school's supplements and each scholarship's essay, with the prompt as the school words it, the word limit, and a status from not started to final. New supplements can start from the personal statement (or any other draft) and are marked as adapted from it.
- The editor autosaves as you type, counts words live against the limit (short, near, over), and saves versions on demand; restoring one keeps the draft you had as a version too.
- Review with AI reads a draft against its prompt and returns how squarely it answers (1 to 5), what works, what gets in the way, the questions a reader is left with, and a note on length. It never rewrites or suggests replacement wording; the words stay the student's. BYO key, like syllabus import.
- Tools: list essays (metadata and word counts, never the body), create an essay (prompt and limit, never the text). Essays and versions are in the JSON export.
Points-based grading
- A course can be graded by weighted categories (as before) or by total points; pick it in the course dialog. In a points course every assignment carries its points possible, scores are entered as points earned ("18" or "18/20"), and the grade is points earned over points graded so far. The engine is unchanged underneath, so "what do I need" and the what-if slider work the same and speak in points.
- The course page shows a points ledger by assignment type (homework, quizzes, labs, tests) in place of the category scheme, with a running "342 / 380" total. Tools accept
gradingModeon create and update course.
Scholarships
- The Applications tab gains a Schools / Scholarships switch. Each scholarship has a provider, amount (with a renewable flag), deadline, status from researching through submitted to awarded or denied, link, notes, and an optional school it belongs to. Every one gets a checklist (essay, recommendation letter, transcript, financial documents by default) with the same inline tasks and dates as the school list.
- The summary shows money in play, money won, the next deadline and checklist progress. Scholarship deadlines and dated checklist items land on the dashboard and calendar alongside the school ones, with a "$" marker, and fire the same notifications.
- Tools: list scholarships, create a scholarship (writes gated). JSON export includes scholarships and their tasks.
Tests
- A new Tests tab (high school mode) holds every SAT, ACT, PSAT, AP and IB sitting with its date, registration deadline and a registered switch, test center, target score and score, a linked course for AP/IB exams, a weekly prep-hours plan and notes. Registration deadlines are suggested from the date (SAT about four weeks out, ACT five, AP by mid-November through the school) and stay editable.
- Upcoming tests group by month so the May AP block reads as one, with a "Next up" line and a count of open registrations. Past sittings take a score in place and show it against the target.
- The focus timer can tag a session to a test ("SAT prep") next to the course tags; prep logged to an AP exam's course counts too. Each test row shows this week's prep against the plan and starts a tagged focus session in one click.
- Test days and registration deadlines land on the dashboard and the calendar, and go into the .ics export as all-day events. The best scored SAT and ACT fill the Applications profile chips unless you type a score there.
- Tools for the MCP server and Ask AI: list tests, create a test, update a test (record a score, mark registered, move a date). Tests are in the JSON export.
- Notifications (high school): a week out, the day before and on the day for application deadlines and dated checklist items, test registration deadlines, and test days. One toggle in Settings > Notifications; quiet hours apply.
Transcript
- A new Transcript tab (high school mode) shows the self-reported record: every completed and in-progress course grouped by academic year and term, with level badge, credits and grade. Year and cumulative GPA, unweighted and weighted, from final grades only; in-progress courses show their live letter and move nothing.
- The grade level comes from the term name ("Fall 2026 · Grade 11", "Junior year") or from the graduation year you set in the header, alongside your name and school.
- Save as PDF: a clean, print-ready record (letter size, labeled self-reported) rendered by the app, or as CSV for a UC or SRAR form. A get_transcript tool exposes the same record to Ask AI and MCP clients.
College applications
- A new Applications tab (high school mode) tracks every school with its plan (ED, ED II, EA, REA, RD, rolling, priority), deadline, fit (reach, target, safety), status from researching through submitted to a decision, portal link and notes. Early decision is flagged as binding.
- Every school gets a checklist. New ones start with the standard six (personal essay, supplemental essays, recommendation letters, transcript, test scores, financial aid); add your own, tick them off, and give any item its own date. Rows collapse to a "3/6" pill so the list scans.
- The summary card shows schools and submissions, the next deadline, checklist progress, and your profile: cumulative GPA, weighted GPA, and SAT and ACT scores you enter in place, with links to the transcript and activities list.
- Application deadlines and dated checklist items land on the dashboard ("College applications" card) and on the calendar, with their own marker in the day peek.
- Two new tools for the MCP server and Ask AI: list applications, and create an application (write, gated like the others). The JSON export includes applications and their tasks.
0.1.2 - 2026-09-02
Degree planner
- Redesigned around what a student actually does with it. One stacked progress bar shows done, registered, planned and still-unmapped units against the target, with a pace line underneath: units to go and roughly how many more terms that is at your current load.
- A new "By term" view lays the plan out as one card per term (past, now, planned) with a "Not scheduled" column. Drag requirements between terms, add a term, rename one, or mark a whole term done. Terms like "Fall 2026" or "Spring '27" sort chronologically.
- The requirements list is a checklist: tick the circle to mark a course done, pick a term from a pill, and open the row for the full edit dialog. Rows that need attention sort first, finished ones sink to the bottom. Each category has its own progress bar.
- Adding is faster: an Add requirement dialog, plus an inline add per category that keeps the input open so you can type through a whole requirement sheet. Removing offers Undo.
- The graduation target is edited in place instead of living in a stray input, and the first-run state explains what to do instead of stacking an empty state on top of empty cards.
MCP
- One-click client setup in Settings > MCP server: Connect writes the CampusKit entry directly into Claude Desktop, Claude Code, Codex, Cursor, Windsurf, VS Code or Gemini CLI's own config file, in the shape each one expects. Remove takes it back out. Detected clients sort first and an entry pointing at an old port shows as "Needs update".
- A bundled stdio bridge (
mcp-bridge.cjs) for clients that only launch commands from their config. Claude Desktop uses it automatically; it runs on the CampusKit binary so nothing else needs installing. The old copyable snippet claimed to work in Claude Desktop, and did not. - Copyable HTTP and stdio snippets for any other MCP client.
- The MCP server now reports the real app version to clients instead of a hardcoded 0.1.0.
Website
- A Tutorials tab on campuskit.app: step-by-step guides grouped into Getting started, Everyday use, AI and MCP, and Your data. Sixteen guides to begin with, from installing and the setup wizard through syllabus import, grade targets, Canvas .ics import, the MCP server and backups. Each guide has a reading time, an "On this page" list and previous/next links, and new guides are plain Markdown files.
- A mobile menu in the site navbar. Small screens used to hide every link except Download.
- The site no longer ships a React runtime: the aurora background, counters, FAQ accordion and spotlight cards are plain Astro components with small scripts. Added an XML sitemap, llms.txt and schema.org structured data (Organization, WebSite, SoftwareApplication, FAQ, tutorial breadcrumbs), clean URLs without trailing slashes, and richer Open Graph tags.
0.1.1 - 2026-09-01
Website
- Brand-new campuskit.app: Astro 5 + React + Tailwind v4 + GSAP in
site/, built static for Cloudflare Pages. Dark lime design matching the app, WebGL aurora hero, scroll-driven parallax and reveals, hand-built HTML app mockups, real Polar buy links, FAQ, changelog page rendered from this file, legal pages (privacy / terms / refunds) and a 404.
App
- The real CampusKit mark everywhere: a lime badge variant of the app icon in the header and setup wizard, the window icon on Windows/Linux, and the Dock icon in dev runs.
- macOS builds now also produce a zip artifact so electron-updater has a feed to update from (installing updates on macOS still needs code signing; until then the app notifies and users grab the new dmg).
Licensing
- CampusKit Pro: Polar-backed license keys with a Settings > License page: buy links ($5/year or $24.99 lifetime), key activation, re-check and remove.
- Free core stays free; AI chat and the MCP server now sit behind the Pro gate with a visible-but-locked upsell. Gating is enforced in the main process, not just the UI.
- Honest DRM: re-validation at most every 3 days, a 14-day offline grace period, and no lock on network failure. Only a confirmed lapse downgrades, and your data is never touched.
- Re-check now says what actually happened (re-validated, offline grace, or no longer valid) instead of always claiming success, and a rotated/replaced key explains itself.
- A CampusKit Pro step in onboarding: buy or activate a key during setup, with the plan reflected in the final summary.
- IPC errors shown in the UI no longer carry Electron's "Error invoking remote method" prefix.
[0.1.0] - 2026-08-31
The first release. Everything below shipped between the initial commit and today.
Courses and grades
- Semesters, courses and assignments with full CRUD, course colors, meeting times (weekday, time, room) and per-course syllabus attachments.
- Live grade engine: weighted categories with per-category drop-lowest, direct-weight fallback, and ungraded work excluded from the denominator. Every number is computed from real data, never faked.
- "What do I need on the final": required average on remaining weight for a target letter, with impossible and already-locked states handled.
- Letter mapping with per-course configurable cutoffs, plus pass/fail courses excluded from GPA.
- Semester and cumulative GPA with a configurable grade-point scale and a what-if overlay on course detail.
- Course detail page with category breakdown, inline score editing and a target picker.
- Archive flow: archived semesters leave the switcher but keep feeding cumulative GPA.
Time
- Timetable: a Mon to Fri time-axis grid of course meetings (weekend toggle), course colors, current-time line and today highlight.
- Calendar: month and week views merging due dates, exams and class meetings, with a day peek panel.
- Recurring assignments ("every Friday until semester end") with edit-one vs delete-series handling.
- Notifications: due today, due tomorrow and class-in-15 reminders with per-type toggles and a quiet hours editor.
- ICS import (Canvas and Google feeds, file or paste) with a review step and re-sync dedupe, plus ICS export.
- Focus timer: pomodoro with course tagging, a mini always-on-top window and persisted sessions.
- Study log: hours-per-course weekly chart built automatically from focus sessions.
Habits and to-dos
- Daily habit check grid with streaks and weekly percentages, archiving, and a to-do list with clear-done.
AI
- Syllabus import: drop a PDF or paste text, review the extracted draft (course, meetings, grade weights, dated assignments) and create everything in one click.
- Natural-language quick-add: "hist essay next friday worth 15%" becomes a prefilled assignment. Works as a plain form with no key.
- Flashcards: decks with an again/hard/good review mode and AI generation from pasted notes.
- Ask AI chat: an in-app assistant that answers questions about your courses, grades and schedule through the same tool registry as the MCP server. Read-only by default, with a separate opt-in for writes.
- Three chat providers behind one abstraction: Anthropic and OpenAI via your own key, or a ChatGPT Plus/Pro subscription through an experimental, unofficial sign-in.
- Keys and tokens are encrypted with the OS keychain and never touch the renderer. Every AI entry point degrades gracefully with no key.
Degree planner
- Requirements by category (major, minor, GE, elective) with done, registered and planned status, units and a free-text planned term.
- Graduation progress ring against an editable unit target, with per-category units-done counts.
App shell and platform
- First-run onboarding wizard: welcome and theme, semester, AI setup, courses (manual or syllabus import), degree planner and a summary. Re-runnable from Settings, and existing installs are never re-onboarded.
- MCP server (opt-in): 12 tools over streamable HTTP on localhost, read-only by default with per-tool write permissions, so Claude Desktop, Claude Code and other MCP clients can operate the app.
- Command palette (Cmd+K) for navigation, quick-add and search, plus a system-wide Cmd+Shift+N quick-add hotkey.
- Settings with section navigation: appearance, AI, MCP, notifications, focus, data and setup.
- Dark theme as the flagship with a derived light theme and system-theme follow.
- Data safety: JSON export, versioned daily auto-backups with restore, WAL checkpoint on quit and corrupted-database recovery.
- Auto-update from GitHub Releases with an in-app "Check for updates" flow showing download progress and a restart button. Updates publish to a public releases repo while the source stays private.
- Packaging via electron-builder: macOS dmg (Apple Silicon and Intel) and Windows installer, with a new app icon (dark squircle, lime mortarboard).
- Local-first throughout: SQLite on your machine, bundled fonts, no runtime CDN.
Fixed
- Sidebar collapse animation ballooning caused by rounded-full interpolating against the still-wide box.
- Stale rail tooltips all appearing at once after collapsing the sidebar.
- MCP server hardened against DNS rebinding, and backup restore paths validated.