{"id":29049001,"url":"https://github.com/l-lawliet07/spyc","last_synced_at":"2025-07-26T22:39:49.043Z","repository":{"id":57368127,"uuid":"230265615","full_name":"L-lawliet07/spyC","owner":"L-lawliet07","description":"🖥️ cli tool for competitive programmers...","archived":false,"fork":false,"pushed_at":"2020-02-23T08:45:58.000Z","size":12117,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-26T19:05:48.675Z","etag":null,"topics":["autoreload","cli","competitive-programmers","cpp","gcc","nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/L-lawliet07.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-26T13:05:35.000Z","updated_at":"2021-01-14T18:32:02.000Z","dependencies_parsed_at":"2022-08-23T20:10:49.740Z","dependency_job_id":null,"html_url":"https://github.com/L-lawliet07/spyC","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/L-lawliet07/spyC","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/L-lawliet07%2FspyC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/L-lawliet07%2FspyC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/L-lawliet07%2FspyC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/L-lawliet07%2FspyC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/L-lawliet07","download_url":"https://codeload.github.com/L-lawliet07/spyC/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/L-lawliet07%2FspyC/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267255436,"owners_count":24060141,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autoreload","cli","competitive-programmers","cpp","gcc","nodejs"],"created_at":"2025-06-26T19:01:24.351Z","updated_at":"2025-07-26T22:39:49.038Z","avatar_url":"https://github.com/L-lawliet07.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n\u003cimg src=\"./assets/spyc.jpg\" /\u003e\n\n\n\n# So what is spyc ? \n\n\u003cstrong style=\"color:red\"\u003e\u003cem\u003e`spyc`\u003c/em\u003e\u003c/strong\u003e   is a `CLI` tool that monitors your `CPP` code and automatically compiles and executes the code whenever there is a change in the file.\n\n\u003cstrong style=\"color:red\"\u003e\u003cem\u003e`spyc`\u003c/em\u003e\u003c/strong\u003e is designed mainly for competitive programmers so that they can efficiently debug and execute their code for multiple test cases without compiling again and again.\n\n\u003cstrong style=\"color:red\"\u003e\u003cem\u003e`spyc`\u003c/em\u003e\u003c/strong\u003e also supports some of the common GCC flags used in competitive programming.\n\n\n\n# Installation\n\n\n\n### Using [npm](https://www.npmjs.com/~lawliet07) \n\n##### `Install` globally \n\n```bash\nnpm install -g spyc\n```\n\n\n\n##### `Install` as a dev dependency\n\n```bash\nnpm install --save-dev spyc\n```\n\n\n\n# Usage\n\nTo run \u003cstrong style=\"color:red\"\u003e\u003cem\u003e`spyc`\u003c/em\u003e\u003c/strong\u003e write.\n\n```bash\nspyc \u003cyourfile.cpp\u003e [,options]\n```\n\n\n\n### Help\n\n\nFor CLI options,  use `-h` or `--help`.\n\n```bash\nspyc -h\n```\n\n\n\n\u003cimg src=\"./assets/help.gif\"/\u003e\n\n\n\n\n\n## Runtime input\n\n\u003cstrong style=\"color:red\"\u003e\u003cem\u003e`spyc`\u003c/em\u003e\u003c/strong\u003e allows user to provide or change the input file at runtime without stopping the currently running \u003cstrong style=\"color:red\"\u003e\u003cem\u003e`spyc`\u003c/em\u003e\u003c/strong\u003e program, this help programmers to check their code on multiple test cases without much effort.\n\nFor example click \u003ca href='#r-input'\u003ehere\u003c/a\u003e.\n\n\n\n## Cat file\n\n\u003cstrong style=\"color:red\"\u003e\u003cem\u003e`spyc`\u003c/em\u003e\u003c/strong\u003e also allows users to see their `cpp` file or input file at runtime with the help of `cat` option.\n\nFor example click \u003ca href='#cat'\u003ehere\u003c/a\u003e.\n\n\n\n## Check Stats\n\nIn \u003cstrong style=\"color:red\"\u003e\u003cem\u003e`spyc`\u003c/em\u003e\u003c/strong\u003e user can also see the past stats using `stats` options for performance comparison. This helps the user to check and compare the efficiency of their code on different test cases.\n\nFor example click \u003ca href='#stats'\u003ehere\u003c/a\u003e.\n\n\n\n## Supports some common gcc flags\n\n\u003cstrong style=\"color:red\"\u003e\u003cem\u003e`spyc`\u003c/em\u003e\u003c/strong\u003e also support some of the common gcc flags like,\n\n\n\n| Flags     |                                                         |\n| --------- | ------------------------------------------------------- |\n| std       | std - Specify the C++ version or ISO standard version.  |\n| Wall      | Turns on lots of compiler warning flags.                |\n| Werror    | Turn any warning into a compilation error.              |\n| Wextra    | Enables extra flags not enabled by -Wall.               |\n| Wshadow   | Enable warning for Variable Shadowing.                  |\n| O0        | No optmization.                                         |\n| O3        | Higher level of optmization.                            |\n| fsanitize | Sanitizer for runtime checks. (eg. --fsanitize=address) |\n\n\n\n## My personal flag options\n\nYou guys can also use my preferred GCC flag options for compiling the code using `quick`  flag.\n\n```bash\nspyc ./sample.cpp --quick\n```\n\n`quick` option will enable the following gcc flag combination.\n\n``` bash\ng++ -DLOCAL -std=c++17 -Wshadow -Wall -o \u003coutput\u003e \u003cyourfile.cpp\u003e -fsanitize=address \n-fsanitize=undefined -D_GLIBCXX_DEBUG -g\n```\n\n\n\n## Examples\n\n#### Demo to run simple cpp file.\n\n**Run command.**\n\n```bash\nspyc ./sample.cpp\n```\n\n\n\n\u003cimg src=\"./assets/example.gif\" /\u003e\n\n​\t\t\n\n#### Demo to run cpp file with input.\n\n**Run command.**\n\n```bash\nspyc ./sample.cpp --input=\u003cinputfile\u003e\n```\n\nor\n\n``` bash\nspyc ./sample.cpp -i=\u003cinputfile\u003e\n```\n\n\n\n\u003cimg src=\"./assets/example-input.gif\" /\u003e\n\n\n\n#### \u003cspan id='r-input'\u003eDemo to change the input file without restarting the app. \u003c/span\u003e\n\nIn \u003cstrong style=\"color:red\"\u003e\u003cem\u003e`spyc`\u003c/em\u003e\u003c/strong\u003e, we can also change or provide input at runtime without restarting the tool. \nThis will help users to check their code on different test cases without wasting time on compiling and executing the code manually.\n\n**Run command.**\n\n```  bash\n--input=./in\n```\n\nor\n\n```bash\n-i=./in\n```\n\n\n\n\u003cimg src=\"./assets/runtime-input.gif\" /\u003e\n\n\n\n#### \u003cspan id='cat'\u003eDemo to `cat` input or code at runtime.\u003c/span\u003e\n\n\u003cstrong style=\"color:red\"\u003e\u003cem\u003e`spyc`\u003c/em\u003e\u003c/strong\u003e can also display input file or cpp code at runtime without pausing or stopping the tool.\n\nThis helps competitive programmers to see and debug their code or check the input file within the \u003cstrong style=\"color:red\"\u003e\u003cem\u003e`spyc`\u003c/em\u003e\u003c/strong\u003e tool.\n\n``` bash\n--cat=\u003cfilename\u003e\n```\n\n\u003cimg src=\"./assets/cat.gif\" /\u003e\n\n\n\n#### \u003cspan id='stats'\u003eDemo to check the stats.\u003c/span\u003e\n\nIn \u003cstrong style=\"color:red\"\u003e\u003cem\u003e`spyc`\u003c/em\u003e\u003c/strong\u003e, users can also see stats from past executions. This will help the user to optimize their code by comparing the execution time of their code.\n\n```bash\nstats\n```\n\n\u003cimg src=\"./assets/stats.gif\" /\u003e\n\n---\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fl-lawliet07%2Fspyc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fl-lawliet07%2Fspyc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fl-lawliet07%2Fspyc/lists"}