{"id":36546242,"url":"https://github.com/0xsuk/kop","last_synced_at":"2026-01-12T06:03:59.004Z","repository":{"id":57693512,"uuid":"485216306","full_name":"0xsuk/kop","owner":"0xsuk","description":"Shell command manager: Remember, Search, Copy, Execute long command","archived":false,"fork":false,"pushed_at":"2022-05-16T08:08:34.000Z","size":3659,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-11T14:28:05.885Z","etag":null,"topics":["cli","command-line","ctf","ctf-tools"],"latest_commit_sha":null,"homepage":"","language":"Go","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/0xsuk.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":"2022-04-25T03:57:15.000Z","updated_at":"2024-03-10T04:35:12.000Z","dependencies_parsed_at":"2022-09-26T21:01:21.393Z","dependency_job_id":null,"html_url":"https://github.com/0xsuk/kop","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/0xsuk/kop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xsuk%2Fkop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xsuk%2Fkop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xsuk%2Fkop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xsuk%2Fkop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xsuk","download_url":"https://codeload.github.com/0xsuk/kop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xsuk%2Fkop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28336083,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"online","status_checked_at":"2026-01-12T02:00:08.677Z","response_time":98,"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":["cli","command-line","ctf","ctf-tools"],"created_at":"2026-01-12T06:02:09.263Z","updated_at":"2026-01-12T06:03:58.998Z","avatar_url":"https://github.com/0xsuk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kop\r\nkop is a cli tool that I personally use for daily CTF(Capture the flag). \r\n\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\r\n**Concept: Do not type same commands**\r\n\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\r\nIf you are CTF player, you are probably typing same shell commands everyday, like `nmap \u003cIP address\u003e`, or `gobuster dir -u http://\u003cIP address\u003e -w directory-list-2.3-medium.txt`... and so on.  \r\nYou don't want to type these long command for every machine with different IP addresses, right?  \r\nThe problem is that these commands slightly change every time because of the \"variable\" factors like IP address, so just a simple shell alias does not lessen your job.  \r\n\r\nkop was made to address this problem. \r\n\r\n\u003cbr/\u003e\u003cbr/\u003e\r\nHere's a quick example usage.  \r\n![image](https://github.com/0xsuk/kop/blob/main/.github/example1.png)    \r\n  \r\nbrief explanation:  \r\n- `kop ac`: `ac` stands for \"add command\".   \r\nAdding nmap command with IP variable ${IP}.  ${} is a variable notation.    \r\n- `kop av`: `av` stands for \"add variable\".    \r\nSetting IP variable to 10.11.12.13.\r\n- `kop sc`: `sc` stands for \"search command\".   \r\nSearching commands that contains string \"nmap\", and kop shows match and its index which turns to be 0 (since this is the first command added)\r\n- `kop cc`: `cc` stands for \"copy command\".   \r\nCopying a command at index 0, to my **system clipboard**.  \r\n\r\nThe nmap command was copied to my clipboard, **replacing IP variable with its value.**  \r\nYou can paste the command, without typing loooong shell command again.\r\n\r\nCommands and variables added by `ac` and `av` remain in json files, so you don't have to type them again.  \r\n\r\n# Install\r\nYou must have `xclip` for Linux, `pbcopy` for OSX to make full use of kop.  \r\n```\r\ngo install github.com/0xsuk/kop@latest\r\n```\r\n\r\nOr install from [releases](https://github.com/0xsuk/kop/releases)\r\n\r\n# Usage\r\n\r\n```\r\nAvailable Commands:\r\n         help [\u003ccommand\u003e]        help about any command\r\n\r\n   [Variable related]\r\n         av \u003cvariable\u003e \u003cvalue\u003e   add \u003cvariable\u003e \u003cvalue\u003e pair\r\n         cv \u003cvariable\u003e           copy \u003cvariable\u003e's \u003cvalue\u003e to system clipboard\r\n         rv \u003cvariable\u003e...        remove variables. If no \u003cvariable\u003e provided, remove all variables\r\n         sv [\u003csearch_query\u003e]     search variable that contains \u003csearch_query\u003e. If no query provided, print all variables\r\n\r\n   [Command related]\r\n         ac [\u003ckey\u003e]              add command with specified key. Key is optional\r\n         cc \u003ckey|index\u003e          copy a command replacing \u003cvariable\u003e with its \u003cvalue\u003e\r\n         ec \u003ckey|index\u003e          execute a command replacing \u003cvariable\u003e with its \u003cvalue\u003e\r\n         rc \u003ckey|index\u003e...       remove commands specified by keys or ids\r\n         sc [\u003csearch_query\u003e]     search commands. If no query, get all commands\r\n\r\nAvailable Flags:\r\n         kop [\u003ccommand\u003e] -h     help about any command\r\n```\r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003eDetail\u003c/summary\u003e\r\n  \u003cli\u003e \u0026lt;key\u0026gt;: Key is a string id that can be used as an argument to specify a command.  \u003c/li\u003e\r\n \u003cli\u003e \u0026lt;key|index\u0026gt;: Key or Index. Index is an index of a command. All commands are assigned an index when added with `kop ac`, no matter \u0026lt;key\u0026gt; is provided or not. Check indexes of commands by `kop sc`.  \r\n  \u003c/li\u003e\r\n\u003c/details\u003e\r\n\r\nCTF Life is so much better with kop!  \r\n![image](https://github.com/0xsuk/kop/blob/main/.github/example3.png)  \r\n\r\n# TODO\r\n- [x] Adding command with string id\r\n- [x] Executing command with kop\r\n- [ ] Multiple sessions \r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xsuk%2Fkop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xsuk%2Fkop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xsuk%2Fkop/lists"}