Install
What it needs
- git, always.
- lefthook, for running hooks on demand and for
turning existing
.git/hooksinto alefthook.yml. Without it those two actions are not offered; commits still run whatever hooks git has. gh, optionally, as a place to find a GitHub token. See Configuration.
With Go
The shortest path, if you have Go installed:
go install github.com/jacob-delgado/workflow/cmd/workflow@latestThe binary lands in $(go env GOPATH)/bin, which needs to be on your PATH:
export PATH="$(go env GOPATH)/bin:$PATH"For a reproducible install, name the version instead of @latest:
go install github.com/jacob-delgado/workflow/cmd/workflow@v0.0.5@latest resolves to the newest release tag. Until the first tag exists, it
resolves to the most recent commit on main — so early installs are of
unreleased code, which is worth knowing while the configuration format is still
moving.
From a release
Release binaries are published for Apple Silicon macOS (workflow_darwin_arm64),
Linux on amd64 (workflow_linux_amd64), and Windows on amd64
(workflow_windows_amd64.exe). Download the one for your platform from the
releases page, along with
SHA256SUMS, then verify and install it:
sha256sum -c SHA256SUMS --ignore-missing
chmod +x workflow_darwin_arm64
mv workflow_darwin_arm64 /usr/local/bin/workflowEvery binary is built by GitHub Actions and carries a provenance attestation, so you can confirm it came from this repository’s CI rather than someone’s laptop:
gh attestation verify workflow_darwin_arm64 --repo jacob-delgado/workflowEach release also carries an SBOM, workflow.spdx.json, listing in SPDX format
the dependencies the binaries were built from — for checking them against
advisories or a policy.
From source
git clone https://github.com/jacob-delgado/workflow.git
cd workflow
mise trust && mise install
task build # builds bin/workflowThis needs mise, which provisions the pinned toolchain — Go, the linters, and everything else the build expects. See Development for what else is in there.
First run
workflow config init # writes .workflow.json here, readable only by you
workflow doctor # says what is still missingThen fill in the two tokens — Configuration
explains where to get them — and run workflow to open the TUI.
Using workflow walks through it.
Shell completion
workflow completion <shell> prints a completion script for bash, zsh,
fish or powershell. Source it from your shell’s startup, and <tab>
completes subcommands and flags — and workflow branch <tab> completes the keys
of the issues assigned to you.
# bash — for this shell now, or add to ~/.bashrc
source <(workflow completion bash)
# zsh — write it where your completions live
workflow completion zsh > "${fpath[1]}/_workflow"
# fish
workflow completion fish > ~/.config/fish/completions/workflow.fishRun workflow completion --help for your shell’s exact one-time setup.