{"id":17941783,"url":"https://github.com/arch-err/m-ctf","last_synced_at":"2026-02-26T06:49:55.874Z","repository":{"id":259223716,"uuid":"876782350","full_name":"arch-err/m-ctf","owner":"arch-err","description":"A tool to manage CTFs on-the-go, to quickly structure your work and document your solutions","archived":false,"fork":false,"pushed_at":"2025-04-12T08:57:09.000Z","size":91,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-03T14:48:30.981Z","etag":null,"topics":["bash","ctf","ctf-tools"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/arch-err.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-22T14:47:41.000Z","updated_at":"2025-04-12T08:07:44.000Z","dependencies_parsed_at":"2024-10-23T17:08:04.047Z","dependency_job_id":"c3a1021c-6fdf-4ee8-abad-ecc55745dec6","html_url":"https://github.com/arch-err/m-ctf","commit_stats":null,"previous_names":["arch-err/m-ctf"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arch-err/m-ctf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arch-err%2Fm-ctf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arch-err%2Fm-ctf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arch-err%2Fm-ctf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arch-err%2Fm-ctf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arch-err","download_url":"https://codeload.github.com/arch-err/m-ctf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arch-err%2Fm-ctf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29850924,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T22:37:40.667Z","status":"online","status_checked_at":"2026-02-26T02:00:06.774Z","response_time":89,"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":["bash","ctf","ctf-tools"],"created_at":"2024-10-29T02:04:10.444Z","updated_at":"2026-02-26T06:49:55.839Z","avatar_url":"https://github.com/arch-err.png","language":"Shell","readme":"![logo](assets/logo.png)\n\n# Manage-CTFs\n\nA tool to manage CTFs on-the-go, to structure your work and document your solutions quickly while playing a CTF.\n\n\n# Installation\n\n## One-line-install\n*There will be a one-line-install available in the future, but for now you'll have to install the scripts dependencies manually.*\n\n\n## Manually\n\n### GitHub-CLI\nThis script uses githubs cli-tool `gh` to create repositories automatically. You will need to do the following in order to use this script:\n1. Make sure you have the binary `gh` installed on your system\n2. Generate a Personal Access Token on GitHub (**NOTE:** make sure that the token is authorized to create repositories)\n3. Log in using your PAT with the `gh auth login` command\n4. Fork my [ctf-template repo](https://github.com/arch-err/ctf-template) and make sure the repo is accessible under the address `https://github.com/\u003cyour-git-username\u003e/ctf-template`\n\nIf you don't know how to do this you should check out the links below:\n- https://cli.github.com/\n- https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#further-reading\n- https://cli.github.com/manual/gh_auth_login\n- https://github.com/arch-err/ctf-template\n- https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo\n\n\n### Dependencies\n#### Arch-based systems (AUR)\n```bash\nyay -S gomplate-bin yq fzf git github-cli\nor\nparu -S gomplate-bin yq fzf git github-cli\n```\n\n#### Nix-systems (nix-env)\n```bash\nnix-env -iA gomplate yq fzf git gh\n```\n\n#### Debian-based systems (apt)\n```bash\napt install yq fzf git gh\n```\n**NOTICE:** gomplate is not a very well-known tool and may therefore be a bit more difficult to install. Consult gomplates [install guide](https://docs.gomplate.ca/installing/) for more details.\n\n\n### Download the script\nYou can clone this repo or download the script however you want (example commands below) and add the script to your path in any way you want.\n#### Examples\n```bash\n$ git clone https://github.com/arch-err/m-ctf.git\nor\n$ curl -LO https://raw.githubusercontent.com/arch-err/m-ctf/refs/heads/main/code/mctf.sh?token=GHSAT0AAAAAACXAJZVOFKHAOHGVKRJDHHDSZYYBF7Q\n```\n#### Oneliner\n```bash\n$ curl -L https://raw.githubusercontent.com/arch-err/m-ctf/refs/heads/main/code/mctf.sh?token=GHSAT0AAAAAACXAJZVOFKHAOHGVKRJDHHDSZYYBF7Q -o /opt/mctf\n```\n\n\n# Usage\n\n## 1. Initialization\n```bash\n$ mctf init\n```\nThis command will initialize a git repo with metadata, READMEs, challenge-templates, and more.\n\nThis action is fully interactive and needs no more flags/switches or other types of given data before execution.\n\n\n## 2. Solve challenges\n```bash\n$ mctf solve \u003cchallenge\u003e (optional)\nor\n$ mctf unsolve \u003cchallenge\u003e (optional)\n```\nThis command gives you a menu to select a challenge, mark it as finished in the README, and then increment the counter that keeps track of solved challenges. Use `unsolve` to do the opposite.\n\n\n## 3. Status\nTo show the status of the current CTF you can run the following command:\n```bash\n$ mctf status\n```\n*The image at the top of this README is an example of what the output of a `status` command can look like*\n\n\n## 4. Add Challenges\nTo add new challenges to an already initialized CTF you can use the following command:\n```bash\n$ mctf add -b/--bulk (optional)\n```\n\n\n## 5. Sync with git\nTo sync your progress with git you can of course use git commands in any way you want, however, if just want so quickly push everything to git you can use the following command:\n```bash\n$ mctf sync\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farch-err%2Fm-ctf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farch-err%2Fm-ctf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farch-err%2Fm-ctf/lists"}