A Hack Club themed system fetch with live Hackatime stats. Shows your system info next to a customizable Hack Club logo, plus your today/weekly hours, top project, top language, streak, and more. All from your terminal, in one keystroke.
hackfetch was built for Stardance, Hack Club's worldwide hackathon. It runs as a single Go binary with zero runtime dependencies, reads your existing ~/.wakatime.cfg, and pulls live stats from Hackatime every time you run it.
- Why hackfetch
- What it does
- Gallery
- Architecture
- Getting started
- Usage
- Logos and color schemes
- Custom themes
- Live mode and SVG export
- Configuration
- What you get from Hackatime
- Repository layout
- Status
- License & use
Most "fetch" tools (neofetch, fastfetch, and the rest) show the same things: OS, kernel, CPU, memory, uptime. They are great, and also they do not know anything about what you are actually building.
Hack Club runs its own coding-time tracker, Hackatime, a WakaTime-compatible backend that aggregates your real coding stats: today's hours, weekly total, top project, current streak. Those are the numbers worth caring about when you open a terminal.
hackfetch is what happens when you cross a fetch tool with that data and then style the whole thing in Hack Club colors and ASCII art.
- Built for the Hack Club crowd. Six built-in Hack Club logos, themed gradients, Pride flag palettes, and the Stardance countdown baked in.
- Zero runtime dependencies. Pure Go, single binary. Works on minimal Linux containers, fresh macOS installs, and stock Windows alike.
- Live updating. Open it with
-watchand your stats refresh in place while you code.
hackfetch runs as one Go binary that pulls four things together at once:
- System fetch. OS, hostname, user, shell, terminal, editor. The classic neofetch-style snapshot of the machine you are on, rendered next to a Hack Club logo.
- Hackatime stats. Today's coding time, 7-day total, current streak, top project, most-used language, top editor, top category. Pulled live from your Hackatime account every time you run the command.
- Live mode.
hackfetch -watchkeeps the fetch on screen and redraws every 30 seconds. Your hours tick up as you code, in the corner of your terminal. - SVG export.
hackfetch -export card.svgsaves the current fetch as a shareable image with all colors preserved. Drop it into a devlog, a Slack channel, or a tweet.
All rendering happens locally in your terminal. No browser, no dashboard, no extra processes.
Default Hack Club logo, forest gradient.
Trans flag colors on the default Hack Club logo.
The rocket logo in default colors.
The flag logo in sunset gradient.
The bot logo on a matrix-green scheme.
The Stardance logo in ocean gradient.
terminal ──► hackfetch (single Go binary)
│
├──► local system info (os, host, user, shell, terminal, editor)
│
├──► Hackatime API (today, weekly, streak, top project, top lang)
│ │
│ └──► smart fallbacks: when Hackatime says "unknown" for
│ language, infer from heartbeat file
│ extensions and label as (inferred)
│
├──► layout engine (pads each logo row, aligns info column)
│
└──► render targets (ANSI 256-color terminal, or SVG card)
A single binary, one network round-trip per refresh, no daemon. The same render pipeline drives both the one-shot fetch and the -watch live mode; the SVG exporter shares the layout engine and re-emits each styled glyph as an <tspan> with a matching hex fill.
The fastest way on any Linux or macOS:
curl -fsSL https://raw.githubusercontent.com/xerneas3318/hackfetch/main/install.sh | shThe installer auto-detects your OS, CPU architecture, and package manager (apt, dnf, yum, pacman, zypper, apk, or brew), installs any missing prereqs (curl, tar, xdg-utils), then drops the right binary into /usr/local/bin (or ~/.local/bin if it can't sudo). POSIX sh compatible, so it also works on Alpine and minimal containers.
On Windows (PowerShell):
irm https://raw.githubusercontent.com/xerneas3318/hackfetch/main/install.ps1 | iexInstalls hackfetch.exe to %LOCALAPPDATA%\Programs\hackfetch and adds that folder to your user PATH.
Alternative install paths:
# Homebrew (macOS, Linuxbrew)
brew tap xerneas3318/tap
brew install hackfetch
# From source with Go
go install github.com/xerneas3318/hackfetch@latesthackfetch reads your API key from ~/.wakatime.cfg. If you already use Hackatime or WakaTime, you're done.
If not, the easiest path is Hack Club's official setup:
curl -fsSL https://raw.githubusercontent.com/hackclub/hackatime-setup/main/install.sh | bashOr run hackfetch -setup and it will walk you through the auth page at hackatime.hackclub.com/my/wakatime_setup and wait for the config file to land.
hackfetch # defaults
hackfetch stardance rainbow # positional shorthand: <logo> <color>
hackfetch logo flag color pride # keyword form
hackfetch -logo orpheus -color ocean # flag form
hackfetch -v # verbose: + top editor, top category
hackfetch -watch # live mode, refreshes every 30s
hackfetch -export card.svg # save the fetch as a shareable SVG
hackfetch -list # show all logos and colors
hackfetch -h # help
hackfetch -setup # (re-)configure Hackatime
hackfetch -no-net # offline mode (skip API calls)Flags go before positional args. hackfetch -export card.svg stardance pride works; hackfetch stardance pride -export card.svg does not.
| Available | |
|---|---|
| Logos | hackclub, stardance, flag, orpheus, bot, rocket |
| Solid colors | hackclub, orange, mono, mute, matrix |
| Gradients | rainbow, sunset, ocean, forest, stardance |
| Pride flags | pride, trans, bi, pan |
| Special | auto (defaults to pride in June, hackclub otherwise) |
Run hackfetch -list for the full set.
Drop your own color schemes in ~/.config/hackfetch/colors.json:
{
"schemes": {
"vaporwave": {
"colors": [199, 165, 99, 51],
"mode": "per-line"
},
"fire": {
"colors": [196, 202, 208, 214, 220, 226],
"mode": "per-char"
}
}
}mode is one of single, per-line, or per-char. colors are ANSI 256 color codes. Your themes override built-ins of the same name. Then run:
hackfetch -color vaporwaveLive mode (-watch). Re-fetches your Hackatime stats every 30 seconds and redraws in place. Today's hours tick up as you code. Ctrl+C to quit.
hackfetch -watch
hackfetch rocket -watch -color sunsetSVG export (-export). Saves the current fetch as a shareable SVG card with rounded corners and a monospace font. Open it in any browser, or convert to PNG with rsvg-convert.
hackfetch -export card.svg
hackfetch -export card.svg stardance pride
hackfetch -export card.svg -logo orpheus -color rainbowhackfetch reads these environment variables. Add them to your ~/.zshrc or ~/.bashrc to set defaults:
| Variable | Default | Purpose |
|---|---|---|
HACKFETCH_LOGO |
hackclub |
Default logo (see -list). |
HACKFETCH_COLOR |
hackclub |
Default color scheme. |
HACKFETCH_VERBOSE |
unset | Set to 1 to enable -v output by default. |
HACKFETCH_STARDUST |
unset | Your stardust count. Shown next to the ✦ field. |
HACKFETCH_INSTALL_DIR |
(auto) | Override the install directory used by install.sh. |
WAKATIME_HOME |
$HOME |
Where to look for .wakatime.cfg. |
When your ~/.wakatime.cfg points at a working Hackatime account, hackfetch fetches and shows:
| Field | Meaning |
|---|---|
| today | Hours coded today. |
| 7-day total | Hours coded over the past week. |
| streak | Consecutive days with activity. |
| stardust ✦ | Your stardust count (set via HACKFETCH_STARDUST=N). |
| stardance | Days left until Stardance ends (auto-hides after Sep 30, 2026). |
| slack | Your Hack Club / Hackatime handle. |
| top project | Most-worked project (today and weekly). |
| top language | Most-used language. When Hackatime reports unknown, hackfetch infers from heartbeat file extensions and labels it (inferred). |
| machines | When you've coded on more than one machine in the past 7 days. |
| top editor | (verbose) Most-used editor. Enable with -v. |
| top category | (verbose) coding / debugging / building / etc. Enable with -v. |
| Path | Contents |
|---|---|
main.go |
The whole CLI: logos, color schemes, layout engine, Hackatime client, SVG export, watch mode. |
install.sh |
POSIX shell installer for Linux and macOS. Auto-installs prereqs via the system package manager. |
install.ps1 |
PowerShell installer for Windows (10/11, amd64 and arm64). |
Formula/hackfetch.rb |
Homebrew formula (used by the xerneas3318/tap tap). |
.github/workflows/release.yml |
CI: builds 6 cross-platform binaries on every tag and publishes the GitHub release. |
Images/ |
Gallery screenshots used in this README. |
v1.5.0 is the current release: Linux, macOS, and Windows binaries on every tag, POSIX-compatible installer that auto-installs prereqs across seven package managers, a PowerShell installer for Windows, six built-in Hack Club logos, live -watch mode, SVG card export, custom color themes, and Hackatime integration with smart language inference.
Related Hack Club tooling and inspirations:
- Stardance, the Hack Club hackathon hackfetch was built for.
- Hackatime, Hack Club's WakaTime-compatible coding-time backend.
- Hack Club, the worldwide community of teen hackers.
- nFetch, the dependency-free Go system-fetch that inspired the architecture here.
- neofetch, the original genre-defining fetch.
hackfetch is licensed under the PolyForm Noncommercial License 1.0.0.
You can: fork it, modify it, ship your own variant, customize the logos and color schemes, run it on your own machines, and use it for personal projects, school projects, club projects, hackathons, or any other non-commercial purpose.
You can't: sell it, ship it as part of a paid product, host it as a paid service, or otherwise use it commercially.
If you build something cool with it, drop a link in #code on the Hack Club Slack.
Maintained by @xerneas3318.





