Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
C

competitive-companion

> 编程语言
Open source

Browser extension which parses competitive programming problems

1.3K stars0 likes1 views
WebsiteGitHub

About

Browser extension which parses competitive programming problems

Competitive Companion


A browser extension which parses competitive programming problems from various online judges (like AtCoder and Codeforces) and sends them to various tools (like CP Editor and CPH). Capable of parsing problems and contests and extracting data like the example testcases and the time and memory constraints.

Install

  • Chrome extension
  • Firefox add-on

Tools that use Competitive Companion

  • acmX
  • AI Virtual Assistant
  • Assistant.nvim
  • AutoCp
  • Caide
  • CHelper
  • Competitive Programming Gradle Plugin
  • Competitive Programming Helper
  • CompetiTest.nvim
  • CP-Assist
  • CP Editor
  • cpbooster
  • CPH-NG
  • cphelper.nvim
  • Fast Olympic Coding
  • Faster-OJ.nvim
  • Hightail
  • JHelper
  • LazyCPH
  • Mind Sport
  • Red Panda Dev-C++
  • rust-competitive-helper
  • Any other tool that can parse the data that is being sent, read more about that below

Supported websites

Website Problem parser Contest parser
33OJ ✔ ✔
A2 Online Judge ✔ ✔
ACMP ✔
AcWing ✔
Aizu Online Judge ✔
Algotester ✔
AlgoZenith ✔
Anarchy Golf ✔
AtCoder ✔ ✔
A.Y. Jackson Online Judge ✔ ✔
Baekjoon Online Judge ✔
BAPS OJ ✔ ✔
beecrowd ✔ ✔
BJTU OJ ✔
Bloomberg CodeCon ✔
BUCTOJ ✔ ✔
CodeChef ✔ ✔
CodeDrills ✔
Codeforces ✔ ✔
CodeMarshal ✔ ✔
CodeRun ✔ ✔
CodeUp ✔
COJ ✔ ✔
Contest Hunter ✔ ✔
CPython.uz ✔ ✔
CS Academy ✔
CSES ✔ ✔
CSGOJ ✔ ✔
CSU-ACM Online Judge ✔ ✔
CYEZOJ ✔ ✔
Daimayuan Online Judge ✔ ✔
Dimik OJ ✔
DMOJ ✔ ✔
DOMjudge ✔
DotOJ ✔ ✔
Eolymp ✔ ✔
ECNU Online Judge ✔ ✔
FZU Online Judge ✔ ✔
Google Coding Competitions ✔
HackerEarth ✔ ✔
HackerRank ✔ ✔
HDOJ ✔ ✔
HIT Online Judge ✔
hihoCoder ✔ ✔
HKOI Online Judge ✔ ✔
HOJ ✔
Hrbust Online Judge ✔
Hydro ✔ ✔
ICPC Live Archive ✔
InfoArena ✔
ITCoder HUTECH ✔
Jutge ✔
Kattis ✔ ✔
KEP.uz ✔ ✔
Kilonova ✔ ✔
Lanqiao ✔ ✔
Le Quy Don Online Judge ✔ ✔
Library Checker ✔
LibreOJ ✔ ✔
LightOJ ✔ ✔
LSYOI ✔
Luogu ✔ ✔
MarisaOJ ✔ ✔
Mendo ✔
Meta Coding Competitions ✔
MOI Arena ✔ ✔
mrJudge ✔
MSK Informatics ✔
NBUT Online Judge ✔ ✔
Neps Academy ✔
NerdArena ✔
Newton School ✔
NOJ ✔ ✔
NowCoder ✔
NYTD Online Judge ✔ ✔
oiClass ✔ ✔
Olinfo ✔
Olympicode ✔
omegaUp ✔
OpenJudge ✔ ✔
OTOG ✔
Panda Online Judge ✔
PBInfo ✔
PEG Judge ✔ ✔
POJ ✔ ✔
PTA ✔
Public Judge ✔ ✔
QBXTOJ ✔
QDUOJ ✔ ✔
QQWhale ✔
RoboContest ✔ ✔
SDUT OnlineJudge ✔
SeriousOJ ✔ ✔
Sort Me ✔
SPOJ ✔
SSOIER ✔
StarryCoding ✔
TheJobOverflow ✔
Timus Online Judge ✔ ✔
TLX ✔ ✔
Toph ✔
uDebug ✔
Universal Cup ✔ ✔
UOJ ✔ ✔
USACO ✔
USACO Training ✔
UVa Online Judge ✔
Virtual Judge ✔ ✔
VNOI Online Judge ✔ ✔
YACS ✔
Yandex ✔ ✔
XXM ✔
X-Camp ✔
yukicoder ✔ ✔
Yun Dou Xue Yuan ✔ ✔
ZOJ ✔
ZUFEOJ ✔ ✔

Custom tools

Competitive Companion can send the parsed data in JSON format to your own tools. To do this, start an HTTP server listening for POST requests to / on any of the ports listed in ./src/hosts/hosts.ts. An example on how to accomplish this can be found in jmerle/competitive-companion-example.

If you want your own tool added to the released version of Competitive Companion, create an issue in this repository specifying the name and a link to the tool.

The format

Here's an example of the data sent when parsing Codeforces 954G:

…

It's not required for a tool to parse all these options, since some of them are tool/language-specific. However, it is required for all extensions/tools that send data via this format to fill all required options.

Explanation

  • name: The full name of the problem. Can be used for display purposes.
  • group: Used to group problems together, which can be useful for archiving purposes. Follows the format -, where the hyphen is discarded if the category is empty.
  • url: A link to the problem on the judge's website.
  • interactive (optional): Whether this is an interactive problem or not.
  • memoryLimit: The memory limit in MB.
  • timeLimit: The time limit in ms.
  • tests: An array of objects containing testcase data. The JSON objects in the array all have two keys: input and output. Both the input and the output need to end with a newline character.
  • testType: The type of the tests. Supports two options: "single" and "multiNumber". Explanation of these two can be found on the JHelper wiki.
  • input: An object which is used to co

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

TypeScriptatcoderbrowser-extensioncodeforcescompetitive-programming

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言