Armin for Canvas: privacy policy
Effective 28 October 2026 · Applies to version 1.0 of the Chrome extension and later
Armin for Canvas ("Armin") is a Chrome extension that improves a student's own Canvas pages: themes and dark mode, one to-do list for every course, the student's timetable, grade weights with a calculator, and optional AI study tools. It is made and run by Alfred Liu ("we"). Armin is an independent project. It is not affiliated with, endorsed by or supported by Instructure (the maker of Canvas), any school, Gradescope (Turnitin), Wiley, Macmillan Learning, VitalSource, Anthropic or Google.
This page says exactly what the extension reads, where it keeps it, what leaves your computer, who receives it, and what you can do about it.
Short version. Armin reads your own courses from your school's Canvas (and, if you use them, Gradescope, WileyPLUS, Pearson MyLab, Macmillan Achieve and, at the University of Toronto, ACORN) using the sign-ins you already have in Chrome. What it reads stays in your browser. Nothing goes to Armin's service unless you sign in to Armin and use an AI feature, share a look, or turn on phone sync, or you leave your email on the Welcome page to hear when your school's learning system is supported. Armin never sees your passwords. There are no ads, no analytics, no trackers, and nothing is sold.
1. What the extension reads, and why
Every read uses the session you are already signed in with in Chrome, the same way the site's own pages do. Armin never asks for, sees or stores your school, Gradescope, WileyPLUS, Pearson or Macmillan password.
| From | What | Why |
|---|---|---|
Your school's Canvas (any *.instructure.com site, the listed schools' own Canvas addresses, and any other Canvas site you add yourself) | Your courses and sections, assignments (names, due dates, descriptions, submission status, scores), grades and grading scheme, course files and modules, pages, announcements, calendar events and your Canvas calendar feed address, the course's tool list, and your profile's name and email address | To show your deadlines, classes, files and grades in one place on Canvas's own pages. Your email only pre-fills the sign-in box if you choose to sign in to Armin. |
| Gradescope (gradescope.com, .ca, .eu) | Your Gradescope course list and each assignment's name, due dates and status or score | To show Gradescope work in your to-do list |
| WileyPLUS (learn.wileyplus.com, education.wiley.com, read.wiley.com) | Homework names and due dates; your e-textbook's chapter list and the text of chapters you open. Armin also notices the addresses of WileyPLUS pages you open (only on those three sites) to know which textbook belongs to which course | To show WileyPLUS homework with your deadlines, and your own textbook as a study source |
| Pearson MyLab (mylabmastering.pearson.com, mylab.pearson.com), only after you click Allow for it | Each MyLab assignment's name, category, due date and number of questions, and for finished ones the score and when you handed it in; the title of a MyLab course page you open ("Math 211 - 101 - Fall 2026"), to know which of your courses it is | To show MyLab homework with your deadlines and mark what you've finished |
| Macmillan Achieve and its reader (achieve.macmillanlearning.com, Macmillan's reader hosts, *.vitalsource.com) | The e-book's table of contents and the text of the sections you open, as the reader shows it | Your own textbook as a study source |
| ACORN (acorn.utoronto.ca, University of Toronto students only) | Your timetable from ACORN's own calendar export | Your weekly timetable with exact rooms |
| Chrome | The email address of the Google account Chrome is signed in to, and that account's internal id | The email pre-fills Armin's sign-in box. The id is turned into a one-way code (see section 4) so a reinstall on the same browser keeps the same device slot. Neither is sent anywhere unless you sign in to Armin. |
On a Canvas site that is not on Armin's list, Armin does nothing until you click Use Armin on … (your school's site) and Chrome asks you to allow that one site. You can take that permission back at any time in chrome://extensions.
2. What it changes
Armin never submits, posts or changes anything on Canvas or any other site unless you press a button that says so (for example Mark done or Submit, which do exactly what Canvas's own button does). It restyles pages and adds its own boxes to them; the site's content is untouched.
3. Where it is kept
Everything in section 1, plus your settings, look, ticks, notes, tasks, events and study material, is stored in your browser (Chrome's extension storage on this computer). One small item, the random device code described in section 4, is also kept in Chrome's synced storage so the same browser profile keeps the same code; it contains nothing about your courses. Uninstalling the extension deletes everything Armin stored on this computer. When you uninstall, Chrome opens a short goodbye page on Armin's site (https://api.getarmin.com/armin/uninstalled). Opening it sends nothing about you: the address carries no identifier, the page has no analytics, cookies or trackers, and its optional feedback link only opens an email you write yourself.
4. What leaves your computer, and when
"Copy diagnostics" (only when you click it)
The toolbar popup's Copy diagnostics puts a summary of how Armin sees your Canvas on your clipboard, so you can paste it into a bug report: your courses' names, codes and term dates, which ones Armin treats as classes, the tools each course uses, your upcoming deadlines' titles and dates, and how your dashboard was laid out. It never includes your name, email, grades, scores, notes, file contents or any sign-in key. Nothing is sent anywhere by the button itself; it only reaches us if you paste it into a message.
Nothing, by default
Without signing in, Armin talks only to the sites in section 1, as you, to Openverse when you search for a course-card picture (only your search words are sent), and to Armin's service only if you leave a waitlist email (below).
When you join the waitlist (optional)
If your school uses a learning system Armin does not support yet (Brightspace/D2L, Moodle, Blackboard, Google Classroom or another), the Welcome page offers to tell you when it is. If you type your email there, Armin sends Armin's service that address, the learning system, your school's name and, for a school on Armin's list, its id and country. No account is needed. We use the address only to email you when your learning system is supported, never for marketing or anything else. If the service cannot be reached, the entry waits in your browser and is sent the next time Armin runs. Leave the box empty and nothing is sent.
When you sign in to Armin (optional)
Signing in creates or uses an account on Armin's service (api.getarmin.com), which runs on Cloudflare. You sign in with a six-digit code emailed to you (we send the email through Resend). Armin does not use Google sign-in.
Once signed in, the extension keeps a sign-in key in your browser and sends Armin's service a device code (random, or a one-way hash of your Chrome profile's id; it cannot be turned back into that id), the device name "Chrome extension" and the browser family.
When you use an AI feature
AI features (reading a course outline for grade weights and key dates, the daily plan, and the study tools: notes, flashcards, practice questions, mock exams, "Ask my course", explanations and marking your practice answers) send Armin's service only the text the feature needs:
- Course outline reading: the outline's text and the course name.
- Daily plan: today's classes, your open deadlines and course names.
- Study tools: the text of the lecture slides, course files or textbook sections you picked, photos or text of your own class notes if you add them, your question or practice answer, and the course's name, test dates and weights.
Armin's service forwards that text (and any note photos) to Anthropic, the maker of Claude, to produce the answer. It is sent without your name, email address or account id. Anthropic processes it under its commercial terms, which do not allow it to train models on this data. Armin's service does not keep the text after answering, except as described under "Class-shared study material". It keeps a count of your AI use (requests, tokens, cost, and a number per study tool per month) to apply the monthly limits.
Before a study tool runs, Armin checks your question against the titles of assessments open on your Canvas, Gradescope or WileyPLUS so the study tools are not used on marked work; that check happens in your browser.
Class-shared study material
To avoid paying for the same work twice, some study material generated from a course's own files (a short practice-exam preview, lecture notes, question banks and flashcards) is kept by Armin's service and given to other Armin users in the same course. It is stored with the course code, section, term, file and your school's Canvas address, never with your answers. A newly made copy is shown only to the student whose browser asked for it until a second student's browser sends the same course text; only then is it given to the class. The service records which accounts made, confirmed or were given a copy (to count reports fairly) and removes those records when you delete your account. A reported copy is hidden for review, not given out again. Links in generated material that do not appear in the course text are removed.
When you share a look
If you publish a look (a theme for Canvas) to Armin's gallery, its name, the author name you type and its settings become public to other Armin users. You can delete it at any time, and anyone can report a look (reports from accounts younger than two weeks count for less). A look code you import loads pictures only from Openverse, Wikimedia and Flickr; pictures from other addresses are dropped.
Course-card pictures
Searching for a course-card picture sends only your search words to Wikimedia Commons (commons.wikimedia.org) and Openverse (api.openverse.org). The picture you pick is then loaded from that provider's servers when Canvas shows the card.
When you buy Premium (optional)
Premium is an optional paid tier for the study tools; everything else stays free. Checkout opens Stripe's own page in a new tab. You type your card details on Stripe's page; neither the extension nor Armin's service ever sees them. Stripe tells Armin's service which plan you bought, the amount, and your Stripe customer number. The service keeps the plan, its end date, the amount and refund status to run Premium, handle refunds and keep the records the law requires. If you use an invite code, the service records which account invited yours. The seller is Armin, not Google and not your school. Prices, refunds and fair use are in Armin Premium's terms of sale.
When you turn on phone sync (optional)
After each sync, Armin uploads a copy of what the Armin phone app shows (courses, class times, deadlines, assignment text, announcements, links to files; never the files themselves) and your ticks and hand-added tasks to your Armin account.
When you report a problem
Report a problem sends what you type, your first name, the extension version, your browser's user-agent string, which Canvas site you use, the number of courses, a few display settings and the last few AI error messages. Signed out, it opens an email to us instead, which you can read before sending.
5. Who receives data
| Recipient | What | Why |
|---|---|---|
| Armin's service (Cloudflare, our processor) | Account email, device code, AI request text, usage counts, phone-sync copy, shared looks, bug reports, Premium records, waitlist email (with learning system and school) | To run the features you turned on; the waitlist email only to tell you when your learning system is supported |
| Anthropic | AI request text and note photos, without identifiers | To produce AI answers |
| Resend | Your email address and the sign-in code | To email you the code |
| Stripe | Your email address and what you type on Stripe's page | Premium checkout and refunds |
| Wikimedia Commons, Openverse | Your picture search words | Course-card pictures |
We do not sell, rent or share your data with anyone else, for any purpose. We do not use it for advertising, for creditworthiness or lending, or for anything unrelated to helping you with your own courses. People at Armin do not read your course content, except text you send us in a problem report.
6. Limited Use
Armin's use of information received from Chrome and Google APIs, and of the website content it reads, adheres to the Chrome Web Store User Data Policy, including the Limited Use requirements. Data is used only to provide and improve Armin's single purpose (improving your own Canvas experience), is not transferred except as described above, and is never used for advertising.
7. What it never does
- No analytics, advertising, trackers or fingerprinting.
- No browsing history: Armin runs only on the sites in section 1 and any Canvas site you add yourself.
- No remote code: every script Armin runs ships inside the extension.
8. How long it is kept
In your browser: until you clear it in Armin's settings or uninstall. On Armin's service: your account and its data until you delete the account; AI request text is not kept after the answer (class-shared material is kept for the course's term); Premium purchase records for as long as tax law requires; bug reports for up to 12 months; a waitlist email until we have told you your learning system is supported, or until you ask us to delete it.
9. Your choices
- Turn Armin off for a site, or entirely, from the toolbar popup.
- Sign out in the toolbar popup: AI features stop and the key is removed from this browser.
- Ask us to delete your waitlist email at any time (contact below); we remove it right away. Deleting your Armin account also removes a waitlist entry under the same address.
- Export or delete your Armin account from Settings › Account. Deleting removes your account, usage, phone-sync copy and shared looks.
- Cancel or refund Premium in the toolbar popup (a first purchase can be refunded within 7 days).
- Remove everything on this computer by uninstalling the extension.
10. Children
Armin is for university and college students and is not directed at children under 13 (or under 16 where local law sets that age).
11. Changes
If what Armin reads or sends changes, this page changes first, with a new effective date, and the Chrome Web Store listing is updated to match.
12. Contact
Questions, requests or complaints: alfredliu9@gmail.com. The person accountable for this policy is Alfred Liu. If you are in Canada and not satisfied with our answer, you may complain to the Office of the Privacy Commissioner of Canada.