Source checkpoint: v4.2.0 — released on GitHub only, not designated for Chrome Web Store upload. The live CWS version remains v1.0.1; final packaging and dashboard work are deferred until the current development cycle is complete.
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, Claude Academy course routes at academy.claude.com/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. References below to the “CWS edition” describe the intended package boundary, not an assigned upload candidate. Publication is paused, and the final CWS version will be assigned after ongoing development; see the version-split Privacy Policy. Automated browser fixtures cover Academy routing and the Tutor transport, but this checkpoint does not claim an authenticated live Academy post-submit DOM capture or a final signed-in Puter round trip; both remain final CWS gates.
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.
If the connection drops after a supported course page has rendered, SkillBridge reuses matching translation results already stored in IndexedDB. This covers both plain text and structure-preserving HTML results. A persistent localized banner reports whether cache coverage is still being checked, fully covers the text encountered so far, covers only part of it, or has no matching translation. Uncached text remains in the original language and is retried when the connection returns. If Google Translate is unavailable while the browser is still online, the banner says so without disabling saved translations or local learning tools.
Only translation results are cached. SkillBridge does not store the course page, lesson media, or a navigable lesson copy.
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. Recognized assessment and certification surfaces are excluded from Continue/Recent and scroll-position retention.
On supported lesson surfaces that expose Tools › Reports, the v4.2.0 source checkpoint also lets you select one translated passage and mark it helpful or needing work. Helpful feedback is saved locally at once; needs-work feedback opens Reports with the English source, translation and selection prefilled, plus an optional correction. The queue is local-only: there is no telemetry, server submission or automatic GitHub issue.
AI Tutor & accounts: the current source build 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. The transport contract is regression-tested; the latest source checkpoint's live signed-in round trip remains a final CWS gate.
Tutor history groups consecutive questions into titled, per-lesson conversations. You can start fresh, browse every turn, delete one conversation, clear all history, or export a local JSON copy. Saved turns are not added to a later cloud or local Tutor request; only the active question and the disclosed lesson context are sent.
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 CWS v1.0.1; source v4.2.0 is a GitHub-only checkpoint. 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.2.0records the current source boundary, including the bundled AI Tutor, local on-device Tutor, Academy support, local Notes, local translation feedback in Reports, and exam-safe translation refinements. Its permission scope is machine-verified against the manifest on every push (npm run check:permission-docs). Publication remains paused; CWS assets and dashboard fields will be regenerated only after ongoing development is complete — 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.comand trustedacademy.claude.comcourse routes; 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. Baseline page translation does not invoke Puter, Claude, or the Tutor model. Optional Translation Refinement is separate, off by default and separately consented; when enabled it sends already-translated paragraphs and their English source to the model you selected for post-editing. 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 translation cache is prepared before the first translation pass, without waiting for optional Tutor startup. While offline, both the plain-text and structured-HTML caches are checked before missing items are deferred for an online retry. This cache contains translation results only; it does not contain the course page or its media.
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 matching translation results on 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.
| 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) |
| 🇳🇱 Nederlands (Dutch) | nl |
1,100+ entries (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) · 🇵🇱 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 13 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 | 🙋
report this listing— log in to report |


0 comments
log in to comment.