{"id":24206199,"url":"https://github.com/shimman-dev/piscator","last_synced_at":"2025-09-22T04:33:20.905Z","repository":{"id":167091901,"uuid":"635573185","full_name":"shimman-dev/piscator","owner":"shimman-dev","description":"fishing for repos 🎣","archived":false,"fork":false,"pushed_at":"2024-11-17T22:36:15.000Z","size":3581,"stargazers_count":6,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T15:06:11.280Z","etag":null,"topics":["command-line-tool","github","go"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shimman-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-05-03T01:41:50.000Z","updated_at":"2024-11-17T22:36:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"cb751bc6-51d4-4e90-8d66-95ccab08abf2","html_url":"https://github.com/shimman-dev/piscator","commit_stats":null,"previous_names":["shimman-dev/piscator"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/shimman-dev/piscator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shimman-dev%2Fpiscator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shimman-dev%2Fpiscator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shimman-dev%2Fpiscator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shimman-dev%2Fpiscator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shimman-dev","download_url":"https://codeload.github.com/shimman-dev/piscator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shimman-dev%2Fpiscator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276347148,"owners_count":25626597,"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-09-22T02:00:08.972Z","response_time":79,"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":["command-line-tool","github","go"],"created_at":"2025-01-14T00:19:29.600Z","updated_at":"2025-09-22T04:33:20.358Z","avatar_url":"https://github.com/shimman-dev.png","language":"Go","readme":"# piscator - fishing made easy\n\n![intro text and piscator demo](./docs/demo.gif)\n\nAhoy, fellow sailor! Set your sights on the `piscator` CLT, a trusty companion\nfor your coding odysseys. With `piscator` by your side, you'll navigate the vast\nseas of GitHub with ease, harnessing the power of the command-line interface to\nexplore, capture, and conquer the realm of repositories.\n\nAs a seasoned sailor, you'll command the `piscator` vessel to cast its net\ninto the GitHub sea, deftly capturing the URLs of repositories from users,\norganizations, or even yourself. With each cast, `piscator` will bring you a\nbountiful haul of valuable code treasures, presenting them in a convenient\nformat for further exploration. But `piscator`'s abilities don't end there! With\nthe reel command, you'll transform those captured repositories into tangible\nassets by creating dedicated directories and git repositories for each catch,\nready to be harnessed for your coding voyages.\n\nWith its intuitive commands, `piscator` empowers you to hoist the sails of\nproductivity and embark on coding adventures like never before. Whether you're\nseeking to explore, collect, or reel in repositories, `piscator` will be your\nloyal first mate, guiding you through the GitHub waters with precision and\nefficiency. Embrace the spirit of the sailor, unleash the power of\n`piscator`, and embark on a coding voyage that will leave a lasting mark on the\nopen seas of code.\n\n---\n\nTable of contents:\n\n- [Rough Seas](#seas)\n  - [Installation](#installation)\n- [Usage](#usage)\n- [Documentation](#documentation)\n- [Todos](#todos)\n\n---\n\n## [Rough Seas](#seas)\n\nAlthough the current [releases](https://github.com/shimman-dev/piscator/releases)\npage offers binaries for Linux, MacOS, and Windows, rest assured that I have\nheard your concerns and I am committed to providing ye with the convenience and\nease of installation ye deserve. I solemnly swear to make future\n[releases](https://github.com/shimman-dev/piscator/releases) available through\nall major package managers, for I believe in the principle that good things\ncome to sailors who trust their captain.\n\nSo, my dear crew, hold tight to the mast and keep your hearts filled with hope.\nIn the near future, ye shall witness the expansion of piscator's reach, as it\nsets sail on the vast seas of package managers, bringing ye the treasures of\neffortless installation and seamless updates. Trust in me, your captain, for I\nam dedicated to improving the voyage of `piscator` and ensuring that every sailor\ncan embark on their coding adventures with the wind at their backs.\n\nTogether, we shall overcome this minor setback and forge ahead toward a\nbrighter future for `piscator`. Ye are the lifeblood of this crew, and I am\ngrateful for your unwavering support. May our sails be filled with the winds of\nprogress, as we navigate the ever-changing tides of technology. Onward, my\nbrave crew, for the best is yet to come!\n\n### [Installation](#installation)\n\nAhoy, mateys! I bring tidings of great joy for all ye sailors out there. We've\nfinally hoisted the Jolly Roger and released our very own [Homebrew tap](https://github.com/shimman-dev/homebrew-taps)\nand [Scoop bucket](https://github.com/shimman-dev/scoop-bucket) for the mighty `piscator`! Avast, ye\nscurvy dogs, and follow these simple steps to get the `piscator` CLT installed\non yer ship:\n\n```shell\n# homebrew\nbrew tap shimman-dev/taps\nbrew install piscator\n\n# scoop\nscoop bucket add shimman-dev https://github.com/shimman-dev/scoop-bucket.git\nscoop install piscator\n```\n\nArr, ye be all set now! The piscator CLT be installed and ready to sail the\npackage seas on yer command. But hold fast, me hearties, for this be just the\nbeginning. We'll be setting sail to conquer other package managers in the days\nto come. So, keep a weather eye on the horizon for more exciting releases!\n\nFair winds and smooth seas to ye, as ye embark on yer piscator adventures with\nHomebrew at yer side!\n\n### [Usage](#usage)\n\nAvast, matey! Let me tell ye about the heart of the `piscator` vessel: the\nmighty commands `cast` and `reel`.\n\nWith a swift cast, the command will fetch ye a bounty of JSON, ripe for the\ntakin'. This JSON treasure can be piped into other commands like `fzf` or `jq`\nto uncover its secrets. And if ye be desirin' a written record of yer findings,\nsimply wave the `repos.json` flag (`-f` or `--makeFile`), and a file named\n`repos.json` shall be fashioned right where ye stand (directory where `piscator`\nwas ran).\n\nBut behold, the power of the mighty reel! This command harnesses the fruits of\n`cast` to weave a directory in the likeness of the chosen user or organization.\nThen, with the skill of an expert angler, it reels in each specified repository,\nbe it from the depths of the sea or the local waters. Should a repository\nalready rest in the directory, fear not! `reel` will deftly pull the latest\ncatch, ensuring ye always have the freshest head.\n\nSo, me hearty, set sail with `piscator` and let the commands `cast` and `reel`\nguide ye on yer voyage to GitHub riches!\n\n## [Documentation](#documentation)\n\n### [piscator](#piscator)\n\nRunning `piscator help` will show the commands of `piscator`. You can also run\n`piscator cast -h` and `piscator reel -h` to see the flags each respective\ncommand takes.\n\n![running piscator help](./docs/piscator-help.gif)\n\n### [cast](#cast)\n\nRunning `piscator cast username` will output a JSON of public repositories\nfor a user:\n\n![running piscator cast shieldbattery](./docs/cast-user.gif)\n\n\u003cdetails\u003e\n\u003csummary\u003eexample output of `piscator cast shieldbattery`\u003c/summary\u003e\n\n```text\n[\n{\n\t\"name\": \"broodmap\",\n\t\"html_url\": \"https://github.com/ShieldBattery/broodmap\",\n\t\"language\": \"Rust\",\n\t\"fork\": false,\n\t\"private\": false,\n\t\"size\": 4695\n},\n{\n\t\"name\": \"rally-point\",\n\t\"html_url\": \"https://github.com/ShieldBattery/rally-point\",\n\t\"language\": \"JavaScript\",\n\t\"fork\": false,\n\t\"private\": false,\n\t\"size\": 966\n},\n{\n\t\"name\": \"ShieldBattery\",\n\t\"html_url\": \"https://github.com/ShieldBattery/ShieldBattery\",\n\t\"language\": \"TypeScript\",\n\t\"fork\": false,\n\t\"private\": false,\n\t\"size\": 244880\n},\n{\n\t\"name\": \"stimpack\",\n\t\"html_url\": \"https://github.com/ShieldBattery/stimpack\",\n\t\"language\": \"Rust\",\n\t\"fork\": false,\n\t\"private\": false,\n\t\"size\": 57\n},\n{\n\t\"name\": \"trrr\",\n\t\"html_url\": \"https://github.com/ShieldBattery/trrr\",\n\t\"language\": \"Rust\",\n\t\"fork\": false,\n\t\"private\": false,\n\t\"size\": 18\n}\n]\n```\n\n\u003c/details\u003e\n\n---\n\nRunning `piscator cast your_username -s` will output a JSON of your repositories\n(public and private; requires a personal access token).\n\n![running piscator cast azemetre -s](./docs/cast-self.gif)\n\nThe `-s` flag refers to your self, i.e. your GitHub username. The `-t` flag\ntakes a [PAT (how to create a PAT)](https://docs.github.com/en/enterprise-server@3.4/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token), alternatively you can export your PAT in your terminal environment with\nthe following command (this is demonstrated in the gif above):\n\n`export GITHUB_TOKEN=pat_token_here`\n\nPlease note, that if you update your PAT you may need to remove your current\nexported token with the following commands:\n\n```\n// remove token\nunset GITHUB_TOKEN\n\n// verify token disappeared\nprintenv GITHUB_TOKEN\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eexample output of `piscator cast azemetre -s`\u003c/summary\u003e\n\n```text\n[\n{\n\t\"name\": \"auteur-palettes\",\n\t\"html_url\": \"https://github.com/azemetre/auteur-palettes\",\n\t\"language\": \"JavaScript\",\n\t\"fork\": false,\n\t\"private\": true,\n\t\"size\": 403\n},\n{\n\t\"name\": \"azemetredotcom\",\n\t\"html_url\": \"https://github.com/azemetre/azemetredotcom\",\n\t\"language\": \"JavaScript\",\n\t\"fork\": false,\n\t\"private\": true,\n\t\"size\": 24256\n},\n{\n\t\"name\": \"hipster.nvim\",\n\t\"html_url\": \"https://github.com/azemetre/hipster.nvim\",\n\t\"language\": \"Lua\",\n\t\"fork\": false,\n\t\"private\": false,\n\t\"size\": 1446\n},\n{\n\t\"name\": \"musical-adventure\",\n\t\"html_url\": \"https://github.com/azemetre/musical-adventure\",\n\t\"language\": \"TypeScript\",\n\t\"fork\": false,\n\t\"private\": true,\n\t\"size\": 993\n},\n{\n\t\"name\": \"piscator\",\n\t\"html_url\": \"https://github.com/shimman-dev/piscator\",\n\t\"language\": \"Go\",\n\t\"fork\": false,\n\t\"private\": false,\n\t\"size\": 1006\n}\n]\n```\n\n\u003c/details\u003e\n\n---\n\nRunning `piscator cast org_name -o` will output a JSON of public and repositories for an organization:\n\n![running piscator cast shimman-dev -o](./docs/cast-org.gif)\n\n**Please note:** as with the `-s` flag (`--self`), the `--org` requires a PAT\npassed with the `--token` flag or fed into the env variable `GITHUB_TOKEN`.\n\n\u003cdetails\u003e\n\u003csummary\u003eexample output of `piscator cast shimman-dev -o`\u003c/summary\u003e\n\n```text\n[\n{\n\t\"name\": \"eslint-config\",\n\t\"html_url\": \"https://github.com/shimman-dev/eslint-config\",\n\t\"language\": \"JavaScript\",\n\t\"fork\": false,\n\t\"private\": false,\n\t\"size\": 227\n},\n{\n\t\"name\": \"piscator\",\n\t\"html_url\": \"https://github.com/shimman-dev/piscator\",\n\t\"language\": \"Go\",\n\t\"fork\": false,\n\t\"private\": false,\n\t\"size\": 1006\n},\n{\n\t\"name\": \"knockerupper\",\n\t\"html_url\": \"https://github.com/shimman-dev/knockerupper\",\n\t\"language\": \"\",\n\t\"fork\": false,\n\t\"private\": true,\n\t\"size\": 14\n}\n]\n```\n\n\u003c/details\u003e\n\n---\n\nRunning `piscator cast username -x` will output a JSON of public and forked repositories:\n\n![running piscator cast azemetre -x](./docs/cast-fork.gif)\n\n\u003cdetails\u003e\n\u003csummary\u003eexample output of `piscator cast azemetre -x`\u003c/summary\u003e\n\n```text\n[\n{\n\t\"name\": \"Adv360-Pro-ZMK\",\n\t\"html_url\": \"https://github.com/azemetre/Adv360-Pro-ZMK\",\n\t\"language\": \"\",\n\t\"fork\": true,\n\t\"private\": false,\n\t\"size\": 145\n},\n\t{\n\t\"name\": \"auteur-palettes\",\n\t\"html_url\": \"https://github.com/azemetre/auteur-palettes\",\n\t\"language\": \"JavaScript\",\n\t\"fork\": false,\n\t\"private\": true,\n\t\"size\": 403\n}\n]\n```\n\n\u003c/details\u003e\n\n---\n\nRunning `piscator cast username -f` will output a JSON of public repositories\nand create a `repos.json` file:\n\n![running piscator cast azemetre -x](./docs/cast-file.gif)\n\n---\n\nRunning `piscator cast username --language=rust,lua` will output a JSON of\npublic repositories filtered by the languages you provide (comma separated) for\na user:\n\n![running piscator cast azemetre -l rust,lua](./docs/cast-lang.gif)\n\n\u003cdetails\u003e\n\u003csummary\u003eexample output of `piscator cast azemetre -l rust,lua`\u003c/summary\u003e\n\n```text\n[\n  {\n    \"name\": \"dotfiles\",\n    \"html_url\": \"https://github.com/azemetre/dotfiles\",\n    \"language\": \"Lua\",\n    \"fork\": false,\n    \"private\": false,\n    \"size\": 2756\n  },\n  {\n    \"name\": \"hipster.nvim\",\n    \"html_url\": \"https://github.com/azemetre/hipster.nvim\",\n    \"language\": \"Lua\",\n    \"fork\": false,\n    \"private\": false,\n    \"size\": 1446\n  },\n  {\n    \"name\": \"rust-solutions\",\n    \"html_url\": \"https://github.com/azemetre/rust-solutions\",\n    \"language\": \"Rust\",\n    \"fork\": false,\n    \"private\": false,\n    \"size\": 47234\n  }\n]\n```\n\n\u003c/details\u003e\n\n---\n\n### [reel](#reels)\n\n**Please note:** `piscator reel` can take the same flags as `piscator cast`, so\nif you would like to reel in repos from an organization or yourself it will\nrequire the same flags and arguments.\n\nRunning `piscator reel org_name` create a directory of the user/org and clone\ntheir repositories:\n\n![running piscator reel azemetre](./docs/reel-user.gif)\n\n## [Todos](#todos)\n\n[I'm waiting for it, waiting for it](https://www.youtube.com/watch?v=MGhOfAengqM#t=2m49s)\n\n- [x] add ability to filter by language\n- [x] flesh out readme\n  - [x] create vhs tapes\n  - [ ] add `CONTRIBUTING.md`\n  - [ ] refine github templates\n- [x] automate release binaries\n- [ ] release on major package managers\n  - [x] homebrew\n  - [ ] nix\n  - [ ] fedora\n  - [ ] macports\n  - [ ] arch linux (btw)\n  - [ ] debian\n  - [x] scoop\n- [x] add tests\n- [x] generate man pages\n- [ ] make showcase site\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshimman-dev%2Fpiscator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshimman-dev%2Fpiscator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshimman-dev%2Fpiscator/lists"}