{"id":27944966,"url":"https://github.com/pirafrank/poof","last_synced_at":"2025-12-27T06:59:44.835Z","repository":{"id":290248554,"uuid":"969306901","full_name":"pirafrank/poof","owner":"pirafrank","description":"Magic manager of pre-built software. Install and manage awesome tools from GitHub Releases in one command.","archived":false,"fork":false,"pushed_at":"2025-06-30T00:43:47.000Z","size":509,"stargazers_count":2,"open_issues_count":30,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-02T19:07:47.019Z","etag":null,"topics":["assets","binaries","cli","clitool","executable","github","githubrelease","manager","package-manager","pre-built","rust","tool","user-space"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pirafrank.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","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":"2025-04-19T21:09:56.000Z","updated_at":"2025-06-23T08:34:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"6ffc6632-4acf-4651-8440-7226d0dfec2a","html_url":"https://github.com/pirafrank/poof","commit_stats":null,"previous_names":["pirafrank/poof"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/pirafrank/poof","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pirafrank%2Fpoof","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pirafrank%2Fpoof/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pirafrank%2Fpoof/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pirafrank%2Fpoof/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pirafrank","download_url":"https://codeload.github.com/pirafrank/poof/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pirafrank%2Fpoof/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264951610,"owners_count":23687974,"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","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":["assets","binaries","cli","clitool","executable","github","githubrelease","manager","package-manager","pre-built","rust","tool","user-space"],"created_at":"2025-05-07T12:55:23.768Z","updated_at":"2025-12-27T06:59:44.825Z","avatar_url":"https://github.com/pirafrank.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./.assets/poof_logo_bg_tx_384.png\" alt=\"poof logo\" width=\"384\"/\u003e\n\n  [![GitHub Release](https://img.shields.io/github/v/release/pirafrank/poof)](https://github.com/pirafrank/poof/releases/latest)\n  [![Crates.io](https://img.shields.io/crates/v/poof)](https://crates.io/crates/poof)\n  [![Crates.io MSRV](https://img.shields.io/crates/msrv/poof)](https://github.com/pirafrank/poof/blob/main/Cargo.toml)\n\n  [![CI](https://github.com/pirafrank/poof/actions/workflows/ci.yml/badge.svg)](https://github.com/pirafrank/poof/actions/workflows/ci.yml)\n  [![Security audit](https://github.com/pirafrank/poof/actions/workflows/security.yml/badge.svg)](https://github.com/pirafrank/poof/actions/workflows/security.yml)\n  [![codecov](https://codecov.io/gh/pirafrank/poof/graph/badge.svg)](https://codecov.io/gh/pirafrank/poof)\n  [![dependency status](https://deps.rs/repo/github/pirafrank/poof/status.svg)](https://deps.rs/repo/github/pirafrank/poof)\n\n  [![Licenses](https://github.com/pirafrank/poof/actions/workflows/licenses.yml/badge.svg)](https://github.com/pirafrank/poof/actions/workflows/licenses.yml)\n  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\u003c/div\u003e\n\n# poof 🪄 - magic manager of pre-built software\n\nEasy-to-use all-in-one binary with zero-config, zero-install, and zero-dependencies.\n\nYou just run `poof install someuser/somerepo` and... *poof!* it is installed and available in your shell.\n\n\u003e *\"poof-poof\"*\n\u003e\n\u003e What poof says when it makes awesome pre-built software available for you!\n\u003e\n\u003e *\"I am poof\"*\n\u003e\n\u003e What poof thinks of itself\n\nFor more information read below or check the documentation in the wiki. Got an idea? Let's talk in Discussions!\n\n[![GitHub Wiki](https://img.shields.io/badge/GitHub-Wiki-181717?style=flat-square\u0026logo=github\u0026logoColor=white\u0026color=blue)](https://github.com/pirafrank/poof/wiki)\n[![GitHub Discussions](https://img.shields.io/badge/GitHub-Discussions-181717?style=flat-square\u0026logo=github\u0026logoColor=white\u0026color=blue)](https://github.com/pirafrank/poof/discussions)\n\n**Note: this project is actively being developed.** I'm making ongoing improvements to the code while trying to maintain stability and up-to-date documentation. However, things may break. If you encounter some issues during this development phase, please [report them](https://github.com/pirafrank/poof/issues). Thank you!\n\n## Features\n\n- **🛠️ Zero-config**: Works immediately without any setup required for first run\n- **📦 Zero-install**: Simply download the binary for your platform and use it right away\n- **🔗 Zero-dependencies**: It runs standalone without requiring any additional software\n- **👤 User-space**: Designed to work in user-space, no root access needed\n- **🌍 Cross-platform**: Works on Linux and macOS and runs on different architectures (FreeBSD and Windows support is planned)\n- **🚀 Easy to use**: Sensible commands that are easy to remember and to type. Just run `poof help` to know more.\n\nBonus:\n\n- **⚙️ Written in Rust**: Safe and fast binaries built on reliable dependencies, with linting and formatting applied at commit time\n- **0️⃣ Zero-versioned**: Because major versions are [a thing of the past](https://0ver.org/) (and *poof*, albeit magic, is baby).\n\n## Why\n\nMore and more often modern tools are built with languages like Rust and Go, and offer pre-built binaries. But they aren't always available in standard package managers. Here's where `poof` helps:\n\n- Download and put in `$PATH` binaries from GitHub with a single command\n- Install tools discovered on sites like [Terminal Trove](http://terminaltrove.com) instantly\n- Test newer versions of tools before they reach official repositories without uninstalling your current version\n- Fast jump on interesting utilities you read about without hassle\n- Prefer use of pre-built, portable, self-contained binaries without involving system package managers\n\n## Quick start\n\n1. Get `poof` using one of the methods below:\n    - **Pre-built binary**: Download the binary from [latest release](https://github.com/pirafrank/poof/releases), and move it to some directory in your `$PATH`.\n    - **binstall**: If you have [binstall](https://github.com/cargo-bins/cargo-binstall), you can get the binary using `cargo` and skip compilation:\n\n    ```sh\n    cargo binstall poof\n    ```\n\n    - **cargo**: Build and install latest release on crates.io using `cargo`:\n\n    ```sh\n    cargo install --locked poof\n    ```\n\n2. Add poof's `bin` directory to `$PATH` by running:\n\n    ```sh\n    poof enable\n    ```\n\n    Then reload you shell.\n\n3. **Done!** Now try to install something, for example:\n\n    ```sh\n    poof install pirafrank/rust_exif_renamer\n    ```\n\nAdditional information about [installation](https://github.com/pirafrank/poof/wiki/How-to-install) and [supported platforms](https://github.com/pirafrank/poof/wiki/Supported-platforms) is available in the Wiki.\n\n## Usage\n\n```txt\n\npoof - magic manager of pre-built software\n\nUsage: poof [OPTIONS] \u003cCOMMAND\u003e\n\nCommands:\n  download  Only download binary for the platform in current directory. No install\n  install   Download binary for the platform and install it\n  list      List installed binaries and their versions\n  use       Make an installed version the one to be used by default\n  update    Update installed binaries to their latest versions\n  enable    Persistently add poof's bin directory to your shell PATH\n  check     Check if poof's bin directory is in the PATH\n  clean     Empty cache directory\n  info      Show install and environment information\n  version   Show version information\n  help      Print this message or the help of the given subcommand(s)\n\nOptions:\n  -v, --verbose...  Increase logging verbosity\n  -q, --quiet...    Decrease logging verbosity\n  -h, --help        Print help\n  -V, --version     Print version\n\nFor more information, visit: https://github.com/pirafrank/poof\n\nIf you encounter any issues, please report them at:\nhttps://github.com/pirafrank/poof/issues\n\n```\n\n## About poof's `bin` directory\n\n`poof` installs and symlinks binaries in its own data directory.\n\nHaving a dedicated directory for `poof` binaries is a good practice, as it allows you to:\n\n- keep them separate from other software installed on your system,\n- keep them separate from paths you may manually edit (like `~/.local/bin`),\n- easily temporarily disable `poof` by removing the directory from your `$PATH` (read below).\n\n## Disable\n\npoof's `bin` directory by default is added at the beginning of `$PATH` so that it takes precedence over any other version of same-named binary you may have installed other ways.\n\nIf you want to halt this behavior, you can [disable it](https://github.com/pirafrank/poof/wiki/Disable) it temporarily or permanently.\n\n## Documentation\n\nUpdated documentation for the latest release is available in the [Wiki](https://github.com/pirafrank/poof/wiki).\n\n## Project goals\n\n- Fetch and put in `$PATH` pre-built binaries available on Internet\n- Work without requiring buckets, repositories, or registries\n- Work out-of-the-box with no setup or configuration needed\n- Be designed to in user-space\n- Be as cross-platform as possible\n- Be easy to use, with sensible and ergonomic commands and options\n- Have no external dependencies\n\n## Non-goals\n\n- Build software from source code\n- Manage software that doesn't provide pre-built binaries\n- Act as a general package manager\n- Manage software installed by other tools or package managers\n  - Replace or modify binaries installed by other package managers\n  - Manage dependencies required by the software\n  - Handle language-specific package managers (pip, npm, cargo, etc.)\n  - Interface with system package managers (apt, yum, brew, etc.)\n\n## Roadmap\n\nA list of features implemented/to implement is available [in the Wiki](https://github.com/pirafrank/poof/wiki/Features). The list is not final and may change over time.\n\n## Contributing\n\nContributions are welcome! Please read the [Development](https://github.com/pirafrank/poof/wiki/Development) page for information about how to build, and the [CONTRIBUTING](CONTRIBUTING.md) file for details on how to contribute to this project.\nPlease make sure to follow the [code of conduct](CODE_OF_CONDUCT.md) when contributing. Thank you!\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details.\n\n## Acknowledgements\n\n*poof* software is born out of a necessity of mine, yet its name is a tribute to the much more famous [poof](https://fairlyoddparents.fandom.com/wiki/Poof).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpirafrank%2Fpoof","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpirafrank%2Fpoof","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpirafrank%2Fpoof/lists"}