Skip to main content
Pitboard moves and stores the OAuth refresh tokens of Claude Code and OpenAI’s Codex CLI, and on macOS the files that hold a Claude Desktop login. Each grants full access to a paid account. SECURITY.md lists what Pitboard protects against and how to report a vulnerability. Website data covers each account window’s sign-in.

Where parked logins are kept

Claude Code and Codex parked logins are keychain items whose names start with pitboard-park-. Pitboard reads and writes them, and Claude Code’s item, only through /usr/bin/security, the one program that item trusts.Codex keeps its own login in a plaintext auth.json. pitboard doctor fails if anyone else has access to a login file Claude Code left behind the keychain, and warns for Codex’s auth.json.
A Claude Code parked login holds the OAuth block and the account’s other fields, such as trustedDeviceToken. Whether restoring a device token spares a re-verification has not been measured. A Codex parked login is the whole auth.json, which can also hold an OpenAI API key, as read in Codex 0.154.0. On macOS, a Claude Desktop parked login is Claude’s own files and keys of config.json, in a folder under ~/.pitboard/parks that only you can open. Pitboard renames them there and back, and never copies them. It reads no keychain item for Claude Desktop, Claude Safe Storage included, and decrypts no cookie. Of the session cookie, it keeps only a fingerprint. pitboard doctor fails if anyone else has access to parks. Folders in parks has the layout.

What leaves your machine

Pitboard has no server of its own and sends no request for a Claude Desktop account. It makes only these requests itself: GitHub redirects each release download to release-assets.githubusercontent.com, as measured on 12 October 2026. The command line never checks for updates. Pitboard’s own requests verify TLS against your system’s trust store and time out after 5 seconds. Each names Pitboard in its User-Agent, pitboard/<version>. A proxy sees each request’s host, not what it carries. A company proxy whose root certificate your system trusts can decrypt each request, tokens included.

What a warm-up sends

A warm-up is Claude Code’s own request: claude -p sends Anthropic one message on Claude Code’s smallest model, with no tools, and fetches what Claude Code fetches as it starts, such as the account’s profile and policy limits. Measured with Claude Code 2.1.296, the request costs about 3,100 tokens of the plan. Pitboard starts it from a folder of its own in the Pitboard directory, with PATH, your user name and any proxy variables from its own environment and nothing else. It hands Claude Code the account’s access token on a pipe, never a refresh token, so the run cannot renew or spend a login. As read in 2.1.296, Claude Code keeps that token in no store. On Windows, Pitboard also passes on SystemRoot, and names the Git Bash it finds in CLAUDE_CODE_GIT_BASH_PATH. As read in 2.1.301 on Windows, Claude Code reads no token from a pipe. As read in 2.1.303, it takes one in CLAUDE_CODE_OAUTH_TOKEN instead, as a login with no refresh token. Pitboard hands the access token in that variable, and CLAUDE_CODE_SUBPROCESS_ENV_SCRUB keeps it from most programs Claude Code starts. Some get Claude Code’s whole environment, token included: where.exe as it looks for Git where Pitboard found no Git Bash to name, some git commands, and a proxyAuthHelper set in managed settings. Another process running as you can read the token there while the run lasts, at most 2 minutes. No warm-up on Windows has been measured against Anthropic, so whether Claude Code keeps the token in a store there is not known.

Large logins on macOS

Pitboard hands a login to security in hex on standard input, where ps cannot see it. That input stays within 4032 bytes, Claude Code’s own ceiling as read in 2.1.284: about 2 KB of login. MCP server tokens can push a Claude Code login past that, and every Codex parked login is past it. Past it, Pitboard passes the login as an argument, which another process running as you could read while the call lasts. A switch, a --sign-in enrolment or pitboard stow that does this says so. A renewal does not. pitboard doctor warns while Claude Code’s login is that large. With PITBOARD_NO_ARGV=1, Pitboard refuses such a write. It then parks no Codex account, and leaves a parked login that size unrenewed. Opened from Finder or at login, the app lacks your shell’s PITBOARD_NO_ARGV. A renewal schedule installed while it is set keeps it. On Windows, no login goes on an argument line: Credential Manager takes a large login in up to 256 pieces, about 450 KB. A larger one stops a change with credential_too_large. PITBOARD_NO_ARGV changes nothing there, and pitboard doctor warns while it is set.