Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>TICK for Claude Code & CodexNew to Visual Studio Code? Get it now.
TICK for Claude Code & Codex

TICK for Claude Code & Codex

TICK

| (0) | Free
One sponsored line in your editor status bar, for Claude Code and Codex. 70% of gross goes to you, paid in crypto from $5.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

TICK for VS Code

One short sponsored line in your editor's status bar. 70% of the gross goes to you, paid in crypto from $5. Nothing is patched, nothing is read, and you can turn it off in one command.

Works with Claude Code and Codex. Tested live in VS Code; it uses only the standard extension API, so Cursor, Windsurf, Kiro and VSCodium should behave the same, but we have not watched it run there yet. On Windows this extension is the client: the editor provides the runtime, so no shell script is needed.

Codex cannot show our line in its own terminal status line — that one is assembled from built-in elements and takes no external command. In the editor it does not have to: the editor draws the line, and all Codex has to say is whether its model is running.

What it does

  • Draws one line in the status bar using createStatusBarItem, the editor's own public API.
  • Learns when your agent is working from three hooks — UserPromptSubmit, Stop, SessionEnd — registered in ~/.claude/settings.json for Claude Code and ~/.codex/config.toml for Codex, after asking you first, and backing both files up before touching them.
  • Counts an impression as five seconds of display while the model is actually working. Same rule as the terminal client.
  • Makes the advertiser's link clickable in two places: the line itself, and a real link in the hover. The hover also says, in plain words, whether this window is counting right now and which agent is working.

What it does not do

  • It does not patch anything. No modified install, no weakened CSP, no injected code. If that ever looks necessary, the feature gets dropped instead.
  • It does not read your conversation. The hook payload hands us transcript_path; we never open it. The hook writes exactly three fields: a timestamp, an event name, and which agent it was (cc or cx). Nothing else.
  • It does not count twice. If a terminal status line is already counting a session, this extension shows the line and counts nothing. If you have several editor windows open, exactly one of them counts.
  • It does not talk to the network. The background daemon does that, and it was already doing it before this extension existed.
  • It does not get around Codex's hook review. Codex asks you to approve a newly added hook before it will run it, and there is a flag to skip that. We do not use it. Run /hooks inside Codex and trust ours once.
  • It does not let a creative become a link. The only live link in the hover is built from a URL we validated ourselves; text from the server is escaped and the hover is untrusted Markdown.

Commands

Command What it does
TICK: Set up in this editor Registers the activity hook (asks first)
TICK: Show status Hook, daemon, sessions counted here, balance
TICK: Open dashboard Copies your device token and opens the dashboard
TICK: Turn off in this editor Removes our hook and hides the line

TICK: Turn off restores ~/.claude/settings.json to exactly what it was: we remove only the entry we added, and the containers we created if they end up empty.

Requirements

  • Claude Code or Codex, in the editor or the terminal.
  • Node 20+ on PATH. The hook runs as node, and the daemon prefers it; if node is missing the extension falls back to the editor's own runtime for the daemon, but the hook still needs it.

Codex, one extra step

Codex will not run a hook it has not been shown. After setting up, run /hooks inside Codex and approve ours. Until you do, the line still shows but Codex turns are not counted — which is the correct way round: we would rather count nothing than count a guess.

Getting paid

TICK: Show status shows what you have earned and what you can withdraw. Earnings are held for 30 days before they become withdrawable, so that invalid traffic can be found before money leaves.

Once $5 is withdrawable, run TICK: Open dashboard. It puts your device token on the clipboard and opens the dashboard; paste it there, enter a wallet address and a network, and ask for the payout. Payouts are sent in crypto and marked with the transaction hash. The token is how the dashboard knows it is you, so treat it like a password; we never put it in a URL.

Your own line

With nothing sold for the slot, the line is yours. Put it in ~/.tick/config.json:

{ "own_line": "shipping the auth refactor" }

It shows only to you and is never billed to anyone. With no own line set and a balance above zero, the line shows your balance instead.

Building it

sh sync-vendor.sh      # copy daemon.mjs and hook.mjs into vendor/
npm run package        # writes dist/tick.vsix

vendor/ is generated and never committed — a stale copy of the daemon is a bug that would show up as money going missing.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft