Skip to content
| Marketplace
Sign in
Visual Studio Code>Education>VS Code LearnNew to Visual Studio Code? Get it now.
VS Code Learn

VS Code Learn

James Montemagno

| (0) | Free
Gamifies VS Code Learn courses with an embedded reader, progress tracking, history, and achievements.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

VS Code Learn

Gamifies the VS Code Learn courses with an embedded Markdown reader, local progress tracking, history, and achievements.

Data source

The extension uses the public microsoft/vscode-docs repository:

  • learn/toc.json provides course order, titles, descriptions, and lesson paths.
  • learn/{area}/{lesson}.md provides Markdown lesson content for the embedded reader.

A generated catalog is bundled so the extension works offline. Runtime sync checks for updates at most once every 24 hours by default and can be triggered manually with VS Code Learn: Refresh Course Catalog.

Development

npm install
npm run compile
npm test
npm run generate:catalog

Press F5 in VS Code to launch an Extension Development Host.

Publishing

Releases are published to the VS Code Marketplace automatically by the Publish GitHub Actions workflow whenever a GitHub Release is published. A separate CI workflow compiles, tests, and packages the extension on every push and pull request.

One-time setup

  1. Create a publisher. Sign in at the Visual Studio Marketplace publisher portal and create a publisher. The publisher ID must match the publisher field in package.json (currently vs-publisher-473885).
  2. Create a Personal Access Token (PAT). In Azure DevOps, create a token with Marketplace → Manage scope (organization: All accessible organizations).
  3. Add the token as a repository secret named VSCE_PAT (GitHub repo → Settings → Secrets and variables → Actions). The workflow also accepts VSCE_TOKEN for compatibility with other repos.
  4. (Optional) To also publish to Open VSX, add an OVSX_PAT secret. If it is absent the workflow simply skips that step.

Versioning

The published version is set automatically to 1.0.<build-number>, where the build number is the GitHub Actions run number of the Publish workflow. You never need to bump the version manually — each publish gets a unique, increasing version. (The version in package.json is only a placeholder for local development.)

Cutting a release

Just trigger the Publish workflow — no version bump needed:

  • Create a GitHub Release (recommended), or
  • Run it manually via Actions → Publish → Run workflow.

The workflow tests, stamps the version as 1.0.<run-number>, packages, publishes to the Marketplace, and always handles the GitHub release artifact:

  • If triggered by a GitHub release event, it attaches the .vsix to that release.
  • If triggered manually, it automatically creates a GitHub release/tag v1.0.<run-number> and uploads the .vsix.

Publishing manually from your machine

npm run package                 # creates the .vsix locally
npx @vscode/vsce login vs-publisher-473885
npm run publish                 # or: npx @vscode/vsce publish

MVP behavior

  • Local-first state only; no account, cloud sync, telemetry, or leaderboard.
  • Lesson content is fetched on demand from GitHub raw Markdown and cached in extension global storage.
  • Progress and achievement state is stored in VS Code global state.
  • Reset-all progress requires confirmation.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft