{"id":44937934,"url":"https://github.com/tangowithfoxtrot/rizzybox","last_synced_at":"2026-02-18T07:34:17.490Z","repository":{"id":258843576,"uuid":"875751358","full_name":"tangowithfoxtrot/rizzybox","owner":"tangowithfoxtrot","description":"A multicall coreutil CLI written in Rust.","archived":false,"fork":false,"pushed_at":"2025-11-04T14:32:42.000Z","size":9259,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-04T15:11:46.786Z","etag":null,"topics":["cli","command-line","coreutil","coreutils","multicall","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/tangowithfoxtrot.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-20T18:45:24.000Z","updated_at":"2025-11-04T14:32:45.000Z","dependencies_parsed_at":"2024-11-09T15:22:55.428Z","dependency_job_id":"770c92c2-6a2e-4602-b74e-c77099024176","html_url":"https://github.com/tangowithfoxtrot/rizzybox","commit_stats":null,"previous_names":["tangowithfoxtrot/rizzybox"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/tangowithfoxtrot/rizzybox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangowithfoxtrot%2Frizzybox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangowithfoxtrot%2Frizzybox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangowithfoxtrot%2Frizzybox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangowithfoxtrot%2Frizzybox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tangowithfoxtrot","download_url":"https://codeload.github.com/tangowithfoxtrot/rizzybox/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangowithfoxtrot%2Frizzybox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29572465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T06:19:27.422Z","status":"ssl_error","status_checked_at":"2026-02-18T06:18:44.348Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["cli","command-line","coreutil","coreutils","multicall","rust"],"created_at":"2026-02-18T07:34:17.054Z","updated_at":"2026-02-18T07:34:17.484Z","avatar_url":"https://github.com/tangowithfoxtrot.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"```powershell\n8888888b.  d8b                            888888b.\n888   Y88b Y8P                            888  \"88b\n888    888                                888  .88P\n888   d88P 888 88888888 88888888 888  888 8888888K.   .d88b.  888  888\n8888888P\"  888    d88P     d88P  888  888 888  \"Y88b d88\"\"88b `Y8bd8P'\n888 T88b   888   d88P     d88P   888  888 888    888 888  888   X88K\n888  T88b  888  d88P     d88P    Y88b 888 888   d88P Y88..88P .d8\"\"8b.\n888   T88b 888 88888888 88888888  \"Y88888 8888888P\"   \"Y88P\"  888  888\n                                      888\n                                 Y8b d88P\n                                  \"Y88P\"\n```\n\nA multicall coreutil binary written in Rust.\n\n[![asciicast](https://asciinema.org/a/oruhe7BpwPa13QQyZse8bpJ4z.svg)](https://asciinema.org/a/oruhe7BpwPa13QQyZse8bpJ4z)\n\n## Usage\n\n### As a multicall binary\n\nRizzybox consists of a handful of coreutil implementations, as well as a few\noriginal coreutils (see the [stem](./src/command/stem.rs) command for an\nexample). Each one can be executed with `rizzybox \u003cutil-name\u003e`. For a list of\nsupported commands, you can run `rizzybox --help` or `rizzybox --list`.\n\n### As rudimentary coreutils\n\nRizzybox can be symlinked or \"installed\" in such a way that allows you to\nexecute the various supported coreutils without needing to invoke them as\n`rizzybox \u003cutil-name\u003e`. This allows you to simply run `cat` to invoke\n`rizzybox cat`. To do so, simply run\n`rizzybox --install-self \u003cpath-to-desired-installation-dir\u003e`. The installation\ndir must be in `$PATH` to be used this way, and you will need write permissions\nto that directory or invoke it with `sudo` or `doas`.\n\n### Debug scratch or distroless container images\n\nSince Rizzybox is a set of coreutils with a **very** rudimentary,\ninteractive-only shell, we can use it for debugging container images that are\nbuilt from empty filesystems. Doing so requires using a build of Rizzybox that\nhas been built with a statically-linked libc. If your docker host is not running\nLinux, you will need a **Linux** build of rizzybox to do this because we need to\nmount rizzybox inside of the container image at runtime to enable this\nfunctionality.\n\n[![asciicast](https://asciinema.org/a/NMRvMZTeXJKA4iDWPIYeNX6oe.svg)](https://asciinema.org/a/NMRvMZTeXJKA4iDWPIYeNX6oe)\n\n#### Configure rizzybox to work as a docker plugin\n\n1. Locate your Docker plugins directory. This is usually in\n   `~/.docker/cli-plugins` or `/usr/lib/docker/cli-plugins`. If you are unsure,\n   you can inspect the output of `docker info` or use the following one-liner:\n\n```sh\ndirname $(docker info | grep -iA3 Plugins | grep Path | awk '{ print $2 }' | head -n1)\n```\n\n2. Symlink Rizzybox to `\"$docker_plugins_dir/docker-debug\"` (or\n   `\"$docker_plugins_dir/docker-rebug\"`, if you're already using `docker-debug`)\n\n```sh\nsudo ln -sf $(which rizzybox) \"$docker_plugins_dir/docker-debug\"\n```\n\n3. Use the Rizzybox shell to get an interactive session into a minimal container\n   image:\n\n```sh\ndocker debug tangowithfoxtrot/scratch\n\n# or, if you symlinked it as docker-rebug:\ndocker rebug tangowithfoxtrot/scratch\n```\n\n## Goals\n\n1. Do something fun in Rust.\n2. Learn more about `coreutils`.\n3. Provide fancier alternatives to GNU coreutils with things like\n   syntax-highlighting and robust completions. For now, perfect GNU\n   compatibility is not a goal. In the future, this may change, but if you would\n   like a Rust coreutil project that _does_ strive for GNU compatibility, please\n   check out [uutils](https://github.com/uutils/coreutils).\n4. Create original coreutils.\n\n### Acknowledgements\n\n- [bubble-shell](https://github.com/JoshMcguigan/bubble-shell); for\n  demonstrating basic shell logic\n- [Bat](https://github.com/sharkdp/bat); enables niceties like\n  syntax-highlighting in `cat`, `echo`, and others\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftangowithfoxtrot%2Frizzybox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftangowithfoxtrot%2Frizzybox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftangowithfoxtrot%2Frizzybox/lists"}