PHPackages                             rcpassos/artisanfuzzy - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. rcpassos/artisanfuzzy

ActiveLibrary[CLI &amp; Console](/categories/cli)

rcpassos/artisanfuzzy
=====================

A zero-dependency, pure-PHP fuzzy search interface for Laravel's Artisan CLI. Instantly find routes, commands, and configs — no fzf required.

v1.0.0(7mo ago)00MITPHPPHP ^8.3CI passing

Since Oct 13Pushed 7mo agoCompare

[ Source](https://github.com/rcpassos/artisanfuzzy)[ Packagist](https://packagist.org/packages/rcpassos/artisanfuzzy)[ RSS](/packages/rcpassos-artisanfuzzy/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (8)Versions (2)Used By (0)

🧠 ArtisanFuzzy
==============

[](#-artisanfuzzy)

> 🔍 A zero-dependency, pure-PHP fuzzy search interface for Laravel’s Artisan CLI.
> Instantly find routes, commands, and config keys — no `fzf` required.

[![Latest Version](https://camo.githubusercontent.com/6b19258b3fe26b26ed6261fad4f896edc14982a15a7aafaae8d2a94ec71691f8/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f7263706173736f732f6172746973616e66757a7a793f7374796c653d666c61742d737175617265)](https://github.com/rcpassos/artisanfuzzy/releases)[![License](https://camo.githubusercontent.com/5425bf8fdd7070b60c8c5e45e0d256a9624ba285e7149c97295c7e4092e0ca90/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7263706173736f732f6172746973616e66757a7a793f7374796c653d666c61742d737175617265)](LICENSE)[![PHP Version](https://camo.githubusercontent.com/2223b1e38c87c8e1f05baa54ef6bcc97b6de8519e074742376390fa632e05e67/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e332b2d626c75653f7374796c653d666c61742d737175617265)](https://camo.githubusercontent.com/2223b1e38c87c8e1f05baa54ef6bcc97b6de8519e074742376390fa632e05e67/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e332b2d626c75653f7374796c653d666c61742d737175617265)[![Laravel Version](https://camo.githubusercontent.com/67a97aeba8b47e4bacd11e9c030ad52e401a5f93e9d63b121b505e66106bc0f1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31322d7265643f7374796c653d666c61742d737175617265)](https://camo.githubusercontent.com/67a97aeba8b47e4bacd11e9c030ad52e401a5f93e9d63b121b505e66106bc0f1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31322d7265643f7374796c653d666c61742d737175617265)[![Tests](https://github.com/rcpassos/artisanfuzzy/actions/workflows/ci.yml/badge.svg)](https://github.com/rcpassos/artisanfuzzy/actions)

---

✨ Overview
----------

[](#-overview)

**ArtisanFuzzy** is a lightweight Laravel package that brings **interactive fuzzy search** to your Artisan CLI —
built entirely in **pure PHP 8.3+**, with **no external binaries** or dependencies.

Quickly search through large lists of routes, commands, or config keys without the need for `grep` or `fzf`.
It's fast, portable, and works anywhere Laravel does — macOS, Linux, or Windows.

Requires **Laravel 12.x** and **PHP 8.3+**.

---

🚀 Installation
--------------

[](#-installation)

Install via Composer:

```
composer require rcpassos/artisanfuzzy
```

Laravel will auto-discover the service provider. If you prefer manual registration, add this to your `config/app.php`:

```
'providers' => [
    App\Providers\AppServiceProvider::class,
    Rcpassos\ArtisanFuzzy\ArtisanFuzzyServiceProvider::class,
],
```

---

⚡ Usage
-------

[](#-usage)

### 🔹 Find a Route

[](#-find-a-route)

```
php artisan route:find login
```

Interactively fuzzy-search your application’s routes.

### 🔹 Find an Artisan Command

[](#-find-an-artisan-command)

```
php artisan command:find queue
```

### 🔹 Find a Config Key

[](#-find-a-config-key)

```
php artisan config:find app
```

Each command supports:

```
--pattern=  Filter non-interactively (CI-safe)
--limit=       Limit the number of matches (default: 30)
--json              Output the result in JSON

```

---

💡 How It Works
--------------

[](#-how-it-works)

ArtisanFuzzy provides a **pure PHP terminal interface**:

- Uses built-in `fgets()` for interactive input
- Matches strings using weighted fuzzy ranking (`similar_text()` + substring boost)
- Auto-detects TTY vs non-TTY environments
- Displays colorized results using ANSI codes (auto-disabled on Windows)

No binaries, no shell scripts — just Laravel and PHP.

---

🧩 Supported Commands
--------------------

[](#-supported-commands)

CommandDescription`route:find`Search registered routes`command:find`Search Artisan commands`config:find`Search config keys and values---

🧪 Testing
---------

[](#-testing)

To run the package tests:

```
composer install
composer test
```

You can also test it inside a local Laravel app using a path repository:

```
"repositories": [
  { "type": "path", "url": "../artisanfuzzy" }
]
```

Then run:

```
composer require rcpassos/artisanfuzzy:@dev
php artisan route:find
```

---

🛠️ Requirements
---------------

[](#️-requirements)

- PHP **8.3+**
- Laravel **12.x**
- Works on macOS, Linux, and Windows terminals

---

🧭 Roadmap
---------

[](#-roadmap)

- Pagination (`:next`, `:prev` in picker)
- Extend fuzzy search to migrations and events
- Custom scoring algorithm plugin support

---

❤️ Contributing
---------------

[](#️-contributing)

Contributions are welcome! If you find a bug or have an idea, open an [issue](https://github.com/rcpassos/artisanfuzzy/issues) or PR.

To contribute:

```
git clone https://github.com/rcpassos/artisanfuzzy.git
composer install
composer test
```

---

📜 License
---------

[](#-license)

ArtisanFuzzy is open-sourced software licensed under the [MIT license](LICENSE).

---

🌟 Acknowledgements
------------------

[](#-acknowledgements)

Inspired by the elegance of Laravel’s Artisan CLI and the simplicity of fuzzy searching. Built with ❤️ for the Laravel community.

---

> *“Make the command line delightful again.”* – ArtisanFuzzy ⚡

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance64

Regular maintenance activity

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

217d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f29553bcd545deeae2568ec206e6f3faa2373dc09c7f11b724f00e01e79170de?d=identicon)[rcpassos](/maintainers/rcpassos)

---

Top Contributors

[![rcpassos](https://avatars.githubusercontent.com/u/14361293?v=4)](https://github.com/rcpassos "rcpassos (17 commits)")

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/rcpassos-artisanfuzzy/health.svg)

```
[![Health](https://phpackages.com/badges/rcpassos-artisanfuzzy/health.svg)](https://phpackages.com/packages/rcpassos-artisanfuzzy)
```

###  Alternatives

[nunomaduro/laravel-console-menu

Laravel Console Menu is an output method for your Laravel/Laravel Zero commands.

815412.0k48](/packages/nunomaduro-laravel-console-menu)[fumeapp/modeltyper

Generate TypeScript interfaces from Laravel Models

196277.9k](/packages/fumeapp-modeltyper)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
