{"id":13598881,"url":"https://github.com/kyu08/fzf-make","last_synced_at":"2025-10-21T04:47:55.172Z","repository":{"id":148190910,"uuid":"611369838","full_name":"kyu08/fzf-make","owner":"kyu08","description":"A command line tool that executes commands using fuzzy finder with preview window for make, pnpm, yarn, just.","archived":false,"fork":false,"pushed_at":"2025-04-09T17:26:58.000Z","size":31463,"stargazers_count":158,"open_issues_count":33,"forks_count":13,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-09T18:39:14.084Z","etag":null,"topics":["cli","crates-io","fuzzy-finder","fzf","hacktoberfest","just","make","makefile","pnpm","ratatui","rust","terminal","tui"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kyu08.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"kyu08"}},"created_at":"2023-03-08T17:26:51.000Z","updated_at":"2025-04-09T00:36:23.000Z","dependencies_parsed_at":"2023-05-19T11:46:38.185Z","dependency_job_id":"ef9aa253-83bd-44c8-8544-34160a2bb105","html_url":"https://github.com/kyu08/fzf-make","commit_stats":null,"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyu08%2Ffzf-make","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyu08%2Ffzf-make/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyu08%2Ffzf-make/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyu08%2Ffzf-make/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kyu08","download_url":"https://codeload.github.com/kyu08/fzf-make/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248093865,"owners_count":21046759,"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":["cli","crates-io","fuzzy-finder","fzf","hacktoberfest","just","make","makefile","pnpm","ratatui","rust","terminal","tui"],"created_at":"2024-08-01T17:00:57.728Z","updated_at":"2025-10-21T04:47:55.167Z","avatar_url":"https://github.com/kyu08.png","language":"Rust","funding_links":["https://github.com/sponsors/kyu08"],"categories":["Development tools","Rust","💻 Apps"],"sub_categories":["Workflow Automation","Web Servers","🚀 Productivity and Utilities"],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/kyu08/fzf-make/main/static/logo.png\" /\u003e\n\n`fzf-make` is a command line tool that executes commands using fuzzy finder with preview window. Currently supporting [**make**](https://www.gnu.org/software/make/), [**pnpm**](https://github.com/pnpm/pnpm), [**yarn**](https://github.com/yarnpkg/berry), [**just**](https://github.com/casey/just), [**task**](https://github.com/go-task/task).\n\n[![](https://shields.io/badge/-Rust-3776AB?style=flat\u0026logo=rust)](https://www.rust-lang.org/)\n[![Built With Ratatui](https://img.shields.io/badge/Built_With_Ratatui-000?logo=ratatui\u0026logoColor=fff)](https://ratatui.rs/)\n[![License:MIT](https://img.shields.io/static/v1?label=License\u0026message=MIT\u0026color=blue\u0026style=flat)](https://github.com/kyu08/fzf-make/blob/main/LICENSE)\n\n[![Crates.io Total Downloads](https://img.shields.io/crates/d/fzf-make)](https://crates.io/crates/fzf-make)\n[![](https://img.shields.io/homebrew/v/fzf-make)](https://formulae.brew.sh/formula/fzf-make)\n[![Latest Release](https://img.shields.io/github/v/release/kyu08/fzf-make?style=flat\u0026label=GitHub)](https://github.com/kyu08/fzf-make/releases/latest)\n[![crates.io](https://img.shields.io/crates/v/fzf-make?style=flat)](https://crates.io/crates/fzf-make)\n\n\u003cimg src=\"https://raw.githubusercontent.com/kyu08/fzf-make/main/static/demo.gif\" /\u003e\n\n\u003c/div\u003e\n\n# 🛠️ Features\n- Select and execute a make target or (pnpm | yarn) scripts or just recipe or task using fuzzy-finder with a preview window by running `fzf-make`!\n- Execute the last executed command(By running `fzf-make --repeat`.)\n- Command history\n- Support [**make**](https://www.gnu.org/software/make/), [**pnpm**](https://github.com/pnpm/pnpm), [**yarn**](https://github.com/yarnpkg/berry), [**just**](https://github.com/casey/just), [**task**](https://github.com/go-task/task). **Scheduled to be developed: npm.** \n- Support passing additional arguments to the command using popup window. The UI looks like: https://github.com/kyu08/fzf-make/pull/447\n- [make] Support `include` directive\n- [pnpm] Support workspace(collect scripts all of `package.json` in the directory where fzf-make is launched.)\n- [yarn] Support workspace(collect all scripts which is defined in `workspaces` field in root `package.json`.)\n- [just] Support execution inside of directory of justfile.\n- [task] Support `includes` with both file and directory paths, following [Taskfile schema](https://taskfile.dev/docs/reference/schema#taskfile). (fzf-make is just using output of `task --list-all --json`)\n    - **Note that the minimum supported task version is [`v3.44.0`](https://github.com/go-task/task/releases/tag/v3.44.0).**\n- **(Scheduled to be developed)** Support config file\n\n# 📦 Installation\n## macOS\n### Homebrew\n```sh\n# install\nbrew install fzf-make\n```\n\n```sh\n# update \nbrew upgrade fzf-make\n```\n\n## Arch Linux\n\n`fzf-make` can be installed from the [AUR](https://aur.archlinux.org/packages/fzf-make) using an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers). For example:\n\n```sh\nparu -S fzf-make\n```\n\n## NixOS / Nix (package manager)\n`fzf-make` can be run from the repository (latest version)\n```sh\nnix run github:kyu08/fzf-make\n```\n\nOr from the nixpkgs (channel \u003e= 23.05)\n```sh\nnix run nixpkgs#fzf-make\n```\n\n\u003e **Note**\n\u003e You may need to enable experimental feature. In that case, execute the following command to enable them\n\u003e `echo \"experimental-features = nix-command flakes\" | tee  ~/.config/nix/nix.conf`\n\n## OS-independent method\n### Cargo\n```sh\ncargo +1.90.0 install --locked fzf-make\n# Or build from the latest source\ncargo +1.90.0 install --git https://github.com/kyu08/fzf-make/\n```\n\n# 💡 Usage\n## Run target using fuzzy finder\n1. Execute `fzf-make` in the directory you want to run make target, or (pnpm | yarn) scripts or just recipe.\n1. Select command you want to execute. If you type some characters, the list will be filtered.\n    \u003cimg width=\"752\" alt=\"demo\" src=\"https://raw.githubusercontent.com/kyu08/fzf-make/main/static/usage-main.png\"\u003e \n    \u003cimg width=\"752\" alt=\"demo\" src=\"https://raw.githubusercontent.com/kyu08/fzf-make/main/static/usage-type-characters.png\"\u003e \n\n## Run target from history\n1. Execute `fzf-make` in the directory you want to run make target, or (pnpm | yarn) scripts or just recipe.(For just, we support execution inside of directory of justfile.)\n1. Press `Tab` to move to the history pane.\n1. Select command you want to execute.\n    \u003cimg width=\"752\" alt=\"demo\" src=\"https://raw.githubusercontent.com/kyu08/fzf-make/main/static/usage-history.png\"\u003e \n\n## How fzf-make judges which command runner can be used\n### make\nWhether makefile(file name should be one of `GNUmakefile`, `makefile`, `Makefile`) is in the current directory.\n\n### pnpm\nWhether `package.json` and `pnpm-lock.yaml` are in the current directory.\n\n### yarn\nWhether `package.json` and `yarn.lock` are in the current directory.\n\n### just\nWhether `justfile` or `.justfile` are in the current directory or ancestor directories. If the lower cased file name matches `justfile` or `.justfile`, it is treat as a justfile. (e.g. `justFile` or `.JustFile` are also valid.)\n\n## Commands Supported\n| Command                                                   | Description                                   |\n| --------                                                  | --------                                      |\n| `fzf-make`                                                | Launch fzf-make                               |\n| `fzf-make --repeat` / `fzf-make -r` / `fzf-make repeat`   | Execute last executed target                  |\n| `fzf-make --history` / `fzf-make -h` / `fzf-make history` | Launch fzf-make with the history pane focused |\n| `fzf-make --help` / `fzf-make help`                       | Show help                                     |\n| `fzf-make --version` / `fzf-make -v` / `fzf-make version` | Show version                                  |\n\n## Example Aliases\nTo simplify the usage of `fzf-make`, you can define aliases in your shell configuration. Below is an example configuration that works for most shells (bash, zsh, fish, etc.):\n\n```sh\nalias fm='fzf-make'\nalias fr='fzf-make repeat'\nalias fh='fzf-make history'\n```\n\n# 💻 Development\n1. Clone this repository\n1. Change the codes\n1. Run `make run`\n\nTo execute test, run `make test`(needs `nextest`).\n\n## nix\nOr you can use `nix` to create a development shell with the project dependencies.\n\nWithin the repo root, execute the following command:\n```nix\nnix develop\n```\n\n# 👥 Contribution\n- Contributions are welcome!\n- If you have a Feature request, please create an issue first.\n- If you have added fzf-make to some package manager, please let me know. (or please send a PR to add how to install via the package manager in the `README.md`)\n- If you have any questions, feel free to create an issue and ask.\n\n# 🗒 Related Article(s)\n- [fzf-make - A command runner with fuzzy finder and preview window for make, pnpm - reddit](https://www.reddit.com/r/commandline/comments/1h7btkl/fzfmake_a_command_runner_with_fuzzy_finder_and/)\n- [Show HN: fzf-make – a command runner with a fuzzy finder for make, pnpm and yarn - Hacker News](https://news.ycombinator.com/item?id=42357587)\n- (Japanese)[[make,pnpm,yarnに対応]タスクランナーのコマンドをfuzzy finder形式で選択できるCLIツール fzf-makeの紹介](https://zenn.dev/kyu08/articles/974fd8bc25c303)\n- (Japanese)[Makefileに定義されたtargetをfzfで選択して実行するCLIツールをRustでつくった](https://blog.kyu08.com/posts/fzf-make)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkyu08%2Ffzf-make","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkyu08%2Ffzf-make","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkyu08%2Ffzf-make/lists"}