Does not count
- Cursor sitting in the dock. You left it open. Cute.
- Claude Code idle in tmux. A process is not a session.
- Forty-seven Composer tabs. Unsent drafts are not usage.
- "I use AI" in your bio. We don't scrape Twitter. We read logs.
Cursor sitting open is not usage. A Claude Code process idle in tmux is not usage. ShipOrShame reads the real sessions on your machine — new turns, tool calls, composer writes — then puts a streak on you that other people can see.
If that sentence made you flinch, you already know your minutes. Sign in before anything syncs. Aggregates only. Never prompts, never source.
This is not a token dashboard. We do not care what you spent. We care whether you actually opened the tool, sent the turn, and shipped — or just left Composer running overnight and called it a workflow.
How it worksA background agent watches the logs you already have. Window focus is a lie. Process-alive is a lie. New events in Cursor, Claude Code, Codex, Kilo, Kimi, and OpenCode are not.
Every surface is built to be screenshotted: giant streak, handle, minutes, shiporshame.sh. If it isn't croppable, we didn't ship it.
12 minutes today. You know what you did. Streak: 47.
Statusline helpers for Claude Code and Codex. Cursor extension in the status bar. Same copy. Nowhere to hide.
Daily and weekly minutes per tool, on an identity that survives laptop two. Leaderboard, profile, and README badge stay off until you opt in.
The agent will not ingest until you pair a device to an account. Streaks are an identity. Local-only would die the day you buy another laptop.
Magic link or X. Fifteen seconds. Handle is yours. This is what the board, the card, and the badge hang off.
shiporshame doctor tells you which tools we found. shiporshame serve watches logs in the background. One binary. Linux, macOS, Windows.
Paste a pairing code from settings. We upload aggregates only. Miss a qualifying day and the streak notices. Set tone to gentle, tough, or feral.
Reads known log paths only. Never walks your home directory. Never prompts, completions, diffs, or source.
go install origin.cursor.com/silverarkmedia/ShipOrShame/apps/agent@latest
Then shiporshame doctor to see what we found, and shiporshame serve for the local settings UI. Sign in on the site first. Pair the device. Then we start counting.
Deeper trends, per-project breakdowns, custom nudge intensity, private/team boards, extra streak recovery. Not required to get ranked. Not required to get roasted.
Core tracking, streaks, share cards, embeds, and the public leaderboard stay free. Forever. That's the growth loop. We are not stupid enough to paywall it.
Actual usage across supported tools. Server-side streaks. Freeze/recovery. OS + in-tool nudges. Screenshot cards. README badge. Opt-in leaderboard. That's the product. Pro is additive when it exists.
No. Aggregates only: tool, session timestamps, duration, event counts, optional hashed project id. Never prompts, completions, file contents, diffs, secrets, API keys, or raw transcripts.
No. Opt-in, default off. Private analytics still exist. The board, public profile, share card, and README badge only appear if you say so. Hiding is allowed. We will still nudge you.
Fifteen minutes of actual sessions. Not focus time. Miss it and the streak is at risk. Recovery is thirty minutes the day you break. Freezes exist. Don't build a personality around them.
No. Unofficial. We read local files you already have. Same posture as every other log-based tooling in this ecosystem. See privacy and terms.