[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-83854":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":13,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":14,"stars7d":16,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":17,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":32,"readmeContent":33,"aiSummary":10,"trendingCount":15,"starSnapshotCount":15,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},83854,"cpos","Soham109\u002Fcpos","Soham109","CPOS — capture Codeforces & CSES problems, run tests, and submit from VS Code or the terminal. Extensions on the VS Code Marketplace and Chrome Web Store.","https:\u002F\u002Fcpos.sohamaggarwal.com",null,"Rust",54,6,1,0,3,4,46.34,"MIT License",false,"main",true,[24,25,26,27,28,29,30,31],"cli","codeforces","competitive-programming","cses","ratatui","rust","terminal","tui","2026-06-12 04:01:42","\u003Ch1 align=\"center\">CPOS\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\u003Cb>Competitive Programming Operating System\u003C\u002Fb>\u003C\u002Fp>\n\n\u003Cp align=\"center\">\nOpen a problem in your browser. CPOS creates the file, loads the samples, and lets you run and submit — without copy-pasting anything.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fcpos.sohamaggarwal.com\">\u003Cimg alt=\"Website\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fwebsite-cpos-8b5cf6\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002F5HTatBfpK5A\">\u003Cimg alt=\"Demo\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdemo-YouTube-red?logo=youtube&logoColor=white\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=sohamaggarwal.cpos-vscode\">\u003Cimg alt=\"VS Code\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVS%20Code-Extension-007ACC?logo=visualstudiocode&logoColor=white\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Fgjnbapmjonegeeamdeahcoojgokeogmm\">\u003Cimg alt=\"Chrome\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FChrome-Extension-4285F4?logo=googlechrome&logoColor=white\">\u003C\u002Fa>\n  \u003Ca href=\"extensions\u002Ffirefox\">\u003Cimg alt=\"Firefox source install\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFirefox-source_install-FF7139?logo=firefoxbrowser&logoColor=white\">\u003C\u002Fa>\n  \u003Cimg alt=\"license\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg\">\n  \u003Cimg alt=\"rust\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuilt%20with-Rust-orange.svg\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsponsors\u002FSoham109\">\u003Cimg alt=\"Sponsor\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSponsor-%E2%9D%A4-db61a2?logo=githubsponsors&logoColor=white\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n## Demo\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002F5HTatBfpK5A\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F▶_Full_walkthrough-FF0000?style=for-the-badge&logo=youtube&logoColor=white\" alt=\"Watch the CPOS full demo on YouTube\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002F5HTatBfpK5A\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.youtube.com\u002Fvi\u002F5HTatBfpK5A\u002Fmaxresdefault.jpg\" alt=\"Click to play the CPOS demo on YouTube\" width=\"820\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\u003Csub>Capture a problem · auto-create your file · run samples · submit from VS Code\u003C\u002Fsub>\u003C\u002Fp>\n\n---\n\n## How it works\n\nCPOS has three parts — a **browser companion**, a **terminal app**, and a **VS Code extension**. Install all three; they share the same files and stay in sync over localhost.\n\n**The flow:**\n\n1. **Pick your folder** — open any folder in VS Code, or let the terminal app use `~\u002Fcpos`.\n2. **Open a problem in your browser** — any Codeforces or CSES problem page.\n3. **CPOS captures it** — the browser companion reads samples and sends them to CPOS on your machine.\n4. **A file appears** — e.g. `1971D.cpp`, with sample tests attached.\n5. **Write your solution** — in VS Code.\n6. **Run samples** — from the panel or with `T` in the terminal.\n7. **Submit** — CPOS autofills the judge form in your browser (log in to Codeforces\u002FCSES first).\n\nNo copying samples. No manually creating files.\n\n---\n\n## VS Code\n\nWrite code in the editor. The CPOS panel runs samples and submits.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fimg\u002Fvscode-panel-ui.png\" alt=\"CPOS VS Code panel with test cases, Run All, Submit, and a Codeforces solution open\" width=\"900\">\n\u003C\u002Fp>\n\nInstall from the [Marketplace](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=sohamaggarwal.cpos-vscode). Open your folder, capture a problem from the browser, then use the **CPOS panel**:\n\n- **Tests \u002F Statement tabs** — switch between samples and the captured problem statement, rendered natively with MathJax\n- **Run All** — compile and test every sample\n- **Submit** — autofill the judge submit page in your logged-in browser\n- **Problem** — open the statement again\n- **Search** — Google search for editorials and solutions for the linked problem\n- **GitHub** — open the CPOS repository\n- **Test cases** — edit samples; multi-case inputs show linked input\u002Foutput blocks when captured from Codeforces\n- **Theme** — five panel themes (see [Settings](#settings))\n\n---\n\n## Terminal\n\nBrowse the catalog, sync rating, track contests, and get recommendations — without opening Codeforces in a tab.\n\n```bash\nbrew tap Soham109\u002Fcpos https:\u002F\u002Fgithub.com\u002FSoham109\u002Fcpos\nbrew install cpos\ncpos\n```\n\nWindows with Scoop:\n\n```powershell\nscoop bucket add cpos https:\u002F\u002Fgithub.com\u002FSoham109\u002Fcpos\nscoop install cpos\ncpos\n```\n\n| Key | What it does |\n| --- | --- |\n| `o` \u002F `Enter` | Open a problem — creates the file in your project folder when VS Code has synced a path, otherwise in `~\u002Fcpos` or your configured workspace |\n| `T` | Run against samples |\n| `s` | Submit |\n| `b` | Open problem in browser |\n| `U` | Open by URL |\n| `\u002F` · `f` · `p` | Search · filter by rating · switch platform |\n| `Tab` | Switch between Dashboard, Problems, Contests, Analytics, Recommend |\n| `r` | Sync with Codeforces and CSES |\n\nKeep the terminal running while you code in VS Code — same captures, same submits, same progress.\n\n### First run\n\nThe first time you launch `cpos` (before a Codeforces handle is set) a quick 4-step wizard runs:\n\n1. **Handle** — type your Codeforces handle.\n2. **Language** — pick your default language (`←\u002F→` to browse).\n3. **Template** — choose how to supply your solution template:\n   - **Paste** (default): copy your template, then press **`v`** (or `Ctrl+V` \u002F `⌘V`) to paste the whole thing — multi-line formatting is preserved.\n   - **Upload**: press **`Tab`** to switch modes, type or paste a file path, then **Enter** to load it. A live preview shows the loaded template.\n   - Leave it blank to use the built-in template.\n4. **CSES** *(optional)* — press `o` to open the CSES login, then paste your `PHPSESSID` cookie to sync solved problems. You can skip this and set it later in Config.\n\nRe-run the wizard any time by clearing your handle in `config.toml` (or deleting the config file — see [Config location](TROUBLESHOOTING.md#config-location)).\n\n---\n\n## Your folder, your files\n\nYou choose where solution files live:\n\n- **VS Code:** open a project folder before you capture. CPOS creates files such as `1982C.cpp` in that folder.\n- **Terminal:** defaults to `~\u002Fcpos\u002F`, or uses the same project folder as VS Code when captures have been synced.\n\nConfigure the VS Code save location under **Settings → Extensions → CPOS** (`cpos.saveLocation`, `cpos.fixedDir`). Configure the terminal workspace in `config.toml` (`workspace_dir`).\n\n---\n\n## Install\n\n| What | Where |\n| --- | --- |\n| Browser companion | [Chrome Web Store](https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Fgjnbapmjonegeeamdeahcoojgokeogmm) (Chrome, Edge, Brave) |\n| Browser companion | [Firefox source install](extensions\u002Ffirefox) (temporary\u002Fself-installed for now; AMO publishing later) |\n| VS Code extension | [VS Code Marketplace](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=sohamaggarwal.cpos-vscode) |\n| Terminal app | macOS\u002FLinux: `brew tap Soham109\u002Fcpos https:\u002F\u002Fgithub.com\u002FSoham109\u002Fcpos` then `brew install cpos` |\n| Terminal app | Windows: `scoop bucket add cpos https:\u002F\u002Fgithub.com\u002FSoham109\u002Fcpos` then `scoop install cpos` |\n\nInstall all three for the full experience. The browser companion is required for capture and submit.\n\nThe package-manager installs use prebuilt binaries from GitHub Releases, so users do not need Rust, Cargo, Visual Studio Build Tools, or a linker. Developers can still build from source with:\n\n```bash\ncargo install --git https:\u002F\u002Fgithub.com\u002FSoham109\u002Fcpos\n```\n\nSee [INSTALL.md](INSTALL.md) for release assets, manual downloads, and publishing notes.\n\n## Updating\n\nWhen the terminal app starts, CPOS does a quick best-effort update check for the\nterminal app. If the terminal app is outdated, CPOS asks before running an\nupdate; it never updates silently. If the check is slow or offline, CPOS opens\nnormally.\n\nYou can also update manually:\n\n```bash\ncpos update\n```\n\nFor Homebrew installs, CPOS delegates to Homebrew. For Scoop installs, CPOS delegates to Scoop. Your config, cache, templates, and problem data are kept.\nSet `CPOS_NO_UPDATE_CHECK=1` to skip startup checks.\n\n**VS Code extension** — updates from the Marketplace automatically (or **Extensions → CPOS → Update**).\n\n**Browser companion** — Chrome\u002FEdge\u002FBrave update automatically from the Chrome Web Store. Firefox source installs do not auto-update yet; pull the latest repo changes, reload `extensions\u002Ffirefox\u002Fmanifest.json`, or rebuild\u002Fsign a new XPI.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fproblems.png\" alt=\"Problems\" width=\"410\">\n  \u003Cimg src=\"docs\u002Fanalytics.png\" alt=\"Analytics\" width=\"410\">\n  \u003Cimg src=\"docs\u002Fcontests.png\" alt=\"Contests\" width=\"410\">\n  \u003Cimg src=\"docs\u002Frecommend.png\" alt=\"Recommendations\" width=\"410\">\n\u003C\u002Fp>\n\n---\n\n## Features\n\n- **Auto file creation** — open a problem, get a ready-to-edit solution file in your folder\n- **Sample capture** — public tests pulled from the problem page, with multi-case grouping on Codeforces when available\n- **Run & submit** — from the VS Code panel or terminal keys; submit autofills your browser\n- **Multi-language templates** — start new solutions in your configured language\n- **Progress & analytics** — rating history, topic breakdown, activity heatmap\n- **Recommendations** — personalized unsolved problems aimed at your weak topics (see below)\n- **Contests** — upcoming and running Codeforces contests with countdowns\n- **Private** — everything stays on your machine (`127.0.0.1`, no external servers)\n\n---\n\n## Recommendations\n\nAfter you sync (`r` in the terminal), CPOS builds a focused list of unsolved problems to practice next. Find them on the **Recommend** tab or the **Recommended Next** panel on the Dashboard.\n\n### How problems are picked\n\nCPOS only considers **unsolved** problems with a Codeforces rating in a band around your level (roughly −250 to +350 from your current rating, targeting about +100 above you).\n\nEach candidate gets a score from:\n\n| Signal | What it means |\n| --- | --- |\n| **Weak topics** | Tags where your solve rate is low get the most weight — a topic you fail 100% of the time counts more than one you're half-comfortable with |\n| **Multiple weak tags** | Problems that combine several weak areas get a small bonus |\n| **Unfinished attempts** | Problems you tried but didn't solve are boosted so you can finish what you started |\n| **Rating fit** | Problems near your target practice rating score higher |\n| **Popularity** | Well-known problems (many solves on Codeforces) are preferred — they're usually better written |\n\nThe top scorers are then **diversified**: CPOS caps how many problems share the same primary tag or exact rating so the list isn't fifteen identical DP problems.\n\n### Cold start (no solves yet)\n\nIf you haven't accepted anything yet, CPOS can't infer weak topics. It falls back to **popular problems around 1200**, spread across tags and ratings, until your submission history fills in.\n\nPress **`r`** after solving more problems to refresh recommendations.\n\n---\n\n## Settings\n\n**VS Code** — `Settings → Extensions → CPOS`:\n\n| Setting | Default | What it does |\n| --- | --- | --- |\n| `cpos.saveLocation` | `workspaceFolder` | Save files in your open folder |\n| `cpos.fixedDir` | `~\u002Fcpos` | Folder when save location is `fixed` |\n| `cpos.defaultLanguage` | `cpp` | Language for new files |\n| `cpos.runTimeoutMs` | `5000` | Per-test timeout |\n\n**Panel themes** — use the theme control in the CPOS panel header. Your choice is remembered.\n\n| Theme | Look |\n| --- | --- |\n| `CPOS` | Signature purple — the default |\n| `Midnight` | Calm slate-blue |\n| `Amber` | Warm terminal \u002F sepia |\n| `Paper` | High-contrast grayscale, minimal color |\n| `Native` | Inherits your active VS Code color theme — Run All matches VS Code button styling |\n\n**Terminal app** — `~\u002F.config\u002Fcpos\u002Fconfig.toml` (Linux), `~\u002FLibrary\u002FApplication Support\u002Fcpos\u002Fconfig.toml` (macOS), or `%APPDATA%\\cpos\\config.toml` (Windows):\n\n```toml\ndefault_language = \"cpp\"\ntheme = \"purple\"   # purple | cyan | green | amber | mono | plain | light\neditor = \"code {file}\"\n\n[handles]\ncodeforces = \"your_handle\"\n```\n\n> `plain` is a neutral grayscale theme for a low-color terminal interface; `mono` is the single-accent minimal one; `light` is a bright canvas for light terminal \u002F VS Code light-theme users.\n\n> **macOS C++:** run `brew install gcc` if you need `bits\u002Fstdc++.h` — CPOS auto-detects Homebrew's g++.\n\nHaving issues? See **[TROUBLESHOOTING.md](TROUBLESHOOTING.md)** (TUI install, Run All errors, submit, source builds, and more).\n\n---\n\n## Roadmap\n\n- AtCoder & CodeChef support\n- Contest mode with per-problem timers\n- Read submission verdicts back into CPOS\n\n---\n\n## Sponsor\n\nCPOS is built and maintained by one person, in the open, for the competitive programming community. It's free, MIT-licensed, and runs entirely on your own machine — no accounts, no servers, no tracking, no paywalled features.\n\nIf CPOS saves you time on every problem, sponsoring keeps it that way and funds what's next:\n\n- **More judges** — AtCoder and CodeChef support\n- **Contest mode** — per-problem timers and a focused contest workflow\n- **Verdicts in CPOS** — read submission results back without leaving the editor\n- **Maintenance** — keeping capture and submit working as Codeforces and CSES change\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsponsors\u002FSoham109\">\u003Cimg alt=\"Sponsor CPOS on GitHub\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSponsor_CPOS-%E2%9D%A4-db61a2?style=for-the-badge&logo=githubsponsors&logoColor=white\">\u003C\u002Fa>\n\u003C\u002Fp>\n\nNot in a position to sponsor? Starring the repo, filing a clear bug report, or sending a PR helps just as much — see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n---\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n\n---\n\n## Open source\n\nCPOS is fully open source. You're free to use it, fork it, and build on it.\n\nContributions are welcome and appreciated — whether that's a bug report, a doc fix, a new platform, or a polish pass on the TUI. Start with **[CONTRIBUTING.md](CONTRIBUTING.md)** for dev setup and PR guidelines.\n\n| Doc | Purpose |\n| --- | --- |\n| [INSTALL.md](INSTALL.md) | TUI binary install, update, and release publishing |\n| [TROUBLESHOOTING.md](TROUBLESHOOTING.md) | Common fixes (TUI install, Run All, submit, source builds) |\n| [CONTRIBUTING.md](CONTRIBUTING.md) | How to contribute |\n| [ARCHITECTURE.md](ARCHITECTURE.md) | How the components connect |\n| [CHANGELOG.md](CHANGELOG.md) | Version history |\n| [SECURITY.md](SECURITY.md) | Report vulnerabilities |\n\nQuestions or ideas: [GitHub Issues](https:\u002F\u002Fgithub.com\u002FSoham109\u002Fcpos\u002Fissues).\n",2,"2026-06-11 04:11:41","CREATED_QUERY"]