Translate and review OpenAI Academy course content in your language.
AcademyLens is an unofficial Chrome extension for learners using OpenAI Academy. It focuses on course text translation and multilingual OpenAI/AI terminology glossaries.
Unofficial, not affiliated with OpenAI.
Install Locally · Contribute · Report Bug · Improve Glossary
- Current Scope
- Installation
- Why Separate From SkillBridge?
- Technical Shape
- Built For Academy Pages
- Quality And Release Readiness
- Planned v1.1
- Development
- Glossary Contributions
- Operations
- Open Source
- Privacy
- License
- Runs only on
https://academy.openai.com/*. - Translates visible course content into the selected language.
- Preserves core OpenAI and AI terminology such as OpenAI, ChatGPT, GPT, LLM, API, Responses API, Agents SDK, JSON, and Gradual.
- Applies installed premium glossaries built from OpenAI Academy course language and OpenAI documentation terminology before machine translation.
- Uses native language names in the language picker.
- Shows whether the selected language has a reviewed glossary, an AI-drafted beta glossary, or machine translation with protected terms.
- Uses Google Translate for the current fast translation runtime while browser-native translation providers are evaluated.
- Guards against late translation responses after Restore, language switches, and Gradual/Next.js route changes.
- Does not modify enrollment, progress tracking, certificates, account state, or Gradual platform data.
- Does not load remote AI scripts.
AcademyLens now ships thirteen premium glossary packs for de, es, fr, hi, id, it, ja, ko, pt-BR, ru, vi, zh-CN, and zh-TW, with 100+ OpenAI Academy/OpenAI Docs core terms in each pack. Korean is the first community-reviewed pack; the other premium packs are AI-drafted beta glossaries waiting for X translation cross-checks, community review, and native review. Hindi and French are prioritized because OpenAI Academy already exposes India/Hindi content and French Academy events. Languages outside the premium set still use machine translation plus protected-term preservation. See docs/TERMINOLOGY_MAP.md, docs/GLOSSARY_CONTRIBUTING.md, and docs/QUALITY_ROADMAP.md.
Manual install for Chrome or another Chromium browser:
git clone https://github.com/heznpc/AcademyLens.git
cd AcademyLens
npm install
npm run check:allThen:
- Open
chrome://extensions. - Enable Developer mode.
- Click Load unpacked.
- Select this repo folder.
- Open
https://academy.openai.com/.
AcademyLens is not yet submitted to the Chrome Web Store. Store submission will wait until the product, glossary quality, privacy copy, and live Academy DOM behavior are ready.
AcademyLens is a separate project because OpenAI Academy has a different product identity, site structure, risk profile, and store-listing strategy. SkillBridge remains a read-only reference for testing philosophy and release hygiene, not a source copied wholesale into this repo.
- Chrome Manifest V3
- Frontend-only extension
- No API key
- No server
- Content script for OpenAI Academy DOM translation
- Background service worker for translation requests and cache
The current build uses a Google Translate web endpoint for fast translation. Chrome Web Store submission is blocked until the final provider/privacy posture is reviewed. Browser-native Translator APIs are tracked as a future provider candidate, but not treated as a universal default yet. See docs/TECH_STACK_REVIEW.md.
OpenAI Academy is hosted through Gradual for course enrollment, progress tracking, and course-completion certificates. AcademyLens intentionally stays outside those flows and works only with visible page text.
AcademyLens is designed around OpenAI Academy course-page patterns and tested against Gradual-style course, study-room, and lesson DOM structures. It translates visible lesson content while avoiding navigation, progress, certificates, quizzes, and account controls.
AcademyLens is an open-source beta. It should not be treated as Chrome Web Store-ready until live Academy DOM QA, glossary review evidence, provider/privacy review, and release assets are all closed. See docs/QUALITY_ROADMAP.md, docs/TECH_STACK_REVIEW.md, and docs/RELEASE_CHECKLIST.md.
AI-assisted terminology review may return only if it can be implemented without remote hosted code risk, such as a reviewed local bundle or another compliant opt-in bridge.
Install dependencies once:
npm installFull local verification:
npm run check:all
npm run test:e2e
npm run build:zip
npm run check:full
npm run release:preflightFocused commands:
npm run node-check
npm run lint
npm run format:check
npm test
npm run check:manifest
npm run check:glossary
npm run check:files
npm run check:operations
npm run test:e2e
npm run build:zip
npm run store:screenshotsThe strict all-in-one gate is:
npm run check:fullAcademyLens welcomes multilingual glossary packs. Add language packs under src/data/glossary.<locale>.json, register them in src/data/glossary.index.json, and run npm run check:glossary. AI-generated drafts are useful starting points, but reviewed packs should be source-backed and human-reviewed. See docs/GLOSSARY_CONTRIBUTING.md.
Regenerate the current premium draft packs from the maintained seed:
npm run glossary:seedCheck current glossary review status:
npm run glossary:status
npm run glossary:scoreboardGenerate reviewer packets and run over-translation smoke checks:
npm run glossary:audit
npm run check:glossary-overreachSee docs/GLOSSARY_AUDIT.md and docs/X_TRANSLATION_CHECK.md.
Capture a sanitized Academy DOM fixture from a Playwright profile:
npm run capture:academy -- --url https://academy.openai.com/pages/courses --out /tmp/academylens-captured-page.html --headedTo intentionally save a reviewed, sanitized capture under tests/fixtures, pass --allow-fixture-write.
Generate local store screenshot drafts from the sanitized Academy-style fixture:
npm run store:screenshotsThe screenshots are written to dist/store-screenshots/, which is intentionally ignored.
Operational release work is tracked in docs/OPERATIONS.md. The live Academy QA surface manifest is docs/LIVE_QA_MANIFEST.json, and the generated glossary status board is docs/GLOSSARY_STATUS.md.
Before any public release or store asset pass:
npm run release:preflightAcademyLens is MIT licensed and welcomes focused contributions.
Good first contribution paths:
- glossary corrections for
src/data/glossary.<locale>.json - native-language review for AI-drafted glossary packs
- sanitized OpenAI Academy / Gradual fixture improvements
- UI/accessibility QA reports
- tests for translation, restore, cache, SPA navigation, or glossary behavior
Start with CONTRIBUTING.md. Please keep every contribution clear that AcademyLens is unofficial and not affiliated with OpenAI.
See PRIVACY_POLICY.md.
AcademyLens is released under the MIT License.
Development assisted by OpenAI Codex.