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
{{ message }}
Repository navigation
Commit 365cbca
Browse filesBrowse the repository at this point in the historyBrowse files
Claude and Codex logins that work from a server; auth diagnostics
- Claude: correct the public client ID (44d9), and make the browser
method use Claude's hosted code page so the browser may run on
another machine; the localhost flow stays available as 'loopback'.
Pasted returns are checked against the registered destination and
state before any exchange.
- Auth HTTP identifies itself as lm15/<version>: Claude's token endpoint
refuses Python urllib's default User-Agent with a bare 403.
- Failed token exchanges report status, response format and a
recognized OAuth error code only; provider text is never copied.
- Method descriptions for Claude, Codex, OpenRouter, Copilot and xAI
record what was observed live on 2026-09-22/23 and what remains open
(provider permission, billing).
- docs/cookbooks/21-managed-login-live.md: the live notebook, with
authorization codes and state values redacted.
Signed-off-by: Maxime Rivest <mrive052@gmail.com>
| xAI | device code |**supported**: managed device login, inference, streaming, `connect()`, logout blocking, fresh-process persistence and one early renewal observed live (2026-09-22/23) |
141
141
| Claude / Codex | your existing CLI login (`external:*`) |**supported** (the proven path since 2026-08-31) |
142
-
| Claude, ChatGPT (browser, device), OpenRouter, Meta, Kimi Code, GitHub Copilot | LM15-owned login |**unverified**: implemented, no live receipt; `login(..., allow_unverified=True)` to try |
142
+
| Claude | LM15-owned hosted browser login | Login, inference, fresh-process persistence and one early renewal observed **2026-09-23**. Still **unverified** for provider permission and billing; explicit opt-in remains required. |
143
+
| ChatGPT / Codex | LM15-owned browser login | Login, catalog, inference, fresh-process persistence and one early renewal observed **2026-09-23**. Provider permission and billing remain **unverified**. |
144
+
| ChatGPT / Codex | LM15-owned device login | Separate memory-only login and inference observed **2026-09-23**. Device persistence/renewal were not separately tested; permission and billing remain **unverified**. |
145
+
| OpenRouter | Browser approval → API key | Key issuance, $1 limit inspection, model discovery, inference and fresh-process reuse observed **2026-09-23**. No refresh-token flow; broader support review remains pending. |
146
+
| GitHub Copilot | Device login → Copilot token | github.com login, catalog, inference, fresh-process persistence and one early renewal observed **2026-09-23**. Uses the public Copilot Chat app registration; permission and billing remain **unverified**. |
147
+
| Claude (loopback), Meta, Kimi Code | Other LM15-owned login methods |**unverified**: implemented, no live LM15 receipt; `login(..., allow_unverified=True)` to try |
143
148
| Radius | — |**unavailable**: its model protocol is not in lm15-python |
144
149
145
150
An unverified method is never offered by the default picker. Promotion to
146
151
*supported* needs a redacted login → inference → renewal receipt per provider,
147
152
recorded in lm15-contract. Login success alone does not prove a subscription
148
153
entitles you to anything; that is the provider's decision and your account's.
149
154
155
+
### Claude login with a browser on another machine
0 commit comments