Omahub
← All plugins
U

Competitive Programming

by ujjawal

Create competitive programming problems and contests, then open source files directly in Neovim.

Security review

Review recommended · 1 finding

Deterministic scan — not a security guarantee

Low
Risk level
Low
Analyzed commit
a624521
Scanned
1 month ago

Flagged patterns appear only in documentation files (README / docs) — descriptive examples, not executable code.

  • Docs external_hosts README.md:32

    Downloads or connects to an external HTTP(S) host.

    git clone https://github.com/YOUR_USERNAME/YOUR_REPO_NAME.git ~/.config/omarchy/plugins/ujjawal.competitive

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

Low
AI risk level
Low
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
a624521
Reviewed
1 month ago

The plugin creates competitive programming problem/contest workspaces and opens them in Neovim. The deterministic scan flagged an external host in the README, but that is just a documentation example of a git clone URL, not executable code. The code is straightforward QML/JavaScript with no obfuscation, no hidden network calls, and no destructive operations; the only external process execution is invoking a terminal with nvim on a user-selected file path.

  • The deterministic scan flagged an external host in README.md, but it is only a documentation example of a git clone URL and not executable code.
  • The plugin executes shell scripts via bash -c, but the scripts are generated locally from user input and only create directories and files under the configured data root.
  • The open_editor.sh script falls back to xterm if alacritty/kitty are not found, which may be unexpected but is not a security risk.
  • File paths are not shell-escaped in the generated bash scripts, so a crafted problem name with shell metacharacters could potentially inject commands; however, the sanitization in ProblemManager.js removes most dangerous characters, and the user controls the input locally.
How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/ujjawal0266/omarchy-plugin-competitive --enable
Productivity #bar

Omarchy Competitive Programming Plugin

A native Omarchy Quattro bar-widget plugin designed for competitive programmers. It lets you create problem and contest workspaces instantly from your status bar and automatically opens the generated starter code directly in your Neovim terminal.

Features

  • One-Click Creation: Click the dartboard (🎯) icon in your bar to open the creation forms.

    • Left Click: New Problem Form <img width="381" height="346" alt="image" src="https://github.com/user-attachments/assets/08d18034-9bf1-4591-b8f1-a686687359d4" />

    • Right Click: New Contest Form <img width="359" height="316" alt="image" src="https://github.com/user-attachments/assets/f6e51821-1714-4c4d-854f-7eff1f61904a" />

  • Instant Neovim Launch: Immediately opens your newly generated .cpp, .java, or .py files in a terminal (Alacritty/Kitty). No manual directory navigation required. <img width="965" height="1053" alt="image" src="https://github.com/user-attachments/assets/a5bdf438-c833-4790-82bb-a260a946bcaf" />

  • Smart Pathing & Names: Automatically sanitizes problem names and generates directories (e.g. ~/Documents/data/Codeforces/Problems/0001_Two_Sum).

  • Starter Templates: Pre-loads standard boilerplate for C++ (fast I/O), Java (Scanner), and Python (fast input).

  • Daily Stats: Hover over the dartboard icon to see your problems and contests created today.

Installation

You can clone this plugin directly into your Omarchy plugins directory:

git clone https://github.com/YOUR_USERNAME/YOUR_REPO_NAME.git ~/.config/omarchy/plugins/ujjawal.competitive

Then, enable it in Omarchy and assign it to a section of your bar:

omarchy plugin enable ujjawal.competitive --yes
omarchy-shell shell enablePlugin ujjawal.competitive '{"section":"right","index":0}'

(Alternatively, you can enable it through the Omarchy Settings UI under the Plugins tab).

Configuration

You can customize the plugin's defaults in your ~/.config/omarchy/shell.json configuration file, or via the Omarchy Settings UI:

{
  "id": "ujjawal.competitive",
  "dataRoot": "/home/youruser/Documents/data",
  "defaultLanguage": "cpp",
  "defaultPlatform": "codeforces"
}
  • dataRoot: Base directory where problems and contests will be created. (Defaults to ~/Documents/data).
  • defaultLanguage: Starter template language. Options: cpp, java, python.
  • defaultPlatform: Platform folder organization. Options: codeforces, leetcode, other.

Requirements

  • Omarchy Shell (Quattro / v4.0+)
  • bash (for directory/template generation)
  • A terminal emulator (alacritty or kitty favored by default)
  • nvim (Neovim)

License

This project is licensed under the MIT License - see the LICENSE file for details.