Skip to content

Allow configurable session/auth token TTL to prevent daily re-login #35221

Description

@avi-seanair

Problem

When using Claude Code CLI on a machine that isn't used every day (e.g., a secondary laptop), the OAuth session expires after roughly 24 hours of inactivity. This forces a /login re-authentication via browser on the next use.

For users who alternate between machines (e.g., iMac for daily work, MBP for evenings/weekends), this means re-authenticating every time they return to the less-frequently-used machine.

Current Behavior

  • OAuth token stored in macOS Keychain
  • Token refresh cycle runs while Claude Code is active (~5 min interval)
  • Once the session is closed, the refresh token expires server-side after ~24 hours
  • No client-side setting to extend this duration

Desired Behavior

A configurable session persistence option, such as:

  • "sessionTTL": "7d" in settings.json or ~/.claude.json
  • A "remember me" flag during /login (e.g., /login --persist 7d)
  • Or simply a longer default refresh token lifetime (7-30 days, consistent with tools like gh auth, aws sso, Tailscale)

Workarounds Considered (and rejected)

  • Heartbeat script / LaunchAgent: Works but shouldn't be necessary for auth persistence
  • API key instead of OAuth: Loses the convenience of the OAuth flow
  • Leaving a tmux session open: Fragile, not a real solution

Environment

  • macOS (Sequoia 15.4)
  • Claude Code CLI (latest)
  • Multi-machine workflow over Tailscale

Notes

This is a quality-of-life issue for power users who rely on Claude Code across multiple machines but don't use every machine every day. A 7-day refresh token would eliminate the friction entirely.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions