Scotty: A beautiful SSH task runner

speckx 52 points 26 comments March 31, 2026
freek.dev · View on Hacker News

Discussion Highlights (10 comments)

wackget

The most obvious question, I know, but... why not just use plain Bash?

qmr

> 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.

mariocesar

Feels like Ansible does the same thing, just with nicer output

oezi

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).

graybeardhacker

alias bones='scotty doctor'

mariocesar

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"

tkiolp4

Just use (the good parts of) Ansible

mikemasam

Doing DevOps everyday, i got to experiment with this idea, something minimal https://github.com/mikemasam/nyatictl

nodesocket

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

22c

I don't fully get the negativity here. This seems like a middle ground between quick'n'dirty bash script and a well-crafted Ansible playbook. Half the time if you want to do something quick'n'dirty in Ansible playbooks you need to use shell anyway.. I participated in a hackathon recently where my deployment process was just a bash script doing scp/ssh to a remote server and it feels like Scotty would fit well to that kind of use-case.

Semantic search powered by Rivestack pgvector
3,471 stories · 32,344 chunks indexed