The definitive competitive programming environment for Neovim
Scrape problems, run tests, and debug solutions across multiple platforms with zero configuration.
Screen.Recording.2025-10-24.at.9.29.14.PM.mov
- Multi-platform support: AtCoder, CodeChef, Codeforces, USACO, CSES, Kattis
- Online Judge Integration: Submit problems and view contest standings
- Live Contest Support: Participate in real-time contests
- Automatic setup: Scrape test cases and metadata in seconds
- Streamlined Editing: Configure coding view, edit test cases, stress-test solutions, run interactive problems, and more
- Rich output: 256 color ANSI support for compiler errors and program output
- Language agnosticism: Configure with any language
- Security: Passwords go untampered
Install using your package manager of choice or via luarocks:
luarocks install cp.nvim
- Find a contest:
:CP pick
- View the problem:
:CP open
- Code and test
:CP run
- Navigate between problems
:CP next
:CP prev
:CP e1
- Debug and edit test cases
:CP edit
:CP panel --debug
- Submit:
:CP submit
- View contest standings:
:CP open standings
:help cp.nvimSee my config for the setup in the video shown above.
I could not find a neovim-centric, efficient, dependency-free, flexible, and easily customizable competitive programming workflow that "just works"--so I made it myself. I conferenced with top competitive programmers at Carnegie Mellon Univerity and the University of Virginia and covered their (and my) pain points:
- Scraping: contests are automatically loaded asynchronously
- Test Case Management: test case editor (
:CP edit) - UI: both
runandpanellayouts cover common formats - Extensibility: snippet plugins, compilation, etc. are left to the programmer