PHPackages                             phadaphunk/scrippy - 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. phadaphunk/scrippy

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

phadaphunk/scrippy
==================

A one-off script manager for Laravel

2.0(1y ago)1015.3k↓11.1%MITPHPPHP ^8.2

Since Feb 1Pushed 1y ago1 watchersCompare

[ Source](https://github.com/phadaphunk/scrippy)[ Packagist](https://packagist.org/packages/phadaphunk/scrippy)[ RSS](/packages/phadaphunk-scrippy/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (10)Dependencies (3)Versions (13)Used By (0)

[![](https://private-user-images.githubusercontent.com/9636082/408715487-689beb98-7175-4d30-8235-d89c629c0496.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODU1NzI0NTcsIm5iZiI6MTc4NTU3MjE1NywicGF0aCI6Ii85NjM2MDgyLzQwODcxNTQ4Ny02ODliZWI5OC03MTc1LTRkMzAtODIzNS1kODljNjI5YzA0OTYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDgwMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA4MDFUMDgxNTU3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODYwM2Y0MjkxNGNkNjE4NmNlYjI1NDU3OTA0ZjdkMWFlM2ZiNzNjNjQxZGY1OWViM2I2NGM5YzQ0MGFjNmZlZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.MLwbpu5rYOXUpeVzkAOHDL_MuSafy7F7ll7EEix8BtI)](https://private-user-images.githubusercontent.com/9636082/408715487-689beb98-7175-4d30-8235-d89c629c0496.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODU1NzI0NTcsIm5iZiI6MTc4NTU3MjE1NywicGF0aCI6Ii85NjM2MDgyLzQwODcxNTQ4Ny02ODliZWI5OC03MTc1LTRkMzAtODIzNS1kODljNjI5YzA0OTYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDgwMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA4MDFUMDgxNTU3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODYwM2Y0MjkxNGNkNjE4NmNlYjI1NDU3OTA0ZjdkMWFlM2ZiNzNjNjQxZGY1OWViM2I2NGM5YzQ0MGFjNmZlZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.MLwbpu5rYOXUpeVzkAOHDL_MuSafy7F7ll7EEix8BtI)Scrippy - Laravel One-Off Script Manager
========================================

[](#scrippy---laravel-one-off-script-manager)

Scrippy is a Laravel package that helps you manage one-off scripts across multiple environments. Think of it as migrations, but for scripts that need to run exactly once (or a specific number of times) across your environments.

Basic use case
==============

[](#basic-use-case)

[![](https://private-user-images.githubusercontent.com/9636082/408773168-04d9bb01-1bf7-4025-91d4-433cce7903fb.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODU1NzI0NTcsIm5iZiI6MTc4NTU3MjE1NywicGF0aCI6Ii85NjM2MDgyLzQwODc3MzE2OC0wNGQ5YmIwMS0xYmY3LTQwMjUtOTFkNC00MzNjY2U3OTAzZmIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDgwMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA4MDFUMDgxNTU3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Y2NkMzc2ZGU1NGIwZTlhYmZlYWIyZWNmMTkzNzBiZjJjYmI3NjA3NTlhMDc3MWM2NmQ1Y2FlMGI1ZGVmYTcyZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.D8XDlZLXzEDXMVBGUHSy-pnBEkXJoHXHLpUoPBkOqXY)](https://private-user-images.githubusercontent.com/9636082/408773168-04d9bb01-1bf7-4025-91d4-433cce7903fb.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODU1NzI0NTcsIm5iZiI6MTc4NTU3MjE1NywicGF0aCI6Ii85NjM2MDgyLzQwODc3MzE2OC0wNGQ5YmIwMS0xYmY3LTQwMjUtOTFkNC00MzNjY2U3OTAzZmIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDgwMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA4MDFUMDgxNTU3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Y2NkMzc2ZGU1NGIwZTlhYmZlYWIyZWNmMTkzNzBiZjJjYmI3NjA3NTlhMDc3MWM2NmQ1Y2FlMGI1ZGVmYTcyZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.D8XDlZLXzEDXMVBGUHSy-pnBEkXJoHXHLpUoPBkOqXY)Features
--------

[](#features)

- 🚀 Environment-Aware: Scripts know on which environments they should run
- 🔄 Run Limiting: Limit how many times a script should run
- 📊 Execution Tracking: Keep a trace of when and where scripts ran
- ✔️ Proof Checking: Scripts can prove they ran properly
- 🤖 Auto-Cleanup: Automatically creates PRs to remove completed scripts
- 🔌 Easy Integration: Runs automatically after migrations
- ⚡ Async Execution: Run time-consuming scripts asynchronously via Laravel Queues

Installation
------------

[](#installation)

```
composer require phadaphunk/scrippy

```

Publish the config file
-----------------------

[](#publish-the-config-file)

From there you can control when Scrippy runs, and various options like wether it should cleanup or not. Make sure you check the `github.php` config file if you want automatic cleanups 🧹

```
php artisan vendor:publish

```

Migrate
-------

[](#migrate)

Scrippy adds a single table to keep track of script executions. You can opt-out of it in the configurations if you do not need to keep traces.

```
php artisan migrate

```

Create One-offs
---------------

[](#create-one-offs)

Just create your scripts and let Scrippy do the work

```
php artisan make:scrippy

```

This will create a new script file in `app/Scripts` (or your configured path).

### Defining a Script

[](#defining-a-script)

Scripts extend `Scrippy\Actions\BaseRun`. Here's a basic example:

```
