Skip to content

heznpc/AcademyLens

AcademyLens

AcademyLens

CI MIT License Chrome MV3 GitHub contributors PRs welcome

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


Table of Contents

Current Scope

  • 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.

Installation

Manual install for Chrome or another Chromium browser:

git clone https://github.com/heznpc/AcademyLens.git
cd AcademyLens
npm install
npm run check:all

Then:

  1. Open chrome://extensions.
  2. Enable Developer mode.
  3. Click Load unpacked.
  4. Select this repo folder.
  5. 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.

Why Separate From SkillBridge?

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.

Technical Shape

  • 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.

Built For Academy Pages

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.

Quality And Release Readiness

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.

Planned v1.1

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.

Development

Install dependencies once:

npm install

Full local verification:

npm run check:all
npm run test:e2e
npm run build:zip
npm run check:full
npm run release:preflight

Focused 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:screenshots

The strict all-in-one gate is:

npm run check:full

Glossary Contributions

AcademyLens 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:seed

Check current glossary review status:

npm run glossary:status
npm run glossary:scoreboard

Generate reviewer packets and run over-translation smoke checks:

npm run glossary:audit
npm run check:glossary-overreach

See 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 --headed

To 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:screenshots

The screenshots are written to dist/store-screenshots/, which is intentionally ignored.

Operations

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:preflight

Open Source

AcademyLens 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.

Privacy

See PRIVACY_POLICY.md.

License

AcademyLens is released under the MIT License.

Acknowledgements

Development assisted by OpenAI Codex.

About

Unofficial Chrome extension for translating OpenAI Academy course content.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages