Your year in code, beautifully visualized.
Generate a personalized "Spotify Wrapped"-style summary of your OpenCode usage.
Run directly without installing:
npx oc-wrapped # or bunx, or yarn/pnpm dlxnpm install -g oc-wrapped # or bun/yarn/pnpmThen run anywhere:
oc-wrapped| Option | Description |
|---|---|
--year, -y |
Generate wrapped for a specific year |
--help, -h |
Show help message |
--version, -v |
Show version number |
- Sessions, messages, tokens, projects, and streaks
- GitHub-style activity heatmap
- Top models and providers breakdown
- OpenCode Zen cost tracking
- Shareable PNG image
- Inline image display (Ghostty, Kitty, iTerm2, WezTerm, Konsole)
- Auto-copy to clipboard
The wrapped image displays natively in terminals that support inline images:
| Terminal | Protocol | Status |
|---|---|---|
| Ghostty | Kitty Graphics | ✅ Full support |
| Kitty | Kitty Graphics | ✅ Full support |
| WezTerm | Kitty + iTerm2 | ✅ Full support |
| iTerm2 | iTerm2 Inline | ✅ Full support |
| Konsole | Kitty Graphics | ✅ Full support |
| Other terminals | — |
The tool generates:
- Terminal Summary — Quick stats overview in your terminal
- PNG Image — A beautiful, shareable wrapped card saved to your home directory
- Clipboard — Automatically copies the image to your clipboard
OpenCode Wrapped reads data from your local OpenCode installation. It follows the XDG Base Directory Specification:
$XDG_DATA_HOME/opencode/ (usually ~/.local/share/opencode/)
No data is sent anywhere. Everything is processed locally.
# Run in development mode with hot reload
bun run dev# Build for all platforms
bun run buildReleases are automated via semantic-release. Merging PRs with conventional commits to main triggers a release.
- Runtime: Bun
- Image Generation: Satori + Resvg
- CLI UI: @clack/prompts
- Font: IBM Plex Mono
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE for details.
Made with ❤️ for the OpenCode community