alecrabbit / php-cli-snake
Lightweight cli spinner with zero dependencies
                                    Fund package maintenance!
                                                                            
                                                                                                                                        Patreon
                                                                                    
                                                                
Installs: 204 827
Dependents: 5
Suggesters: 0
Security: 0
Stars: 28
Watchers: 1
Forks: 2
Open Issues: 0
pkg:composer/alecrabbit/php-cli-snake
Requires
- php: ^7.3 || ^8.0
Requires (Dev)
- nunomaduro/collision: ^4.2
- phpunit/phpunit: ^9.5
- react/event-loop: ^1.1
- symfony/var-dumper: ^5.1
This package is auto-updated.
Last update: 2025-10-05 22:22:11 UTC
README
Lightweight cli snake spinner with zero dependencies
Zero dependencies
"require": {
  "php": "^7.3 || ^8.0"
}
Installation
$ composer require alecrabbit/php-cli-snake
Quickstart
require_once __DIR__ . '/../vendor/autoload.php'; use AlecRabbit\Snake\Spinner; use React\EventLoop\Factory; $s = new Spinner(); $loop = Factory::create(); $loop->addPeriodicTimer($s->interval(), static function () use ($s) { $s->spin(); }); $s->begin(); $loop->run(); $s->end();
Usage
See examples
Feature comparision
| Feature | php-console-spinner | php-cli-snake | 
|---|---|---|
| Lightweight | ❌ ️ | ✔️ | 
| Has zero dependencies | ❌ ️ | ✔️ | 
| Highly configurable | ✔️ ️ | ❌ | 
| Contains various spinner classes | ✔️ ️ | ❌ | 
| Progress indicator | ✔️ ️ | ❌ | 
| Messages indicator | ✔️ ️ | ❌ | 
| Color settings for spinner | ✔️ ️ | ❌ | 
| Color settings for messages | ✔️ ️ | ❌ | 
| Color settings for progress indicator | ✔️ ️ | ❌ | 
| Has disable()method | ✔️ ️ | ❌ | 
| Has enable()method | ✔️ ️ | ❌ | 
| Can show final message | ✔️ ️ | ❌ | 
| Cursor hide can be disabled | ✔️ ️ | ❌ | 
| Can use optional custom output | ✔️ ️ | ❌ | 
| Has erase()method | ✔️ ️ | ✔️ ️ | 
| Hides cursor with $spinner->begin() | ✔️ ️ | ✔️ ️ | 
| Shows cursor with $spinner->end() | ✔️ ️ | ✔️ ️ | 
| Supports piping | ✔️ ️ | ✔️ ️ | 
| Supports redirect | ✔️ ️ | ✔️ ️ | 
| Supports no colormode | ✔️ ️ | ✔️ ️ | 
| Supports 16 colormode | ✔️ ️ | ✔️ ️ | 
| Supports 256 colormode | ✔️ ️ | ✔️ ️ |