Automation

gini: a no-fuss CLI for editing INI files

A small Go utility to read, write and delete keys in INI files from shell scripts

INI files refuse to die. Samba, PHP, Git, MySQL, half of /etc — they’re everywhere, and editing them from a shell script is annoying enough that people reach for sed, regret it, and then write a much worse bug. gini is the tiny tool I wrote so I could stop doing that.

Tools golang ini cli

RunRun: a small web UI for running shell commands on a server

A self-hostable Go web app that schedules, executes and live-streams the output of shell tasks — with auth, CSRF and rate limiting baked in

I have a recurring problem: I want to give someone (sometimes future-me) a button to push that runs a specific shell command on a server. A backup, a deployment dry-run, a cache flush, a database snapshot. Cron isn’t quite right because the trigger isn’t time-based. SSH is fine but assumes the person has SSH and remembers the exact command. A bespoke Flask app is too much yak-shaving.

RunRun is my attempt at the smallest reasonable thing that fills that gap: a Go web app where you declare tasks in YAML, log in, click “run”, and watch the output stream live in your browser.

Tools golang automation self-hosted