Docs

One command connects every editor and AI agent on your machine. Everything below is for when you want to know more.

Quick start

  1. 01

    Run the setup

    In any terminal. You need Node 18 or newer, or Bun.

    $ npx getstint
    $ bunx getstint
  2. 02

    Approve the sign-in

    A browser window opens with a code. Check it matches the one in your terminal and approve. On a machine without a browser, open the printed link on your phone.

  3. 03

    Pick what to track

    Stint lists the editors and agents it found. Everything ticked is connected, and your past agent sessions are imported so your history starts full.

Run it once per machine, not per project. Hooks and the extension work in every folder, and projects are named after the git repository they are in.

Editors

VS Code, Cursor, Windsurf, VSCodium, Kiro, Trae

Install the Stint extension from the Visual Studio Marketplace or Open VSX, or search “Stint” in the Extensions view. It signs in with the same browser approval and shares the key with the CLI, so if you already ran the setup there is nothing to do.

$ npx getstint install editors

JetBrains IDEs, Neovim, Zed, Xcode, Sublime Text, Emacs and more

Stint speaks the WakaTime API. Install the editor's WakaTime plugin, then point it at Stint. Your existing ~/.wakatime.cfg is backed up first.

$ npx getstint install wakatime

AI agents

Agent time is kept apart from yours unless you turn on Settings › Time › Count agent time. Token counts and cost appear under AI usage.

Claude Code

$ npx getstint install claude-code

Adds hooks to ~/.claude/settings.json.

Codex CLI

$ npx getstint install codex

Adds hooks to ~/.codex/hooks.json. Approve them once with /hooks inside Codex.

Gemini CLI

$ npx getstint install gemini-cli

Adds hooks to ~/.gemini/settings.json.

OpenCode

$ npx getstint install opencode

Adds a plugin to ~/.config/opencode/plugins.

Any other CLI agent

$ npx getstint run <agent>

Wraps the command and records the time it runs, for agents without hooks.

Commands

Every command also works with bunx getstint, or as stint after npm i -g getstint. The source is on GitHub.

npx getstint
Sign in, pick what to track and import past agent usage.
npx getstint status
Who you are, today's time and what is connected.
npx getstint install [ids] --all
Connect agents and editors: claude-code, codex, gemini-cli, opencode, editors, wakatime.
npx getstint uninstall [ids]
Disconnect them again. Only Stint's own hooks are removed.
npx getstint sync --days <n>
Import token usage from past agent sessions. Safe to run again.
npx getstint flush
Send anything waiting in the offline queue.
npx getstint doctor
Check that everything is wired up.
npx getstint login --no-browser
Sign in by printing the link instead of opening a browser.
npx getstint login --key <key>
Sign in with a key from Settings › API key, for CI and scripts.
npx getstint logout
Forget the key on this machine.

What is sent

Sent

  • Timestamps
  • The project's folder name and branch
  • The language and the file extension, such as *.ts
  • Whether you saved, and the editor or agent
  • For agents: the model and token counts

Never sent

  • File contents
  • File names and paths
  • Prompts and replies
  • Terminal commands and output
  • Keystrokes

Troubleshooting

Nothing shows up
Run npx getstint doctor. It checks the key, the server and every hook, and says what to fix.
Codex time is missing
Codex asks you to trust new hooks once. Open Codex, run /hooks and approve Stint's.
PowerShell blocks npx
Run it as npx.cmd getstint, or from Command Prompt. The VS Code extension already does this for you.
Do I run it in every project?
No. Hooks are installed once per machine and work in every folder. Projects are named after the git repository's folder.
Bring my WakaTime history
At wakatime.com/settings/account use Export my code stats and pick Heartbeats. When WakaTime emails the file, drop it into Settings › Data › Import. File paths never leave your browser, days Stint already tracked are kept, and Remove imported days undoes it.
Offline
Everything is queued in ~/.stint/queue.jsonl and sent the next time you are online.