You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Handle timeout as expected (claude -p writes config before API call)
- Catch FileNotFoundError/OSError if claude is not installed
- Check returncode explicitly instead of dead CalledProcessError catch
- Guard on ~/.claude.json existence before writing onboarding flag
- Replace contextlib.suppress with explicit try/except that logs
- Update module docstring and README wording
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -116,15 +116,15 @@ claude # Ready to work
116
116
117
117
## Token-Based Auth (Headless)
118
118
119
-
For non-interactive setups (CI, headless servers, or skipping the login wizard):
119
+
For headless servers or to skip the interactive login wizard:
120
120
121
121
```bash
122
122
claude setup-token # run on host, one-time
123
123
export CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-...
124
124
devc rebuild # rebuilds with token
125
125
```
126
126
127
-
The token is forwarded into the container. On first create, `post_install.py` runs a one-shot auth handshake so `claude` starts without the login wizard.
127
+
The token is forwarded into the container. On each container creation, `post_install.py` runs a one-shot auth handshake so `claude` starts without the login wizard.
128
128
129
129
This works around Claude Code's interactive onboarding wizard always showing in containers, even with valid credentials ([#8938](https://github.com/anthropics/claude-code/issues/8938)).
0 commit comments