smallci
A minimal local CI runner with a live terminal UI.
Jobs run in parallel. Steps within a job run sequentially.


Purpose: concurrency, grouping, aggressive simplicity.
Install
Using Go:
go install github.com/hashmap-kz/smallci@latest
Using Homebrew:
brew tap hashmap-kz/homebrew-tap
brew install smallci
Usage
# Run with smallci.yaml in current directory
smallci
# Specify a config file
smallci run -c path/to/config.yaml
# Generate a default config and save it
smallci init go > smallci.yaml
Config
jobs:
- name: lint
steps:
- name: fmt
run: gofumpt -w .
- name: vet
run: go vet ./...
- name: test
steps:
- name: unit
run: go test -v -race ./...
- name: build
steps:
- name: build
run: go build -ldflags="-s -w" ./...
env:
CGO_ENABLED: "0"
GOOS: linux
Keybindings
| Key |
Action |
↑ / ↓ or k / j |
Navigate one row |
J / K |
Jump to next / previous job |
h / l |
Fold job / unfold job or enter its steps |
enter / space |
Toggle fold on selected job |
tab |
Switch focus (tree <-> logs) |
f |
Jump to first failure |
r |
Re-run selected job; re-run selected step if on a step |
R |
Reload all — re-run the full pipeline from scratch |
t |
Toggle timeline view (shows per-step bars) |
z |
Toggle full-width log (hide / show tree) |
/ |
Search in logs (type query, Enter to confirm) |
n / N |
Next / previous search match |
C |
Cycle color theme (13 built-in themes) |
H |
Help |
ctrl+c |
Quit |
License
MIT. See LICENSE for details.