9. Claude Code without logging in again: long-lived token
Create a one-year token with claude setup-token, so SSH, scripts and restarts never ask you to log in.
The usual annoyance with Claude Code on a Mac mini: it asks you to log in through the browser again after a restart, in a new terminal, over SSH or inside a script. Set up a long-lived token with the 4 steps below and you won't log in again for a year.
Step 1: Create the token
On the Mac mini, open Terminal (⌘+Space, type Terminal, Enter) and run:
claude setup-token
Your browser opens the Claude authorization page; approve it. Back in Terminal you'll see a token starting with sk-ant-oat. Copy it now: it is shown only once.
Step 2: Save it in a file only you can read
Run this line, then paste the token and press Enter (nothing shows while you paste; that's normal):
read -rs T && printf 'export CLAUDE_CODE_OAUTH_TOKEN="%s"\n' "$T" > ~/.claude-token && chmod 600 ~/.claude-token && unset T && echo saved
This keeps the token out of your shell history. chmod 600 means only your user account can read the file.
Step 3: Load it in every shell
grep -q claude-token ~/.zshenv 2>/dev/null || echo '[ -f ~/.claude-token ] && source ~/.claude-token' >> ~/.zshenv
It goes in ~/.zshenv, not ~/.zshrc, so non-interactive runs like ssh host claude, cron jobs and scripts get the token too. Running it twice won't add the line twice.
Step 4: Test it
Close Terminal, open a new one and run:
claude -p "hello"
If it answers without asking you to log in, you're done. From another computer you can also try: ssh user@host 'claude -p "hello"'.
Troubleshooting
| Problem | Fix |
|---|---|
| It still asks me to log in | Check that echo ${CLAUDE_CODE_OAUTH_TOKEN:0:12} prints something. If not, make sure the Step 3 line is in ~/.zshenv, then open a new terminal. |
| It bills my API key instead of my subscription | If ANTHROPIC_API_KEY is set, it takes priority. Remove that line to use your subscription. |
| The token expired after a year | Repeat Steps 1 and 2. Step 3 stays as it is. |
| I switched Claude accounts | Same: create a new token and overwrite ~/.claude-token. |
Security
- Before your rental ends: run
rm -f ~/.claude-tokenand delete that line from~/.zshenv. The machine goes to the next customer afterwards. - If you think the token leaked: delete the file, change your Claude password and sign out of other devices, then create a new token.