spatie/scotty
Scotty is a beautiful SSH task runner for executing scripted tasks on remote servers. Define tasks in a Scotty.sh file (bash with annotations), run them with clear output, and use it as a drop-in, Envoy-compatible alternative for deploys and ops.
scotty run deploy
scotty run cloneRepository
Scotty shows each task as it runs, with a step counter, elapsed time, and the command that's currently executing:

If a task fails, Scotty shows the output and stops. You'll immediately see what went wrong:

Want to see what would happen without actually running anything? Use --pretend:
scotty run deploy --pretend
This shows the SSH commands Scotty would execute, without connecting to any server.
By default, Scotty stops at the first failed task. If you want it to keep going regardless:
scotty run deploy --continue
If you don't need to see all the output and just want to know whether things passed:
scotty run deploy --summary
This hides task output and only shows results. Failed tasks always show their output, even in summary mode.
You can pass custom variables from the command line:
scotty run deploy --branch=develop
In the Scotty.sh format, --branch=develop becomes $BRANCH. The key is uppercased and dashes become underscores.
In the Blade format, it becomes available as $branch.
Sometimes you want to take a quick look at the server halfway through a deploy, or you just want to slow things down and watch each step more carefully. Press p at any point during execution. Scotty finishes the current task and then waits.

Press Enter to continue with the next task, or Ctrl+C if you want to stop entirely.
You can press Ctrl+C at any time to cancel. Scotty restores the terminal and exits cleanly. Everything that was already output stays in your scrollback, so you can scroll up to see what happened.
To see all available tasks and macros in your file:
scotty tasks

You can quickly SSH into any server defined in your Scotty file:
scotty ssh
scotty ssh remote
If only one server is defined, Scotty connects to it directly. With multiple servers, you'll get a selection prompt.
scotty init
This prompts you to choose a format (bash or Blade) and a server host, then creates the file for you.
How can I help you explore Laravel packages today?