Skip to main content
Start with pitboard doctor. For an interrupted switch, lost parked logins or a directory from another computer, see Recover after a crash, a restore or a move. For other messages, see Error and warning codes.

Check first

pitboard doctor checks what pitboard relies on and marks each check ✓ (holds), ! (worth a look) or ✗ (broken). Its last line is one of these:
pitboard log lists pitboard’s last 20 changes and how each ended. In the app, click pitboard’s item in the menu bar, then choose Open pitboard. The window’s This Mac pane makes the same checks, and Activity shows the log. For every check, see Maintenance commands.

A parked login has expired

pitboard status shows login expired beside a Claude Code account, and pitboard’s menu shows Needs signing in again. pitboard renews parked logins only when it runs, so a Claude Code one left for weeks expires. To fix it, see Sign in to an account again. To prevent it, see Keep parked logins alive.

pitboard cannot confirm which account is signed in

If the message says pitboard could not confirm, check the connection and run the command again. If it says session has expired, run the program it names once, then run the command again.

Claude Code still shows the previous account

An open Claude Code session follows a switch within about 33 seconds. If not, the switch may have warned why:
Unset or remove what it names, then restart Claude Code. If the warning says Claude Code’s config could not be updated, the switch worked, but the old name may show until the next switch.

A running codex still uses the old account

A running codex keeps its account until you restart it. To do that without losing a login, see Switch accounts.

pitboard refuses Codex’s login store

pitboard switches OpenAI’s Codex CLI only when Codex keeps its login in auth.json and signs in with ChatGPT; see Use pitboard with Codex.

Usage shows old numbers

Old numbers say when they were measured, as in measured 14:02, 1m ago, and may give a reason. For Codex, read OpenAI for Anthropic: For why pitboard waits, see How usage is read.

macOS says the keychain is locked

Where macOS cannot show a password prompt, as over SSH, a locked keychain stops pitboard:
Do what the message says. If a switch was stopped, run it again: pitboard first finishes or undoes it.

pitboard cannot find Claude Code

Without claude, a Claude Code sign-in stops like this:
Install Claude Code, then run claude once and sign in. If claude is installed, add its folder to your PATH. The app looks for claude only when it opens: on your login shell’s PATH, then in ~/.local/bin, /opt/homebrew/bin and /usr/local/bin. After you install Claude Code, quit pitboard and open it again.

pitboard does not open at login

pitboard opens at login only when Open pitboard at login is on in Settings > General. If macOS is waiting for you there, click Open Login Items Settings and allow pitboard.

Daily renewal stopped working

pitboard doctor fails its renewal schedule check with which is not there any more. The app moved, or the pitboard the schedule ran was removed. Turn Renew parked logins daily off and on in Settings > General, or run:

A file was written by a newer pitboard

The pitboard you ran is older than another using the same files. Update it: see Update pitboard.

pitboard refuses a folder that syncs

pitboard refuses to keep its files, ~/.pitboard or PITBOARD_HOME, in a folder that syncs to other machines, such as Dropbox or iCloud Drive. Parked logins belong to one machine. Set PITBOARD_HOME to a local folder. For the names pitboard refuses, see Files and environment variables.

Report a problem

Open a GitHub issue with:
  • What you ran, what it printed and what you expected.
  • The output of pitboard --version, pitboard doctor --json and the last lines of pitboard log.
  • How you installed pitboard, and your macOS or Linux version.
pitboard doctor --json hides email addresses, account identifiers and your home folder; plain pitboard doctor does not. For a security problem, see Security and privacy.