FAQ
Why macOS only?
Section titled “Why macOS only?”The shell is Tauri 2 (cross-platform in principle), but stint leans hard
on macOS-specific bits: Keychain for secret storage, menu-bar tray, dock
visibility transitions, native macOS menus. Porting to Linux or Windows
would mean either dropping those features or building per-platform
equivalents (secret-service on Linux, wincred on Windows, etc.).
No fundamental blocker — just a scope decision. A Linux build is plausibly Phase 8+ work if there’s demand.
Does stint work offline?
Section titled “Does stint work offline?”Yes, fully. Every mutation persists to a local SQLite database immediately. When you go online, the sync queue drains and Solidtime catches up.
The popover and main window work normally offline. The only thing that fails is calendar refresh (Google API call) and Solidtime sync — both queue and retry transparently when connectivity returns.
Can I use stint without Solidtime?
Section titled “Can I use stint without Solidtime?”Not currently. stint is designed around Solidtime as the source of truth for projects, organizations, and historical entries. A standalone mode (local-only, no remote sync) is on the roadmap but unscheduled.
If you want a self-hosted backend without standing up Solidtime, Solidtime has a Docker setup that runs on ~512MB of RAM.
How is my data stored?
Section titled “How is my data stored?”| Where | What |
|---|---|
~/Library/Application Support/stint/stint.db | SQLite database — time entries, projects, calendar accounts, sync queue |
macOS Keychain (tech.reyem.stint.* service prefix) | Solidtime PAT/OAuth tokens, calendar OAuth tokens (per account) |
~/Library/Logs/tech.reyem.stint/stint.log.<date> | Application logs, daily rotation, 14-file cap |
Everything is local. No cloud storage, no third-party backup.
Does stint phone home?
Section titled “Does stint phone home?”No analytics, no telemetry. The only outbound traffic stint generates is:
- Solidtime API calls — to your Solidtime instance, for sync.
- Calendar API calls — to Google (if you connected a calendar).
- Auto-update check — once every 24 hours, to
github.com/reyemtech/stint/releases/latest/download/latest.json(a static JSON manifest, no user identifier). stint updatefor standalone CLI installs — same endpoint, on demand.
You can disable auto-update under Settings → Updates (sets the polling interval effectively to “never until you click Check now”).
Where does the CLI binary live after brew install?
Section titled “Where does the CLI binary live after brew install?”Apple Silicon: /opt/homebrew/bin/stint → symlink into
/Applications/Stint.app/Contents/MacOS/stint.
Intel Mac: /usr/local/bin/stint → same symlink target.
The CLI binary inside the .app bundle is the same one shipped via
curl | sh; the only difference is the install path.
Can I use brew install + curl | sh together?
Section titled “Can I use brew install + curl | sh together?”Yes — they coexist at different paths. brew install symlinks to
/opt/homebrew/bin/stint; the standalone installer writes to
/usr/local/bin/stint or ~/.local/bin/stint. Whichever is earlier in
your PATH wins when you type stint.
stint update on the brew-installed binary won’t try to overwrite the
brew symlink; it detects the .app-bundled install and tells you to use
brew upgrade --cask stint instead.
How do I update stint?
Section titled “How do I update stint?”Three paths, each works:
- In-app: Settings → Updates → Install. Auto-checked every 24h.
- Brew:
brew upgrade --cask stint. Picks up the latest cask version. - Standalone CLI:
stint update. Self-replaces the binary atomically.
All three converge on the same release artifacts.
Can I trigger stint from a shell script, Raycast, or Alfred?
Section titled “Can I trigger stint from a shell script, Raycast, or Alfred?”Yes. Every CLI verb accepts a global --json flag for structured
output:
stint --json currentstint --json start "writing tests" --project p-uuidstint --json today | jq '.[] | .description'For deep links from Raycast / Alfred / Shortcuts, use the stint://
URL scheme:
open "stint://start?description=writing%20tests"open "stint://stop"open "stint://current"See Scripting stint and the CLI reference.
How do I drive stint from Claude, Codex, or OpenCode?
Section titled “How do I drive stint from Claude, Codex, or OpenCode?”stint skill install # interactive pickerstint skill install claude # explicitThe installer registers stint’s MCP server with the harness and lays
down a SKILL.md / rules fragment so the agent knows when and how to
call the eight tools (start, stop, current, list_entries,
list_projects, list_tasks, update_entry, delete_entry). See
AI integration for the full integration story.
Is the local HTTP API a privacy concern?
Section titled “Is the local HTTP API a privacy concern?”The HTTP API is off by default. When you enable it
(stint config set api.enabled true), the server binds to
127.0.0.1 on an ephemeral port — loopback only, never reachable from
another machine on the network. It runs inside the Stint.app process,
so quitting the app closes the listener. There’s no separate daemon
and no token (localhost is the trust boundary).
Can I deep-link into stint?
Section titled “Can I deep-link into stint?”Yes. Stint.app registers the stint:// URL scheme on macOS:
| URL | Effect |
|---|---|
stint://start?description=…&project=…&billable=true | Start a timer |
stint://stop | Stop the running timer |
stint://current | Focus the current-entry view |
stint://entry/<local-uuid> | Open an entry in the main window |
stint://project/<solidtime-id> | Open the Today view focused on a project |
stint://task/<solidtime-id> | Open Today filtered to a task (resolves parent project automatically) |
open "stint://stop" from the shell, or wire into Raycast / Alfred /
Shortcuts.
Where’s the source?
Section titled “Where’s the source?”Issues for bug reports and feature requests.
Who builds stint?
Section titled “Who builds stint?”Reyem Tech. stint is MIT-licensed — fork it, modify it, ship your own version with a different OAuth client.
The repository’s CLAUDE.md is the canonical reference for repo
structure, conventions, and gotchas — useful reading even if you’re not
contributing.