Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>ChallengeHubNew to Visual Studio Code? Get it now.
ChallengeHub

ChallengeHub

MickyCodes

|
1 install
| (0) | Free
Challenge Hub — Coding challenges, directly inside VS Code.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Challenge Hub

Competitive programming challenges, directly inside VS Code.

Challenge Hub pulls the full Codeforces problemset into your editor, renders each problem statement cleanly, and works completely offline once synced. No browser tab. No context switch. Just problems, in your editor, next to your code.


Features

Offline-first problemset

Hit Refresh once, and Challenge Hub downloads the entire Codeforces problemset — over 11,000 problems — into local storage. After that, everything works without a network connection.

Sidebar browser

A dedicated Challenge Hub view in the Activity Bar organizes every problem by difficulty:

  • Unrated, ≤ 1200, 1200 – 1400, 1400 – 1600, … up to 2400+
  • Collapsible groups with problem counts
  • One row per problem, with tags and a difficulty icon

Click any problem to open it.

Clean problem rendering

Statement pages are parsed and re-rendered with a readable layout:

  • Hero card with title, rating, tags, and time/memory limits
  • Problem / Input / Output as properly formatted prose
  • Examples as numbered, zebra-striped tables with a Copy input button
  • Math rendered via MathJax — so 1 \le t \le 500 shows as 1 ≤ t ≤ 500, and display formulas render the way Codeforces shows them
  • Automatic light/dark theming through VS Code theme variables

Command Palette access

Everything the sidebar does is also available from the palette:

Command What it does
Challenge Hub: Refresh Challenges Download the latest problemset
Challenge Hub: Open Problem Quick Pick a problem by name
Challenge Hub: Show Cached Challenges Info Show how many problems are cached
Challenge Hub: Focus Problems View Jump to the sidebar

Getting started

  1. Install the extension.
  2. Open the Challenge Hub icon in the Activity Bar.
  3. Click the refresh button (⟳) in the view title bar.
  4. Wait for the download — 11k+ problems, usually under 30 seconds.
  5. Browse by rating, click a problem, and start solving.

You only need to refresh once. The cache lives in VS Code's global storage and survives restarts.


Requirements

  • VS Code 1.85.0 or newer
  • Internet access only for the initial refresh and for loading problem statements the first time you open them
  • MathJax is loaded from a CDN, so formula rendering needs network access. Everything else works offline.

Extension settings

None yet. Everything is cached in globalStorage and rebuilt on demand.


Known limitations

  • Problem statements are fetched on demand. The problemset metadata is cached, but each problem's HTML is fetched when you open it, so opening a problem for the first time requires network access.
  • MathJax requires a CDN. If cdn.jsdelivr.net is blocked, formulas render as raw $$$...$$$ text.
  • No submission support. Challenge Hub is a reader, not a judge. To submit, use the "Open on Codeforces" link.
  • Search is per-group. The tree view's built-in filter only matches currently-visible rows.

How it works

  • Cache. On refresh, the extension calls codeforces.com/api/problemset.problems and writes the result to codeforces.json in context.globalStorageUri. Writes are atomic (write-to-temp then rename) so a crash mid-write can't corrupt the cache.
  • IPv4-first networking. Node 17+ prefers IPv6, which fails on many home networks with an ETIMEDOUT. Challenge Hub forces ipv4first and sets family: 4 on every request, matching curl's behavior.
  • HTML parsing. Problem statements are parsed with regex and a balanced-tag walk — no external HTML parser dependency. Sections (legend, input-specification, output-specification, sample-test, note) are extracted by class name and re-rendered with our own CSS.
  • Rendering. The webview loads MathJax with a config that recognizes Codeforces' triple-dollar delimiters ($$$...$$$ inline, $$$$$$ ... $$$$$$ display). A strict CSP allows only the CDN and inline styles.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft