{"id":38090427,"url":"https://github.com/filipekiss/bin","last_synced_at":"2026-01-16T20:57:10.891Z","repository":{"id":78461658,"uuid":"187223557","full_name":"filipekiss/bin","owner":"filipekiss","description":"My collection of small binary utilities","archived":false,"fork":false,"pushed_at":"2025-05-13T12:27:14.000Z","size":141,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-13T13:45:08.221Z","etag":null,"topics":["bash","scripts","shell","utils","zsh"],"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/filipekiss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":"CODE-OF-CONDUCT.md","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":"2019-05-17T13:43:56.000Z","updated_at":"2025-05-13T12:27:17.000Z","dependencies_parsed_at":"2025-05-14T20:31:29.513Z","dependency_job_id":null,"html_url":"https://github.com/filipekiss/bin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/filipekiss/bin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filipekiss%2Fbin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filipekiss%2Fbin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filipekiss%2Fbin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filipekiss%2Fbin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/filipekiss","download_url":"https://codeload.github.com/filipekiss/bin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filipekiss%2Fbin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28482433,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","scripts","shell","utils","zsh"],"created_at":"2026-01-16T20:57:10.646Z","updated_at":"2026-01-16T20:57:10.874Z","avatar_url":"https://github.com/filipekiss.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--alex disable blacklist color colors execute kill nuke sexy whitelist wtf--\u003e\n\n# bin\n\n\u003e My collection of small binary utilities\n\n---\n\nThis repository was created from my [dotfiles][1] repository. I've collected\n(and wrote some myself) along almost 10 years. If you know the author of some\nuncredited bin, please, [let me know][issue] (or open a\n[pull-request][pull-request]) and I'll update it accordingly. :)\n\n\u003e **Disclaimer**: I mainly use ZSH, so some scripts here might not work as well\n\u003e (or not work at all) in other shell like [bash][2] or [fish][3]. Feel free to\n\u003e open a [pull-request][pull-request] to make these scripts more portable.\n\u003e \n\u003e I also started migrating some of the scripts to [Lua][lua], for better\n\u003e performance and portability (and it's also easier to write). Check the [LUA.md][./LUA.md]\n\u003e file for more info.\n\n## Install\n\nClone this somewhere in your system, for example `$HOME/.bin-filipekiss`\n\n```sh\n$ git clone https://github.com/filipekiss/bin ~/.bin-filipekiss\n```\n\nThen, edit your `PATH` variable to add the folder above to it. (If you have no\nidea where that is, it's probably in a file called `.zshrc` or `.bashrc` that\nsits in your home folder)\n\n```\nexport PATH=$HOME/.bin-filipekiss:$PATH\n```\n\nRestart your terminal and the commands should be available.\n\n## Commands\n\n### \\$\n\nIf you ever copied a command from the internet (like the `git clone` above) and\ngot an error saying `$: command not found`, this is the script for you. It\nreminds you to stop copy pasting commands from the internet (because that's a\nsecurity issue, you know) but also runs the command so you don't get frustrated\n\n---\n\n### +x\n\nShortcut to `chmod +x`, to easily give execute permission to files\n\n---\n\n### \\_\\_debug\n\nThis is a small utility I wrote to help me debug some scripts (specially\ncompletion scripts, since it's hard to output information). It's a very crude\nlogging mechanism.\n\n#### Example\n\nAt the beginning of your script, call `__debug start`. You may pass an optional\nfile name where the messages will be written, for example\n`__debug start myscript.log`. Be aware that the `myscript.log` file **will be\ntruncated**.\n\nDuring your script, when you need to debug something, just call\n`__debug \"Debugging message\"` and a message will be appended to the debug file,\nwith a time stamp.\n\nYou can use `__debug tail` to tail the latest debug file (or you can `tail -f`\nthe file directly)\n\n---\n\n### colortest\n\nPrint a color table showing all terminal colors supported.\n\n#### Example\n\n![image](https://user-images.githubusercontent.com/48519/57935022-3ec4f200-7897-11e9-94cf-dc09a515ac0f.png)\n\n---\n\n### dst\n\n**USAGE:** `dst [TIMEZONE]`\n\nCheck daylight savings for a given timezone. Timezone must be in _tz database_\nformat. You can check the complete list\n[here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)\n\n### extract\n\nUse to extract compressed files: `extract archive.zip`.\n\n**Supported extensions:** `*.tar.bz2`, `*.tar.gz`, `*.bz2`, `*.rar`, `*.gz`,\n`*.tar`, `*.tbz2`, `*.tgz`, `*.zip`, `*.Z`, `*.7z`\n\n---\n\n\u003e **A word about `git-` binaries**\n\u003e\n\u003e All utilities that are prefixed with `git-` can be used as git commands. so\n\u003e instead of using the command as `git-browse` you can `git browse` and have the\n\u003e same effect.\n\n### git-ahead (git ahead)\n\n**USAGE:** `git ahead [branch]`\n\nShow which commits will be pushed to the current tracked branch. If you pass a\nbranch, compare against that branch instead\n\n#### Options\n\n| Flags            | Description                            |\n| :--------------- | :------------------------------------- |\n| **--submodules** | Include submodules when checking       |\n| **--force**      | Force fetching changes from the remote |\n\n`git-ahead` accepts any argument you're able to pass to `git log`\n\n---\n\n### git-behind (git behind)\n\n**USAGE:** `git behind [branch]`\n\nShow which commits will be pulled from the current tracked branch. If you pass a\nbranch, compare against that branch instead\n\n#### Options\n\n| Flags            | Description                            |\n| :--------------- | :------------------------------------- |\n| **--submodules** | Include submodules when checking       |\n| **--force**      | Force fetching changes from the remote |\n\n`git-behind` accepts any argument you're able to pass to `git log`\n\n---\n\n### git-browse (git browse)\n\n**USAGE:** `git browse`\n\nuse this to open the current project in your browser. this will parse the\ndefault remote (usually `origin`) to choose which url to open. if you have\nmultiple remotes, you can pass an options argument with the remote name, for\nexample `git browse gitlab`.\n\n\u003e If you have [`hub`][hub] installed, it already provides a `browse` command to\n\u003e git and it will take precedence over this.\n\n---\n\n### git-churn (git churn)\n\n**USAGE:** `git churn`\n\nChurn means \"frequency of change\". You'll get an output like this:\n\n```sh\n$ git churn\n1 file1\n22 file2\n333 file3\n```\n\nThis means that `file1` changed one time, `file2` changes 22 times, and `file3`\nchanges 333 times.\n\nShow churn for whole repo: `$ git churn`\n\nShow churn for specific directories: `$ git churn app lib`\n\nShow churn for a time range: `$ git churn --since='1 month ago'`\n\n`git-churn` accepts any argument you're able to pass to `git log`\n\n---\n\n### git-conflicts (git conflicts)\n\n**USAGE:** `git conflicts`\n\nShow all files that are in a conflicted state.\n\n---\n\n### git-credit (git credit)\n\n**USAGE:** `git credit \"Zach Holman\" zach@example.com`\n\nUse this to credit the previous commit to another author\n\n---\n\n### git-deinit (git deinit)\n\n**USAGE:** `git deinit`\n\nRemove all `git` related files. It's the opposite of `git init`.\n\n**THIS COMMAND IS NOT REVERSIBLE. YOU WILL LOOSE ALL HISTORY.**\n\n---\n\n### git-delete-tags (git delete-tags)\n\n**USAGE:** `git delete-tags`\n\nRemove all tags locally and remotely. Requires **awk**\n\n---\n\n### git-delete-merged-branches (git delete-merged-branches)\n\n**USAGE:** `git delete-merged-branches`\n\nCheck which branches are already merged into you main branch and delete them.\n\n#### Options\n\n| Flags                       | Description                                                                                                                                           |\n| :-------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **--remote**                | Run against remote branches. Default is running on local                                                                                              |\n| **--delete**           | Delete the merged branches. If  you don't pass this option, it will only list the branches that would be deleted|\n| **--default-branch [main]** | Use this to pass the name of the default branch, in case your repository uses a different name than main.                                             |\n| **--origin [origin]**       | Set the name of the remote to run against. Defaults to origin                                                                                         |\n| **--force-delete**                 | Force deletion of branches. You shouldn't need this option, ever                                                                                      |\n| **--allow [branch-name]**    | If this option is given, only branches that match the given names we'll be deleted. It can be passed multiple times. \\* wildcard is supported         |\n| **--deny [branch-name]**    | If this option is given, only branches that DO NOT match the given names we'll be deleted. It can be passed multiple times. \\* wildcard is supported. |\n| **--squashed**              | Also check for branches that were merged to master using the squash strategy                                                                          |\n| **--squashed-only**         | Check only for branches that we're merged using the squash strategy                                                                                   |\n| **--no-squash-warning**     | Suppress the output information when squashed branches are found but no `--squashed` option was passed                                                |\n\n#### Arguments\n\n| Argument        | Description                                                                                                                                                                    |\n| :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **branch name** | The only argument this command accepts is the branch name to compare other branches against. Defaults to origin/master (or whatever remote you pass using the --origin option) |\n\n---\n\n### git-edit (git edit)\n\n**USAGE:** `git edit [conflicts|commited|staged|edited]`\n\nUse this to edit file in various states. Uses `$EDITOR` to decide which editor\nto use. If no filter is passed, uses `edited` by default\n\n#### Usage\n\n**`git edit conflicts`** \u003cbr\u003e Open all files that are in a conflicted state\n\n**`git edit commited`** \u003cbr\u003e Open all files that were changed on the last commit\n\n**`git edit staged`** \u003cbr\u003e Open all files that are staged for commit since last\ncommit\n\n**`git edit edited`** \u003cbr\u003e Open all files that were edited but not staged since\nlast commit - this is the same as `git edit`\n\n---\n\n### git-flush (git flush)\n\n**USAGE:** `git flush`\n\nUse this to reduce the size of your repository. It deletes all reflogs, stashes\nand other stuff that may be bloating your repository.\n\n_Requires `perl`_\n\n---\n\n### git-go (git go)\n\n**USAGE:** `git-go [OPTION] [COMMAND]`\n\n#### Options\n\n| Flags | Description                                                    |\n| ----- | -------------------------------------------------------------- |\n| `-g`  | Perform command globally, not scoped to current git repository |\n\n#### Commands\n\n| Command             | Description                                                                                                                                                                                                                         |\n| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **search \"q\"**      | Perform a search                                                                                                                                                                                                                    |\n| **@user**           | Browse a user. Is you pass **@user/repository**, browse that repo instead                                                                                                                                                           |\n| **explore**         | Explore GitHub                                                                                                                                                                                                                      |\n| **my [SUBCOMMAND]** | Browse your personal items, where SUBCOMMAND is one of: \u003cul\u003e \u003cli\u003e`dashboard`\u003c/li\u003e\u003cli\u003e`issues [assigned\\|mentioned\\|created]`\u003c/li\u003e\u003cli\u003e`notifications`\u003c/li\u003e\u003cli\u003e`profile`\u003c/li\u003e\u003cli\u003e`pulls`\u003c/li\u003e\u003cli\u003e`settings`\u003c/li\u003e\u003cli\u003e`stars`\u003c/li\u003e\u003c/ul\u003e |\n\n---\n\n### git-health (git health)\n\n**USAGE:** `git health [all|local|remote] --stale --markdown`\n\nBy default, git health will be run against local branches. You can pass local to\nonly check local branches and remote to only check remote branches and all to\ncheck all branches.\n\nThe branches will be sorted by last activity, from the most recently active to\nthe least recent active. You can use a dash prefix to invert the order, so\n`git health -all` will list all branches with the most stale branch on top and\nthe most recent active branch on the bottom\n\nIf you pass the `--stale` option, only stale branches will be listed. By\ndefault, branches are considered stale if no commit was made to them in the past\n3 months. You can pass a value to stale, so `--stale \"15 days ago\"` will list\nbranches with no commits in the last 15 days.\n\nIf you pass the `--markdown` option, the output will be a markdown table, so you\ncan do something like `git health --markdown \u003e stale_branches.md` to easily have\na markdown file generated with the stale branches.\n\n---\n\n### git-ignore (git ignore)\n\n**USAGE:** `git ignore [OPTIONS] [patterns]`\n\nAdd files to `.gitignore` or `.git/info/exclude`. If adding to\n`.git/info/exclude`, the file will be ignored for the current clone only. This\nis not commited.\n\n#### Options\n\n| Flags             | Description                                               |\n| ----------------- | --------------------------------------------------------- |\n| **--exclude, -e** | Use `.git/info/exclude` instead of adding to `.gitignore` |\n| **--root, -R**    | Add to the `.gitignore` file in the root of the project.  |\n\n---\n\n### git-maxpack (git maxpack)\n\n**USAGE:** `git maxpack`\n\nSet git compression to the maximum level and repack the current repository\n\n---\n\n### git-nuke (git nuke)\n\n**USAGE:** `git nuke an-old-branch`\n\nDeletes a branch both locally and on the origin remote\n\n---\n\n### git-purge-file (git purge-file)\n\n**USAGE:** `git purge-file file1 file2`\n\nThis will remove all paths from the current git repository and history. See\n[this help article from GitHub](https://help.github.com/en/articles/removing-sensitive-data-from-a-repository)\nfor more info.\n\n---\n\n### gir-rel (git rel)\n\n**USAGE:** `git-rel [\u003cref\u003e]` Shows the relationship between the current branch\nand \u003cref\u003e. With no \u003cref\u003e, the current branch's remote tracking branch is used.\n\nExamples:\n\n        $ git-rel\n        15 ahead\n        11 behind\n\n        $ git-rel v1.1\n        230 ahead\n\n---\n\n### git-rewrite-to-subfolder (git rewrite-to-subfolder)\n\n**USAGE:** `git rewrite-to-subfolder`\n\nThis script rewrites your entire history, moving the current repository root\ninto a subdirectory. This can be useful if you want to merge a submodule into\nits parent repository.\n\nFor example, your main repository might contain a submodule at the path\n`src/lib/`, containing a file called `test.c`. If you would merge the submodule\ninto the parent repository without further modification, all the commits to\n`test.c` will have the path `/test.c`, whereas the file now actually lives in\n`src/lib/test.c`.\n\nIf you rewrite your history using this script, adding `src/lib/` to the path and\nthe merging into the parent repository, all paths will be correct.\n\n**NOTE: This script might complete garble your repository, so PLEASE apply this\nonly to a clone of the repository where it does not matter if the repo is\ndestroyed.**\n\n---\n\n### git-shamend (git shamend)\n\n**USAGE:** `git shamend [options] [\u003crevision\u003e]`\n\nAmends your staged changes as a fixup (keeping the pre-existing commit message)\nto the specified commit, or HEAD if no revision is specified.\n\n##### Options:\n\n| Flags         | Description                                 |\n| :------------ | :------------------------------------------ |\n| **-a, --all** | Commit unchanged files, same as git commit. |\n\n---\n\n### git-st (git st)\n\n**USAGE:** `git st`\n\nA better git status, that shows a short summary and the diff stat.\n\nTaken from\n[this reddit thread](https://www.reddit.com/r/git/comments/cfykfu/better_git_status/)\n\n## ![git-st example screenshot](https://user-images.githubusercontent.com/48519/61865981-9c4b6f80-aed4-11e9-9337-6673e50b20b4.png)\n\n### git-store (git store)\n\n**USAGE:** `git store [description]` after `git add files-to-stash`\n\nThis script is based on\n[this stackoverflow answer](https://stackoverflow.com/a/32951373). It basically\ncreates two stashes: One named \"Stashed: \u003cdescription\u003e\", which includes\neverything. This is git default stash. A second one named \"Stored:\n\u003cdescription\u003e\". This will include only the staged changes. By default, the first\nstash created is deleted, leaving you only with the stash with the staged\nchanges. See the `store.preserve` option below for more info.\n\n##### Settings\n\n`store.preserve = [true|false]` \u003cbr\u003e By default, `git-store` will not preserve\nthe unstaged changes. Since we use the double stash method, it will delete the\n\"bad\" stash and keep only the \"good\" stash (the one with only the staged\nchanges). You can keep the \"bad\" stash by setting the `store.preserve` config to\ntrue:\n\n`git config [--global] store.preserve true`\n\n---\n\n### git-sync (git sync)\n\n**USAGE:** `git sync [origin] [branch]`\n\nSyncs the current branch with it's remote counterpart. Basically a shortcut to\n`git pull --rebase \u0026\u0026 git push`\n\n\u003e If you have [`hub`][hub] installed, it already provides a `sync` command to\n\u003e git and it will take precedence over this.\n\n---\n\n### git-up (git up)\n\n**USAGE:** `git-up`\n\nLike `git-pull` but show a short and sexy log of changes\n\n---\n\n### git-what-the-hell-just-happened (git what-the-hell-just-happened)\n\n**USAGE:** `git what-the-hell-just-happened [branch]`\n\nShow what was changed between the last two commits (`HEAD` and `HEAD@{1}`).\n\n---\n\n### git-winner (git winner)\n\n**USAGE:** `git winner [date] --detail`\n\nShow who has the most commits (number of commits and number of commited lines)\nafter a given date. If `--detail` is passed, all messages for the commits\nanalyzed will be printed.\n\n---\n\n### git-wtf (git wtf)\n\n**USAGE:** `git wtf [branch+] [options]`\n\n`git-wtf` displays the state of your repository in a readable, easy-to-scan\nformat. It's useful for getting a summary of how a branch relates to a remote\nserver, and for wrangling many topic branches.\n\n`git-wtf` can show you:\n\n- How a branch relates to the remote repo, if it's a tracking branch.\n- How a branch relates to integration branches, if it's a feature branch.\n- How a branch relates to the feature branches, if it's an integration branch.\n\n`git-wtf` is best used before a git push, or between a git fetch and a git\nmerge. Be sure to set color.ui to auto or yes for maximum viewing pleasure.\n\nIf [branch] is not specified, `git-wtf` will use the current branch. The\npossible [options] are:\n\n| Options               | Description                                                           |\n| --------------------- | --------------------------------------------------------------------- |\n| **-l, --long**        | include author info and date for each commit                          |\n| **-a, --all**         | show all branches across all remote repos, not just those from origin |\n| **-A, --all-commits** | show all commits, not just the first 5                                |\n| **-s, --short**       | don't show commits                                                    |\n| **-k, --key**         | show key                                                              |\n| **-r, --relations**   | show relation to features / integration branches                      |\n| **--dump-config**     | print out current configuration and exit                              |\n\n`git-wtf` uses some heuristics to determine which branches are integration\nbranches, and which are feature branches. (Specifically, it assumes the\nintegration branches are named \"master\", \"next\" and \"edge\".) If it guesses\nincorrectly, you will have to create a `.git-wtfrc` file.\n\nTo start building a configuration file, run `git-wtf --dump-config \u003e .git-wtfrc`\nand edit it. The config file is a YAML file that specifies the integration\nbranches, any branches to ignore, and the max number of commits to display when\n`--all-commits` isn't used. `git-wtf` will look for a `.git-wtfrc` file starting\nin the current directory, and recursively up to the root.\n\nIMPORTANT NOTE: all local branches referenced in `.git-wtfrc` must be prefixed\nwith `heads/`, e.g. `heads/master`. Remote branches must be of the form\n`remotes/\u003cremote\u003e/\u003cbranch\u003e`.\n\n---\n\n### killport\n\n**USAGE:** `killport [PORT]`\n\nKill all processes running on the specified port.\n\n---\n\n### macos-wifi\n\n**USAGE:** `macos-wify [no-symbol]`\n\nI used this to show the current wi-fi connection name in my TMUX status bar. If\nyou pass `no-symbol` as the argument, only the SSID of the connection will be\nreturned. Otherwise, the format `₩:\u003cSSID\u003e` wil be used\n\n---\n\n### network-status\n\n**USAGE:** `network-status [options]`\n\n![network-status demo](https://user-images.githubusercontent.com/48519/67092470-900f3f80-f1af-11e9-8e95-d9df1dc5ae85.gif)\n\nAn improved version of the `macos-wifi` binary. It works as a general tool to\ntest internet availability. If you are connected to a Wi-Fi network, a Wi-Fi\nsymbol and the network name will be displayed. If you're using a cabled\nconnection, a little ethernet cable will be used to display the network status.\n\n_**The script works under Linux as well, but it won't show the network name.\nAlso note that, for the symbols to show properly, you need to use a font that\nhas been patched with [Nerd Font](https://www.nerdfonts.com)**_\n\n#### Options\n\n| Flags          | Description                                    |\n| :------------- | :--------------------------------------------- |\n| **--no-color** | Don't show colored output                      |\n| **--tmux**     | Use TMUX formatting instead of terminal colors |\n\n---\n\n### test-drive\n\n###### [original source](https://gist.github.com/hellricer/e514d9615d02838244d8de74d0ab18b3)\n\n**USAGE:** `test-drive`\n\n![test-drive demo](https://user-images.githubusercontent.com/48519/91456891-1393c580-e884-11ea-9c8b-eaab8f694aba.png)\n\nDisplay the current terminal capabilities, including 24-bit color, left-to-right\nchars, sixel images, emoji etc…\n\n---\n\n## Thanks\n\nI'd like to thank everyone who posts their scripts online so people like me are\nable to read and learn from them. This is a small way of giving back to the\ncommunity.\n\n**filipekiss/bin** © 2019+, Filipe Kiss Released under the [MIT] License.\u003cbr\u003e\nAuthored and maintained by Filipe Kiss.\n\n\u003e GitHub [@filipekiss](https://github.com/filipekiss) \u0026nbsp;\u0026middot;\u0026nbsp;\n\u003e Twitter [@filipekiss](https://twitter.com/filipekiss)\n\n[mit]: http://mit-license.org/\n[1]: https://github.com/filipekiss/dotfiles\n[2]: https://www.gnu.org/software/bash/\n[3]: https://fishshell.com/\n[issue]: https://github.com/filipekiss/bin/issues/new\n[pull-request]: https://github.com/filipekiss/bin/compare\n[hub]: https://hub.github.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffilipekiss%2Fbin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffilipekiss%2Fbin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffilipekiss%2Fbin/lists"}