From Bash Script to AI-Native Go CLI in One Session
TL;DR >> A single AI session turned `scribe.sh` into `scriby`: a Go CLI with deterministic output, runtime bootstrap, and cross-platform releases. <<
We’re living in the era of just-in-time software—tools built and shipped in a single AI coding session.
I had scribe.sh. It worked, mostly. But every time someone asked “how do I run this?”, I felt that familiar shame. You know the one.
So I opened a fresh AI session and said: let’s make this real.
# The Shift
AI collapsed the build cost for tooling.
The old path: keep script forever, maybe rewrite later, maybe never ship.
The new path: keep script as behavior spec, pair with AI, ship now.
In one session, we turned scribe.sh into scriby—a Go CLI with explicit commands, deterministic JSON output, proper exit codes, and a release pipeline.
That’s the difference between “a script on my machine” and “a tool agents and humans can trust.”
# One Binary, Done
The requirement: you install one binary. No README archaeology, no dependency hell.
scriby handles the rest:
- Detects your platform
- Downloads the
whisper-cliruntime from GitHub releases - Pulls the model you asked for
- Transcribes
ggerganov’s whisper.cpp did the heavy lifting. We wrapped it in something you can call without reading a wiki.
# The Gotcha
First release shipped. Users got:
Library not loaded: @rpath/libwhisper.1.dylib
In 2026, we’re still dealing with dylib issues. Feels like 2015.
The fix: bundle fully self-contained binaries. First-run just works now.
Scripts push this pain onto users. A proper CLI absorbs it.
# Usage
scriby run --model medium --language en ./meeting.wav
# The Takeaway
Look at your ~/bin. Find the script you keep copying between machines.
If it provides real value, you can now promote it to a proper tool in hours, not weeks. One focused session.
Go build it.