Source manifest: v4.0.0 — unreleased CWS candidate. The existing
v3.5.41tag predates this change set and is not reused.
Available in multiple languages at the project landing page.
Translate the free AI courses at anthropic.skilljar.com into your language — instantly.
Break the language barrier on these free AI courses. 32 languages supported. The CWS edition combines course-page translation with local flashcards, bookmarks, progress, reading, and export tools. It runs on anthropic.skilljar.com, detected Skilljar-hosted AI courses, and Claude tutorial pages at claude.com/resources/tutorials; non-AI Skilljar tenants are paused automatically.
Version boundary: the Chrome Web Store still serves legacy v1.0.1, which includes the Puter-backed Gemini/Claude path and YouTube host permission. Unless explicitly labeled legacy, references below to the “CWS edition” mean the next privacy-focused candidate. Publication of that candidate is paused; see the version-split Privacy Policy.
Install · Features · Report Bug · Request Feature · Contributing

Install SkillBridge, visit a course page at anthropic.skilljar.com, and the entire page is translated instantly.
- The Problem
- Quick Start
- Features
- Installation
- How It Works
- Architecture & Decisions
- Supported Languages
- Privacy & Security
- Tech Stack
- Contributing
- FAQ
- License
The free AI courses at anthropic.skilljar.com — covering prompt engineering, AI safety, the Claude API, and more — are one of the best free learning resources on the topic. Millions of developers worldwide want to take these courses, but they're only available in English.
Generic translators make it worse, not better:
| Google Translate (page) | SkillBridge | |
|---|---|---|
| AI terminology | ❌ "Prompt" → "신속한" (wrong) | ✅ "Prompt" → "프롬프트" (correct) |
| Technical accuracy | ❌ Generic machine translation | ✅ 1,100+ curated terms per Premium language |
| Learning tools | ❌ None | ✅ Local flashcards, bookmarks, progress, outline, PDF |
| Video subtitles | ❌ Separate manual toggle | ✅ Auto-translated subtitles |
| UI preservation | ❌ Breaks checkboxes, progress bars | ✅ All interactive elements preserved |
| Cost | Free | Free — no API keys needed |
SkillBridge exists to remove this barrier — making AI education accessible worldwide.
No API keys. No cost. Just install and learn.
- Install the extension (see below)
- Visit a course page at anthropic.skilljar.com
- SkillBridge translates the entire page automatically
That's it.
Course headings, paragraphs, lists, navigation, cards, and supported code comments are translated, with AI-specific terms handled through curated dictionaries and protected-term restoration. Course controls and CJK font rendering remain intact. Text not already covered by the packaged dictionary or local cache is translated through Google Translate. Paragraphs that mix prose with links or buttons use Google Translate's structure-preserving HTML mode; if that path cannot safely reconcile the result, they keep their original markup so links and controls are never lost.
The CWS edition includes spaced-repetition flashcards, bookmarks, Continue/Recent links, a local progress dashboard, an in-lesson outline, reading progress, and PDF export. Learning-tool state stays in the browser.
AI Tutor & accounts: the v4 CWS candidate includes the AI Tutor (Claude Sonnet 4.6, falling back to Sonnet 4.5) through an isolated bundled Puter runtime. The tutor uses a free Puter sign-in — no API key and no SkillBridge account. Page translation and the local learning tools need no account at all; only the optional cloud tutor prompts for sign-in.
Course videos automatically activate translated subtitles when you play them — no manual toggle needed.
A full dark theme for the course header, lesson content, and SkillBridge panels. Toggle with one click.
Course quizzes (e.g., Claude 101 completion quiz) — answer choices on recognized quiz pages are skipped by translation to preserve accuracy (detection is URL- and page-selector-based).
Proctored certification exams (e.g., Claude Certified Architect) — on recognized certification routes the extension disables itself: no translation, no UI injection. Recognition is URL-pattern based, so treat it as a safeguard, not a guarantee — if Skilljar ships an exam under a URL the patterns don't cover yet, the extension won't know it's an exam. For any proctored exam, turn the extension off yourself.
Ctrl+Shift+S toggle the sidebar, Ctrl+Shift+F open flashcards, Ctrl+Shift+L toggle dark mode, Ctrl+Shift+/ open help, and Escape close.
When you enter a lesson, a floating card shows 6 key terms for the current course with their translations. Auto-dismisses after 15 seconds. Click "View all" to open the full flashcard panel.
Export any translated lesson as a clean, print-friendly PDF — useful for offline study or quick reference.
Detects your browser language on first visit and offers to translate. Handles SPA navigation — when you move between lessons, the new page is translated automatically without a reload.
Generic translation tools often mistranslate brand names and technical terms. SkillBridge auto-corrects these errors after translation:
| Before (Google Translate) | After (SkillBridge) |
|---|---|
| ❌ 인류학적 과정 | ✅ Anthropic 과정 |
| ❌ 클로드 | ✅ Claude |
| ❌ 신속한 공학 | ✅ 프롬프트 엔지니어링 |
Status: live as v1.0.1; v4.0.0 is the next CWS release candidate. The Chrome Web Store listing is available in all locales except the United States, where it was removed on 2026-05-12 over a trademark issue with the old icon (since redesigned on
main). The published store build is v1.0.1; the earlierv3.5.xcandidates predate the current CWS changes and are not reused.v4.0.0contains the unreleased candidate: it restores the bundled AI tutor, adds a local on-device tutor engine, and translates inline-mixed blocks as HTML. Its permission scope is finalized and machine-verified against the manifest on every push (npm run check:permission-docs). Publication remains paused pending the CWS dashboard upload — seestore-assets/RELEASE_CHECKLIST.md.
CWS-equivalent local bundle (developer mode):
git clone https://github.com/heznpc/skillbridge.git
cd skillbridge
npm ci
npm run build:bundle- Open
chrome://extensions/(Chrome) oredge://extensions/(Edge) - Enable Developer mode (top-right toggle)
- Click Load unpacked → select
dist/bundled - Visit anthropic.skilljar.com and start learning!
Also works in Brave, Arc, Opera, Vivaldi, and other Chromium-based browsers.
Loading the repository root instead selects the raw developer configuration. Use
dist/bundledfor supported Tutor testing: only that build contains the reviewed CWS-sanitized SDK. Packaging disables unused remote TLS-socket imports, aFunction-constructor fallback, and automatic User/profile lookups, unused eager filesystem-socket/resource-access startup, and the SDK's hidden automatic token reauthentication and persistent host-page caches. The SDK runs in Chrome's isolated content-script world only onanthropic.skilljar.com; Tutor network payloads use validated extension ports, not page-world messaging. The visible Tutor remains in the shared page DOM, so course-page scripts may observe keyboard events and rendered chat text. SkillBridge persists the minimum Puter session fields in extension storage, not the course site's storage. Puter's HTTPS sign-in returns its result to the opener with browser window messaging, so the course page may also observe that transient authentication event. Never upload the repository root or developer ZIP in place of the scanned CWS artifact.
git clone https://github.com/heznpc/skillbridge.git
cd skillbridge
npm run build:firefox- Open
about:debugging#/runtime/this-firefoxin Firefox - Click Load Temporary Add-on
- Navigate to
dist/firefox/and selectmanifest.json - Visit anthropic.skilljar.com and start learning!
Note: Temporary add-ons are removed when Firefox restarts. For permanent installation, use a signed
.xpifrom Firefox Add-ons (coming soon).
The CWS edition uses a staged translation engine that prioritizes local results:
Page text
│
├─ 1,100+ curated term dictionary ──→ Instant (AI terms translated correctly)
│
├─ Local cache (IndexedDB) ───────→ Instant (previous result)
│
└─ Remaining visible text → Google Translate
│
├─ Protected Terms auto-fix ─→ Restores brand/tech terms GT mistranslates
└─ Cache result locally for up to 30 days
Text not covered by the packaged dictionary or local cache is sent to Google Translate when translation is requested. Paragraphs that mix prose with links/buttons are translated structure-preserving through Google Translate's HTML mode. Page translation does not invoke Puter, Claude, or the Tutor model. The optional cloud Tutor uses Claude through an isolated bundled Puter runtime only when you send a Tutor message; local and off Tutor modes are also available. See the Privacy Policy for the full data flow.
The interesting part of SkillBridge is the constraints, not the feature count. A few decisions worth calling out:
Why a multi-stage pipeline, not "just call an LLM." Translating a course page on every navigation has to be fast and predictable. The curated dictionary fixes terms generic MT gets wrong ("Prompt" → "프롬프트", never "신속한") at zero latency, the IndexedDB cache makes revisits instant, Google Translate covers the remaining visible text, and protected-term restoration runs after machine translation. Local results come first; the network is used only for text that still needs translation.
Reliability & safety are designed in, not bolted on.
- Exam-safe by default — on recognized proctored certification routes the extension disables itself, and on recognized quiz pages answer choices are skipped by translation. Detection is pattern-based (URLs + page selectors), so it is a safeguard rather than a guarantee: sitting a proctored exam, turn the extension off. A learning aid must not be mistakable for a cheating tool.
- Invariants over hope — brand/product terms ("Claude", "Cowork", "Agent Skills") are protected by a dictionary and restored after machine translation, rather than trusting the translator to leave them alone. (Generic concept words like "subagent" are translated natively per locale — see docs/TRANSLATION_RULES.md.)
- Guarding against external drift — the target site is a third party we don't control, so CI watchers detect when the platform adds a course or changes its DOM selectors and open an issue automatically, instead of letting users hit silent breakage.
- Defensive content scripts — idempotent injection guards and URL polling, because the host app navigates via SPA (content scripts can fire more than once — or not at all — per navigation).
What I deliberately did not build (and why).
- No SkillBridge servers / no backend — the CWS edition stores its learning state locally and sends translation text directly to Google Translate, at the deliberate cost of cross-device sync.
- No telemetry or analytics — nothing is collected, not even opt-in error reports; marketing convenience never outweighs the privacy promise.
- No A/B framework, no paid tier — both imply infrastructure (traffic, segmentation, billing) that a free, server-less project shouldn't fake.
The full "things we will not do" list is kept public on purpose in TODO.md.
| Language | Code | Dictionary |
|---|---|---|
| 🇰🇷 한국어 (Korean) | ko | 1,100+ entries |
| 🇯🇵 日本語 (Japanese) | ja | 1,100+ entries |
| 🇨🇳 中文简体 (Chinese Simplified) | zh-CN | 1,100+ entries |
| 🇹🇼 中文繁體 (Chinese Traditional) | zh-TW | 1,100+ entries |
| 🇪🇸 Español (Spanish) | es | 1,100+ entries |
| 🇫🇷 Français (French) | fr | 1,100+ entries |
| 🇮🇹 Italiano (Italian) | it | 1,100+ entries (re-translated from English; native review welcome) |
| 🇩🇪 Deutsch (German) | de | 1,100+ entries |
| 🇧🇷 Português (Brazilian) | pt-BR | 1,100+ entries |
| 🇷🇺 Русский (Russian) | ru | 1,100+ entries |
| 🇻🇳 Tiếng Việt (Vietnamese) | vi | 1,100+ entries |
| 🇮🇩 Bahasa Indonesia | id | 1,100+ entries |
🇵🇹 Português (PT) · 🇳🇱 Nederlands · 🇵🇱 Polski · 🇺🇦 Українська · 🇨🇿 Čeština · 🇸🇪 Svenska · 🇩🇰 Dansk · 🇫🇮 Suomi · 🇳🇴 Norsk · 🇹🇷 Türkçe · 🇸🇦 العربية · 🇮🇳 हिन्दी · 🇹🇭 ภาษาไทย · 🇲🇾 Bahasa Melayu · 🇵🇭 Filipino · 🇧🇩 বাংলা · 🇮🇱 עברית · 🇷🇴 Română · 🇭🇺 Magyar · 🇬🇷 Ελληνικά
Want to add your language as Premium? Contribute a curated dictionary — see CONTRIBUTING.md.
New Academy content is covered by a standing pipeline, not by hand-checking:
a CI watcher polls the live catalog twice a day and fails loudly + opens an
issue the moment a course appears that the dictionaries don't cover; the
course gets wired into all 12 premium dictionaries; structural CI gates
(check:i18n, check:dict-coverage, check:locales) and a real-dictionary
regression suite guard every merge after that. Proven turnaround: on
2026-06-10 the watcher flagged the brand-new Claude Platform 101 course
in the morning (#196) and
all premium locales at the time were wired the same day
(#201).
Beyond structure, dictionary content goes through layered review — CI gates
catch shape/contamination drift on every PR, a full per-locale LLM audit runs
before every store release (see docs/TRANSLATION_QA.md), and native-speaker
review is the final layer:
| Language | Code | Entries | Last curated | Last LLM audit | Native review |
|---|---|---|---|---|---|
| 한국어 | ko | 1129 | 2026-07-28 | 2026-07-28 | 🙋 recruiting |
| 日本語 | ja | 1129 | 2026-07-28 | 2026-07-28 | 🙋 recruiting |
| 中文(简体) | zh-CN | 1129 | 2026-07-28 | 2026-07-28 | 🙋 recruiting |
| 中文(繁體) | zh-TW | 1129 | 2026-07-28 | 2026-07-28 | 🙋 recruiting |
| Español | es | 1129 | 2026-07-28 | 2026-07-28 | 🙋 recruiting |
| Français | fr | 1129 | 2026-07-28 | 2026-07-28 | 🙋 recruiting |
| Italiano | it | 1129 | 2026-07-28 | 2026-07-28 | 🙋 recruiting |
| Deutsch | de | 1129 | 2026-07-28 | 2026-07-28 | 🙋 recruiting |
| Português (BR) | pt-BR | 1129 | 2026-07-28 | 2026-07-28 | 🙋 recruiting |
| Русский | ru | 1129 | 2026-07-28 | 2026-07-28 | 🙋 recruiting |
| Tiếng Việt | vi | 1129 | 2026-07-28 | 2026-07-28 | 🙋 recruiting |
| Bahasa Indonesia | id | 1129 | 2026-07-28 | 2026-07-28 | 🙋 recruiting |
🙋 Native speakers wanted — a first native pass on your locale takes ~1–2 hours, needs no coding, and gets you credited here. See #202.
These claims describe the unpublished candidate, not live legacy v1.0.1:
- No operator analytics — zero analytics, tracking, or telemetry; requested page text is still processed by Google Translate as disclosed
- No SkillBridge servers — we do not operate any servers; uncached page text is sent directly to Google Translate when translation is requested
- No SkillBridge account, ever — translation and the local learning tools need no account, email, password, or API key. The optional AI Tutor uses a free Puter sign-in (its own account, no API key); nothing is shared with SkillBridge
- Local learning state — original/translated text is cached in IndexedDB;
preferences, flashcard review state, bookmarks, recent lessons, and scroll
positions use
chrome.storage.local; progress summaries are calculated locally - The AI Tutor is user-invoked — page translation uses the disclosed Google Translate path but never calls Puter, Claude, or the Tutor model; only a cloud Tutor message reaches Claude through Puter, while local and off Tutor modes remain available
- Open source — every line of code is auditable right here
See our full Privacy Policy.
| Component | Technology |
|---|---|
| Page Translation | Google Translate API |
| Protected Terms | Auto-correction of GT brand/product term errors per language (Claude, Cowork, Computer Use, Agent Skills, etc.) |
| Curated Dictionaries | Hand-tuned JSON (1,100+ × 12 languages) |
| Translation Cache | IndexedDB |
| Local Learning Tools | chrome.storage.local + IndexedDB |
| AI Tutor | Claude Sonnet 4.6, with an automatic Sonnet 4.5 fallback, via isolated bundled Puter runtime (free Puter sign-in) |
| CJK Font Rendering | Local system/Noto fallback stacks |
Built with Claude Code. This project — from architecture design and feature implementation to debugging and the demo GIF — was developed using Claude Code as an AI pair-programming partner.
SkillBridge is a community-driven project. The single most impactful way to contribute is improving the translation dictionary for your language — no code required, just edit a JSON file. Even fixing one bad translation helps every learner using that language.
Each language's dictionary is curated to sound natural to native speakers. We align with Anthropic's official multilingual docs as a baseline, but community conventions matter too — if Korean developers say "프롬프트" instead of "prompt", that's what we use. Disagree with a term choice? That's exactly the kind of PR we want.
See CONTRIBUTING.md for the full guide and Good First Issues to get started.
Does it work on browsers other than Chrome?
Yes! SkillBridge supports Chrome, Firefox, and Edge (plus Brave, Arc, Opera, and Vivaldi). For Chrome/Edge, load the extension directly. For Firefox, run npm run build:firefox to generate a compatible build. See Installation for detailed instructions.
Do I need an API key or account?
Translation and the local learning tools need no account, email, password, user API key, or human-check. The optional cloud Tutor is included in the CWS candidate and requires a separate free Puter sign-in; the local Tutor engine and off mode do not. SkillBridge's operator never receives the Puter session token or account details. See the version notice above for the currently published legacy v1.0.1 boundary.
Why does my language show as "Standard" instead of "Premium"?
Premium languages have a hand-curated dictionary (1,100+ entries) that catches AI/ML term mistranslations. Standard languages use Google Translate plus local protected-term restoration. Want to promote your language? Contribute a dictionary — see CONTRIBUTING.md.
The translation looks wrong. How do I report it?
Open an issue with the original English text, the bad translation, and your suggested correction. Or even better — submit a PR directly to the dictionary JSON file for your language.
Is this project affiliated with Anthropic?
No. SkillBridge is an unofficial community project. It is not affiliated with, endorsed by, or sponsored by Anthropic. "Anthropic", "Claude", and "Skilljar" are trademarks of their respective owners.
Firefox and Edge Add-on support(shipped in v2.0.0)Exam mode — answer choice protection(shipped in v2.0.0)Certification exam kill-switch(shipped in v2.1.0)SPA navigation handling(shipped in v2.1.0)New course support: Cowork, subagents, MCP Advanced Topics(shipped in v2.1.0)Per-lesson term preview, PDF export, offline cache hardening(shipped in v3.5.0)Firefox AMO deployment pipeline(shipped in v3.5.0)- Additional curated language dictionaries (community-driven)
- Translation quality analytics and community review
- Multi-LMS platform support beyond Skilljar
SkillBridge is a personal translation and study tool. It caches original and translated lesson text locally for up to 30 days, stores local learning state and Tutor history, sends requested translation text to Google Translate, and sends only user-invoked cloud Tutor requests to Claude through Puter. See the Privacy Policy for exact data flows and retention.
SkillBridge is an unofficial, independent community project. It is not affiliated with, endorsed by, or sponsored by Anthropic or Skilljar. References to "Anthropic", "Claude", "Skilljar", and
anthropic.skilljar.comare nominative — they describe the third-party platform and content this extension translates. All trademarks remain the property of their respective owners.
If you find SkillBridge useful, consider starring the repo. It helps more learners discover the project.

