2025-12-07 Trying out flow control binaries for FreeBSD
Here is the 'quick start' method as mentioned on their website.
curl -fsSL https://flow-control.dev/install | sh
Let's break down the options for curl (--help all):
-f - failfast
-s - silent mode
-S - show errors
-L - follow http redirects
Let's dive into its shell script execution assumption fun (or hell, I guess). First off, run it as a normal user.
$ curl -fsSL https://flow-control.dev/install | sh
sh: jq: not found
This machine doesn't have jq installed. oops...
Here is where I am supposed to say "just install jq" and be done with it (and find even more assumptions).
On second thought, let's make this more interesting (to me) and use FreeBSD standard tools and poke around at this install script and discover some things about it:
$ cd /tmp
$ fetch https://flow-control.dev/install
## check the top line (/bin/bash is a headache for FreeBSD)
$ head -n 1 install
#!/bin/sh
## any chance freebsd is mentioned here?
$ grep -i freebsd install
## nope
$ echo $?
1
## how about something related to os detection? bingo
$ grep 'os=' install
os="$(uname -s | tr '[:upper:]' '[:lower:]')"
## how often is it used?
$ grep '$os' install
if [ "$os" = "darwin" ]; then
filename="flow-$version-$os-$arch"
if [ "$os" = "windows" ]; then
## which lines ask for jq?
$ nl install | grep jq
139 version=$(curl -s "https://api.github.com/repos/$repo/releases/latest" | jq -r .tag_name)
141 version=$(curl -s https://codeberg.org/api/v1/repos/neurocyte/flow-nightly/releases/latest | jq -r .tag_name)
143 version=$(curl -s https://git.flow-control.dev/api/v1/repos/$repo/releases/latest | jq -r .tag_name)
tldr; it looks for a binary named flow that includes version, operating system and architecture in the filename.
Does it actually support FreeBSD binary downloads? (A question always worth asking (in 2025)). According to the latest release notes (as of this writing), yes!
We now produce binary release for FreeBSD, thanks to Zig 0.15 support for FreeBSD cross-compilation.
After a bit more finagling and downloading the binary manually. Here is a screenshot:

Oh interesting it supports vim and emacs keybindingmodes (for those old-skool trained fingers).
Time to play!