[HN Gopher] Scotty: A beautiful SSH task runner
___________________________________________________________________
Scotty: A beautiful SSH task runner
Author : speckx
Score : 40 points
Date : 2026-03-31 16:12 UTC (6 hours ago)
(HTM) web link (freek.dev)
(TXT) w3m dump (freek.dev)
| wackget wrote:
| The most obvious question, I know, but... why not just use plain
| Bash?
| mathfailure wrote:
| Scotty doesn't know...
| Piraty wrote:
| every sunday
| metalliqaz wrote:
| It's in the title: "a beautiful"
|
| It looks nicer.
|
| I use good old GNU Make.
| SoftTalker wrote:
| Or something like Ansible? Which is battle tested, provides
| idempotency for most things, and has a large library of tasks
| it knows how to do.
| ks2048 wrote:
| I've been writing my own "task runner" which seems to have some
| of the same features. I'd say some pros: A nice view of that
| has run (what has failed, etc.) - which otherwise could be
| drowned-out by stderr and stdout. Timing information for each
| "task". Can organize nested tasks. Save all in a structured
| log.
| qmr wrote:
| > It lets you define deploy scripts and other remote tasks
|
| Ok.
|
| > run them from your terminal and watch every step as it happens
|
| > and watch every step as it happens
|
| Yes, this is usually how scripts work.
|
| > When everything finishes, you get a summary table with timing
| for each step.
|
| > If a task fails, its output is shown and execution stops right
| there so you can investigate.
|
| Yes, I write my larger scripts to do such things...
|
| > Writing plain bash instead of Blade
|
| Yes, probably a good idea.
|
| Call me crazy (you're crazy!) but I'm not seeing the point.
| SrslyJosh wrote:
| This is where I stopped reading:
|
| > Scotty was built with the help of AI
|
| So it sounds like my heuristic worked. =)
| steve_adams_86 wrote:
| We need a term like potempkin-ware or something to express "I
| just built a 3 week project in 3 hours and, although it looks
| nice, there's probably a ton of problems with it because I
| couldn't possibly review everything Claude puked out
| properly, use at your own risk".
| giobox wrote:
| It also (criminally for an SSH tool) appears for now to only
| work when the server uses the SSH default port 22:
|
| https://github.com/spatie/scotty/issues/1
|
| Literally would be one of the first things I would have tested
| personally!
| mariocesar wrote:
| Feels like Ansible does the same thing, just with nicer output
| verdverm wrote:
| Feels like Ansible has more in the pros column than just nicer
| output, imo
| oezi wrote:
| They don't mention a twinkle that many task runners seem keen to
| omit: how do you handle things where there are human steps
| involved and not everything is automated? How do you track what
| has worked and what is still left to do if things go sidesways?
|
| I built baker (https://github.com/coezbek/baker) for this some
| time ago (pre-LLM mostly). It uses markdown with embedded bash
| and ruby commands to give you a checklist which is run both
| automated for commands or with human in the loop for things which
| aren't automated (like login to some admin panel and generate
| that key, copy it here).
|
| The checklist gets checked off both by human actions (you confirm
| that you did it) and automated e.g. success bash command runs. So
| you keep a markdown artifact on where you are in your project and
| can continue later.
|
| You can wrap commands to run via SSH (of course clunkier than
| what scotty here does, but you can select a port for SSH).
| h4ch1 wrote:
| This is such a neat idea. I am going to adopt this for my own
| workflows as well, right now I just write private blog entries
| for stuff I do that I may forget how to do later (provisioning
| a server, networking, caddy setup, etc etc)
|
| Thanks for sharing!
| graybeardhacker wrote:
| alias bones='scotty doctor'
| mariocesar wrote:
| I made something similar years ago, a long one-liner.
| tar cpf - provision/ | ssh ubuntu@192.168.1.99 "tar xpf - -C /tmp
| && cd /tmp/provision && bash /tmp/provision/bootstrap.sh && rm
| -rf /tmp/provision"
|
| Heres is the full use:
| https://gist.github.com/mariocesar/8e674ec40dad6b94114d2a44d...
|
| I named "Ansible for the Frugal"
| wang_li wrote:
| Ansible only exists because of an influx of people who don't
| know how to do this.
| icedchai wrote:
| Many years ago I wrote my own "cloud instance bootstrapper"
| that would pull a tar off of S3 based on EC2 instance tags /
| metadata, untar it, then run a script. I never got into
| Ansible and I hated having to rebuild AMIs for minor changes.
| tkiolp4 wrote:
| Just use (the good parts of) Ansible
| mikemasam wrote:
| Doing DevOps everyday, i got to experiment with this idea,
| something minimal
|
| https://github.com/mikemasam/nyatictl
| nodesocket wrote:
| I founded and developed a similar concept many years back of a
| web-based SSH dashboard and management console (Commando.io;
| which I sold). Now a days I use Semaphore UI [1] which uses
| Ansible playbooks under the hood in my homelab. Pretty happy with
| it, though setup and configuration did take a bit to get up and
| running.
|
| [1] https://github.com/semaphoreui/semaphore
| lofaszvanitt wrote:
| .
___________________________________________________________________
(page generated 2026-03-31 23:01 UTC)