mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-11-05 23:37:25 +00:00
feat(coding-agent): add pi auth login and logout
pi auth login <provider> logs in from the shell without starting a session, like pi mcp login. Account sign-in is the default and takes the provider's browser method; when the provider has another method, it prints a hint to rerun with --no-browser. --no-browser skips the browser method and uses the other one, such as device code, asking only when there are several. --api-key saves an API key instead and cannot be combined with --no-browser. After logging in, it fetches the provider's model catalog, and for Radius it points the Radius MCP server in the global mcp.json at the login without asking. pi auth logout <provider> removes the stored credentials like /logout and succeeds when nothing is stored. For MCP servers that use provider credentials, pi mcp login and logout now refer to these commands instead of /login and /logout. /login shares the check for the Radius MCP server entry and the web URL helpers with the new command.
This commit is contained in:
parent
e5f3b41506
commit
9b9cb30ae1
21 changed files with 1392 additions and 68 deletions
|
|
@ -12,6 +12,8 @@ pi uninstall <source> [options]
|
|||
pi update [target] [options]
|
||||
pi list
|
||||
pi config [options]
|
||||
pi auth login <provider> [--api-key] [--no-browser]
|
||||
pi auth logout <provider>
|
||||
pi auth <check|print-api-key|print-bearer-token> [options]
|
||||
pi mcp <add|remove|list|login|logout> [options]
|
||||
```
|
||||
|
|
@ -302,11 +304,22 @@ export PI_SELF_UPDATE_COMMAND="mise use -g npm:{packageName}@{version}"
|
|||
|
||||
## Credential commands
|
||||
|
||||
`pi auth login <provider>` logs in to a provider in the terminal and exits, without starting a session. It signs in with an account and opens the browser, like `/login <provider>`. Providers without account sign-in ask for an API key. Logging in to Radius also adds the Radius MCP server to `~/.pi/agent/mcp.json` when no global server uses that login yet. It requires an interactive terminal.
|
||||
|
||||
| Option | Description |
|
||||
|---|---|
|
||||
| `--api-key` | Save an API key instead of signing in with an account; the key is read without echoing it |
|
||||
| `--no-browser` | Do not open a browser; use the provider's other sign-in method, such as a device code, for example over SSH. Asks when there are several. Not allowed with `--api-key` |
|
||||
|
||||
`pi auth logout <provider>` removes the credentials that `pi auth login` or `/login` stored, like `/logout`. Environment variables and `models.json` config are unchanged. It exits with status `0` when nothing is stored, so it is safe to repeat.
|
||||
|
||||
```sh
|
||||
pi auth login radius
|
||||
pi auth logout radius
|
||||
pi auth check --provider openai --json
|
||||
```
|
||||
|
||||
Authentication commands require `--provider <provider>` or `--model <model>`. See [Providers](providers.md) for supported methods.
|
||||
The other authentication commands require `--provider <provider>` or `--model <model>`. See [Providers](providers.md) for supported methods.
|
||||
|
||||
| Command | Description |
|
||||
|---|---|
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue