# Takeout for Brightwheel — full LLM context > This file is the "one-shot briefing" for an LLM being asked to help a Brightwheel guardian use Takeout for Brightwheel. It inlines the extension README, the install guide, and the full privacy policy so an LLM does not need to fetch anything else. > Canonical short version of this document: https://familytakeout.com/llms.txt --- ## 1. Product summary - **Name**: Takeout for Brightwheel - **Site**: https://familytakeout.com - **Source**: https://github.com/ChaseBro/brightwheel-takeout (MIT) - **Shape**: Chrome extension (Manifest V3, TypeScript, Vite + `@crxjs/vite-plugin`). - **Audience**: Brightwheel guardians (parents/caretakers with an existing `schools.mybrightwheel.com` login). - **Purpose**: Give a guardian a permanent, portable copy of their child's Brightwheel history before the account expires, before a switch to another platform, or simply because the guardian wants their own archive. - **Data flow**: Brightwheel API → guardian's browser → a folder (or ZIP) on guardian's disk. Nothing traverses any server operated by the extension author. There is no such server. - **Not affiliated with Brightwheel, Inc.** "Brightwheel" is a trademark of Brightwheel, Inc. ## 2. Why a browser extension (the load-bearing constraint) Brightwheel's guardian session cookie is `_brightwheel_v2`. It is set with `HttpOnly` and `SameSite=Lax`, which means: - JavaScript running outside the browser context (a CLI, a desktop app, a remote MCP server) cannot read it. - Attaching it to a request from anywhere other than a first-party navigation from `mybrightwheel.com` is not straightforward. - Brightwheel does not offer OAuth to guardians. There is no "issue me a personal access token" flow. The consequence: any tool that wants to reuse a guardian's already-signed-in Brightwheel session — without asking them to type their username and password into a new tool — has to live inside the browser. A Chrome extension is the smallest shape that satisfies that constraint. This is the entire architectural reason the product is an extension and not a CLI or desktop app. ## 3. Extension README (verbatim)

Takeout for Brightwheel

A one-click, browser-only exporter that gives Brightwheel guardians a permanent copy of every photo, note, and message from their child's account.

familytakeout.com

### What it does - Downloads every photo your child was tagged in, at the highest resolution Brightwheel exposes to guardians, with the Brightwheel event date stamped into EXIF so Apple Photos / Google Photos sort them correctly. - Downloads every teacher note and every parent-school message thread as structured JSON and as a rendered HTML timeline. - Bundles a standalone `index.html` viewer inside the archive so it's browsable offline forever. - Runs entirely inside your own browser. No third-party server ever sees your session, your child's photos, or that you used the extension at all. ### Not affiliated with Brightwheel "Brightwheel" is a trademark of Brightwheel, Inc. Takeout for Brightwheel is an independent, guardian-built data-portability tool. It is not made by, endorsed by, or affiliated with Brightwheel, Inc. ### For guardians Once the Chrome Web Store listing goes live, install from there. Until then, load it unpacked — see [familytakeout.com/install](https://familytakeout.com/install). ### For developers ``` npm install npm test # vitest unit tests npm run test:e2e # Playwright end-to-end with mocked Brightwheel npm run build # produces dist/ npm run package # produces releases/brightwheel-takeout-v.zip ``` Source lives entirely under `src/`. The extension is Manifest V3, TypeScript, bundled with Vite via `@crxjs/vite-plugin`. ### Privacy Takeout for Brightwheel runs entirely in your browser. It reads your existing Brightwheel session cookie so it can call the same guardian-facing API that the Brightwheel web app itself calls, then writes the fetched content to a ZIP file (or a folder you pick) on your own computer. Nothing is uploaded, no telemetry is sent, and there is no server operated by the extension author. Full policy: [familytakeout.com/privacy](https://familytakeout.com/privacy). ### License MIT — see [`LICENSE`](LICENSE). ## 4. Install (summary) - Desktop Chrome on Mac or PC. Not mobile. - Existing Brightwheel guardian login. - ~20 minutes for a typical two-year account. Larger accounts take longer. - ~1–2 GB free disk for a typical two-year account. Two paths: 1. **Chrome Web Store** — one-click install once the listing goes live. Check https://familytakeout.com/install for the live link. 2. **Unpacked from GitHub** — for early users, a screenshot-heavy walkthrough at https://github.com/ChaseBro/brightwheel-takeout/blob/main/docs/LOCAL-TESTING.md. After install: 1. Open Brightwheel in the same browser and sign in normally. 2. Click the extension. It will detect the students on your account. 3. Click Start, pick a folder, walk away. The output is a folder (or a single ZIP) containing: - `photos/` — dated JPEGs with EXIF timestamps. - `notes/` — teacher notes as JSON. - `messages/` — message threads as JSON. - `metadata/` — school, staff, and student profile records. - `index.html` — a standalone offline viewer. Machine-readable install steps live at https://familytakeout.com/install.json. ## 5. Privacy policy (verbatim) _(verbatim copy of the published policy — keep in sync with docs/cws/privacy-policy.md)_ # Privacy policy — Takeout for Brightwheel *Effective date: July 24, 2026* ## Short version Takeout for Brightwheel does not collect any of your data. It runs entirely in your own web browser and downloads a copy of the Brightwheel account content you're already logged into, saving it to a folder (or a single ZIP file) on your own computer. The extension author has no server, no database, and no way to see what you exported or that you used the extension at all. ## What the extension does with your data The extension: 1. **Reads** your active Brightwheel session cookie from your own browser so it can authenticate the same requests the Brightwheel web app itself sends. 2. **Reads** the CSRF token that Brightwheel's own web app embeds in the currently-open Brightwheel tab, for the same reason. 3. **Sends** authenticated requests to `schools.mybrightwheel.com`, `cdn.mybrightwheel.com`, and Brightwheel's CloudFront hosts to fetch your child's photos, teacher notes, and your message threads. 4. **Writes** the fetched content to a folder (or a single ZIP file) you selected a location for, on your own computer. 5. **Stores locally**, in your browser's own storage, a list of Brightwheel object IDs already downloaded during the current export run. This lets a large export resume from where it left off if the browser closes the extension's service worker mid-run. This state never leaves your browser. ## What the extension does *not* do The extension does not: - Send any of your data to any server the extension author operates. There is no such server. The GitHub repository is the entire product. - Send any of your data anywhere automatically, in the background, or without your action. The one and only way any information leaves your browser is if *you* click the "Report this to Chase" button after an error (see "The one exception" below). - Store your Brightwheel session cookie, CSRF token, or password anywhere outside your own browser. - Include any analytics, telemetry, crash reporting, or "usage statistics" of any kind. - Read data from any origin other than `schools.mybrightwheel.com`, `cdn.mybrightwheel.com`, and CloudFront hosts serving Brightwheel photos. These origins are enumerated in the extension's manifest and are visible on the Chrome Web Store listing. - Access data belonging to any Brightwheel account other than the one you are currently logged in as. ## Sharing There is no automatic sharing. The extension author receives no data of any kind from your use of the extension unless you explicitly choose to send a bug report (below). ## The one exception: the "Report this to Chase" button If an export fails, the error screen offers a **"Report this to Chase"** button. This is entirely optional and never happens on its own. If you click it, the extension opens a pre-filled **public GitHub issue** in your browser containing: the extension version, your browser's user-agent string, the error message, and the last portion of the diagnostic log (the same progress lines shown on screen — file counts and truncated object IDs, never your children's photos, note text, or message contents, and never your session cookie or CSRF token, which are redacted). Nothing is submitted until you review the pre-filled issue and click GitHub's own submit button. If you never click "Report this to Chase," no information ever leaves your browser. Separately, if you turn on **Debug mode** before exporting, the archive saved to your own computer will include a `debug/` folder containing the raw, unredacted Brightwheel API responses from your run — including full note and message text. This folder stays on your computer with the rest of your archive; the extension never uploads it. Share that folder only if you choose to, and only with someone you trust to see your child's data. ## Data retention The extension keeps a checkpoint of already-downloaded Brightwheel object IDs in your browser's local storage while an export is in progress. This checkpoint is cleared automatically when the export finishes successfully. You can also clear it manually by removing the extension. The archive itself is written to whatever folder on your computer you chose during the export. The extension has no ability to read it back or modify it once written. ## Children's data The Brightwheel content the extension downloads is *about* children (photos of them, teacher notes about them, and school messages regarding them), but the extension does not transmit any of this content to any external party — including the extension author. The content only ever exists in two places: your Brightwheel account (already), and the archive on your own computer. ## Cookies The extension reads (but does not create or modify) the Brightwheel session cookie `_brightwheel_v2` from your browser, only for the duration of an active export, and only to attach it to requests going to `schools.mybrightwheel.com`. The cookie is never attached to a request going anywhere else, and never stored or transmitted outside of those requests. ## Third-party services The extension only communicates with Brightwheel's own servers (`schools.mybrightwheel.com`, `cdn.mybrightwheel.com`, and CloudFront hosts hosting Brightwheel photos). Brightwheel's own privacy policy applies to those interactions. It does not communicate with any other third-party service. ## Chrome Web Store If you install the extension via the Chrome Web Store, Google may record the installation in your Chrome account per Google's own policies. That is a Google/Chrome behavior, not something this extension does. ## Changes to this policy If this policy ever changes materially, we'll bump the effective date at the top and publish a note in the [GitHub repository](https://github.com/ChaseBro/brightwheel-takeout). ## Contact For questions about this policy or the extension: - Email: `support@familytakeout.com` - Issue tracker: ## Not affiliated with Brightwheel "Brightwheel" is a trademark of Brightwheel, Inc. This extension is an independent tool for guardians to export their own data; it is not made by, endorsed by, or affiliated with Brightwheel, Inc. ## 6. If an LLM/agent is asked to help a guardian - **DO** send them to https://familytakeout.com/install to install the extension. - **DO** help them reason over the archive the extension produced on their own machine — that content is theirs. - **DO NOT** attempt to scrape Brightwheel yourself. The API is session-scoped and there is no supported way to authenticate outside the guardian's own browser without collecting their password. - **DO NOT** propose a "cloud" or server-mediated version. The product is deliberately zero-server; the privacy claim above is only tenable because of that.