Rewrite in Go: static binaries, zero runtime dependencies
Some checks failed
Release / build (push) Failing after 21s

Replace Node.js + Python codebase with three Go binaries:
- claude-statusline: CLI status bar for Claude Code
- claude-fetcher: standalone cron job for API usage
- claude-widget: system tray icon (fyne-io/systray + fogleman/gg)

All CGO-free for trivial cross-compilation. Add nfpm .deb packaging
with autostart and cron. CI pipeline produces Linux + Windows binaries,
.deb, .tar.gz, and .zip release assets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Axel Meyer
2026-02-26 15:27:10 +00:00
parent 59afabd65a
commit 7f17a40b7c
33 changed files with 1275 additions and 1512 deletions

View File

@@ -4,6 +4,29 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).
## [0.3.0] — 2026-02-26
Full rewrite from Node.js + Python to Go. Each platform gets a single static binary — no runtime dependencies.
### Changed
- **Complete Go rewrite** — replaced Node.js statusline/fetcher and Python widget with three Go binaries
- **Zero dependencies** — no Node.js, Python, pip, pystray, or system packages needed
- **Native packaging** — `.deb` for Debian/Ubuntu, `.zip` with static binaries for Windows, `.tar.gz` for Linux
- **CI/CD** — pipeline now cross-compiles Linux + Windows binaries and builds .deb via nfpm
### Added
- `claude-widget` — system tray icon (fyne-io/systray) with built-in fetcher and icon renderer (fogleman/gg)
- `claude-statusline` — CLI one-liner for Claude Code status bar (reads stdin + cache)
- `claude-fetcher` — standalone cron job (reads session key, fetches usage, writes cache)
- `.deb` package with autostart .desktop file and cron.d entry
- Windows cross-compilation with `-H=windowsgui` for console-free widget
### Removed
- `statusline.js`, `fetch-usage.js` (replaced by Go binaries)
- `claude_usage_widget/` Python package (replaced by Go binary)
- `install_wizard.py`, `install.sh`, `install.ps1` (replaced by .deb and .zip)
- `package.json`, `requirements.txt` (no runtime dependencies)
## [0.2.0] — 2026-02-26
First tagged release. Includes the CLI statusline, standalone usage fetcher, cross-platform desktop widget, and installer wizard.
@@ -21,4 +44,5 @@ First tagged release. Includes the CLI statusline, standalone usage fetcher, cro
- Tray icon visibility — switched to Claude orange with full opacity at larger size
- Block comment syntax error in cron example
[0.3.0]: https://git.davoryn.de/calic/claude-statusline/releases/tag/v0.3.0
[0.2.0]: https://git.davoryn.de/calic/claude-statusline/releases/tag/v0.2.0