siga

skill
Guvenlik Denetimi
Basarisiz
Health Uyari
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 9 GitHub stars
Code Basarisiz
  • rm -rf — Recursive force deletion command in examples/_lib.sh
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Progress bars that keep filling after they're printed. Live bars in Claude Code for Ghostty, Kitty and herdr.

README.md
An old Cypriot man resting in the shade by a blue shutter, a coffee on the table and a cat asleep at his feet

siga

Progress bars that keep filling after they are printed.

Σιγά-σιγά (siga-siga) is how Cyprus says "slowly, slowly", and how it lives. Nobody
rushes the coffee, the afternoon or the man in the shade. Things get done in their own
time, and that's fine, as long as you can see them getting done.

siga brings that to your terminal. No message after message of
"still building… 40%… 70%…". Claude writes one bar, once, and it
fills in place. Glance over, see how far along it is, finish your coffee.


Claude builds bat (223 crates). One bar, written once, fills in place. (1.5× speed)

With siga: a bar under Claude's message fills while cargo compiles, then turns green

Claude writes ⟦bar⟧ once; a MessageDisplay hook swaps it for 20 cells on screen. A PreToolUse hook wraps the job; siga reads its progress (12/40, 45%, ETA) and repaints those same cells in place: OSC 4 and a GPU shader in Ghostty, a PNG placeholder in Kitty, relayed by herdr.

Install

In Claude Code 2.1.275+:

/plugin marketplace add souvlakeee/siga
/plugin install siga@siga
/reload-plugins
/siga:setup

No restart needed: /reload-plugins loads siga's hooks into the running session.

/siga:setup lists its changes (a font, a shader, a marked Ghostty config block, all
backed up) and asks first. Kitty needs nothing. Python 3.9+, standard library only.

Where it works

Terminal Claude Code OpenCode Codex
Ghostty 1.3+ ✅ TBD TBD
Kitty 0.49+ ✅ TBD TBD
herdr 0.9.5+ in Kitty ✅ TBD TBD
herdr 0.9.5+ in Ghostty ✅ TBD TBD
tmux, zellij TBD TBD TBD
WezTerm, iTerm2 TBD TBD TBD

✅ works · TBD not built yet.
Tested on macOS. Linux should work but is untested; Windows is TBD. Want your setup in
the table? Open an issue.

Progress sources

Build-like commands (npm, cargo, go, make, docker build, pytest, pip, uv, curl -o, wget,
rsync, git clone, ffmpeg, yt-dlp, …) are wrapped automatically; output and exit codes pass
through unchanged. Add patterns in ~/.config/siga/wrap.txt. For anything else:

Your command… Use
prints 12/40 or 45% siga run -- ./build.sh
draws its bar only on a terminal siga run --pty -- cargo build
uses tqdm, rich, click, cli-progress siga run --shim -- python train.py
prints named steps siga run --step '^==> ' -- ./deploy.sh
prints nothing useful siga run -- make (learns the duration)
is your own script siga set 3/10, then siga done / siga fail
must stay in a pipe set -o pipefail; tool 2>&1 | siga pipe; siga end $?
30 tested examples: shell tools, build tools, Python, Node, Go, Rust, OSC 9;4
Family Tool Command Example
Shell tools curl siga run -- curl --limit-rate 8M -o big.bin "$URL" curl.sh
Shell tools curl -# siga run -- curl -# --limit-rate 8M -o big.bin "$URL" curl_bar.sh
Shell tools ffmpeg siga run -- ffmpeg -y -re -i in.mp4 -c:v libx264 -preset ultrafast out.mp4 ffmpeg.sh
Shell tools git clone siga run -- git clone --progress "file://$WORK/origin.git" copy git.sh
Shell tools any command, piped build 2>&1 | siga pipe; siga end $? pipe_anything.sh
Shell tools a failing piped command ends red, with its own exit code build 2>&1 | siga pipe; siga end $? pipe_fail.sh
Shell tools pv siga run -- sh -c 'pv -f -i 0.5 -L 8m f1.bin > copy.bin' pv.sh
Shell tools rsync siga run -- rsync -a --info=progress2 --bwlimit=8m src/ dst/ rsync.sh
Shell tools a custom script with named steps siga run --step '^==> ' --steps 5 -- ./deploy.sh steps.sh
Shell tools wget siga run -- wget --limit-rate=8m --progress=bar:force -O big.bin "$URL" wget.sh
Shell tools yt-dlp siga run -- yt-dlp --newline --limit-rate 8M -o video.bin "$URL" yt-dlp.sh
Build tools cargo build siga run --pty -- cargo build cargo.sh
Build tools docker build siga run -- docker build --progress=plain --no-cache -t siga-demo . docker.sh
Build tools make siga run -- make make_eta.sh
Build tools pytest -v siga run -- pytest -v pytest.sh
Python libraries alive-progress siga run --pty -- python alive_demo.py alive.sh
Python libraries click.progressbar siga run --pty -- python click_demo.py click.sh
Python libraries rich siga run --pty -- python rich_demo.py rich.sh
Python libraries rich, exact values via --shim siga run --shim -- python rich_demo.py rich_shim.sh
Python libraries tqdm siga run -- python tqdm_demo.py tqdm.sh
Node libraries cli-progress siga run --pty -- node cli_progress_demo.js cli_progress.sh
Node libraries cli-progress, exact values via --shim siga run --pty --shim -- node cli_progress_demo.js cli_progress_shim.sh
Node libraries progress siga run --pty -- node progress_demo.js progress.sh
Go libraries vbauerster/mpb siga run --pty -- ./demo mpb.sh
Go libraries cheggaaa/pb siga run --pty -- ./demo pb.sh
Go libraries schollz/progressbar siga run --pty -- ./demo schollz.sh
Rust libraries indicatif siga run --pty -- ./target/debug/indicatif-demo indicatif.sh
OSC 9;4 emitters cargo's own OSC 9;4 CARGO_TERM_PROGRESS_TERM_INTEGRATION=true siga run --pty -- cargo build cargo.sh
OSC 9;4 emitters OSC 9;4 from Python siga run -- python3 job.py python.sh
OSC 9;4 emitters OSC 9;4 from a shell script work | siga pipe; siga end $? shell.sh

bin/siga selftest runs all of them offline.

Without Claude Code: git clone https://github.com/souvlakeee/siga && cd siga, then
bin/siga setup --apply and bin/siga run -- cargo build.

How it works

  • Ghostty: the bar is private-use glyphs in color keys; a shader repaints them from a
    value siga sends as an OSC 4 palette color.
  • Kitty: the bar is an image placeholder; siga re-uploads the image.
  • Claude Code: hooks swap ⟦bar⟧ for the glyphs on screen, wrap build commands, and
    teach Claude the one-bar-per-job rule.

Details: docs/HOW_IT_WORKS.md.

Limitations

  • One bar per terminal window; parallel jobs share it.
  • siga off / siga on pause the hooks; siga setup --remove uninstalls.

Thanks

ghostty-blackhole (shader input via a color
escape), Kitty's Unicode placeholders,
Fira Code (the first progress glyphs in a font).

License

MIT

Yorumlar (0)

Sonuc bulunamadi