Actual usage · not window focus

You call yourself AI-native.
We'll check the 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.

Cursor Claude Code Codex Kilo Kimi OpenCode

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 works
What it actually does

We count sessions. We ignore your vibes.

A 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.

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.

Does count

  • New turns and tool calls. You actually talked to the model.
  • Transcript appends. Claude Code did work, not just exist.
  • Composer writes. Cursor produced something, not a wallpaper.
  • Minutes across machines. Tied to an account, not a laptop.
Screenshot-first

The crop you post. The nudge you asked for.

Every surface is built to be screenshotted: giant streak, handle, minutes, shiporshame.sh. If it isn't croppable, we didn't ship it.

Streak dies in 3 hours

12 minutes today. You know what you did. Streak: 47.

OS notification · tone: tough

In-tool, if you mute the OS

Statusline helpers for Claude Code and Codex. Cursor extension in the status bar. Same copy. Nowhere to hide.

ShipOrShame · 12m today · streak 47 at risk · usual hour, empty log

Private analytics, public optional

Daily and weekly minutes per tool, on an identity that survives laptop two. Leaderboard, profile, and README badge stay off until you opt in.

You're the customer if

This is pointed at you. On purpose.

  • You have more AI CLIs than hobbies. Cursor, Claude Code, Codex, and two you forgot to uninstall.
  • You tweeted "agents ate my job" and then went to lunch with Slack open for three hours.
  • Your chat history is a novel and your git log is still wip.
  • You want a contribution graph for actually using the models, not for editing README.md.
  • You would screenshot a 47-day streak and you know it. That's the product.
  • You will set notifications to feral because gentle wouldn't work on you either.
How it works

Sign in. Install. Get ranked.

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.

01

Create the account

Magic link or X. Fifteen seconds. Handle is yours. This is what the board, the card, and the badge hang off.

02

Run the agent

shiporshame doctor tells you which tools we found. shiporshame serve watches logs in the background. One binary. Linux, macOS, Windows.

03

Pair and get roasted

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.

Install

One binary. Three OSes. Zero Electron.

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.

Monetization

Pro is for people who want to know which repo they were avoiding.

Pro — Coming Soon

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.

Free forever

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.

Fine print you will ask anyway

No, leaving Cursor open does not count.

Do you upload my prompts?

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.

Do I have to be on the leaderboard?

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.

What is a qualifying day?

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.

Is this affiliated with Cursor / Anthropic / OpenAI?

No. Unofficial. We read local files you already have. Same posture as every other log-based tooling in this ecosystem. See privacy and terms.