Summary
Logging in to the AI provider currently requires the user to run the pi-native /login flow inside the chat. It would be better to have a first-class login experience that doesn't depend on the user knowing about / typing pi commands.
Current behavior
Per the README ("Start the agent" step):
On first startup, type /login in the chat to log into your AI provider account (e.g. Anthropic, Google). Without this, no models will be available.
So authentication is delegated entirely to the underlying pi agent's /login command. The user has to:
- Know that they must type
/login (nothing in the UI prompts for it).
- Complete pi's login flow in the chat transcript.
If they skip this, the session silently has no models available.
Why this is a problem
- It leaks the
pi implementation detail into the user-facing flow — the extension is meant to abstract pi away.
- There's no discoverable entry point (no button, command, or onboarding prompt) — a new user has no signal that login is required until things don't work.
- "No models available" is an opaque failure mode for someone who never ran
/login.
Possible directions
- A native VS Code login affordance (command / button / onboarding step) that drives the pi login under the hood.
- Detect the unauthenticated state on session start and surface a clear prompt/call-to-action instead of relying on the user to know the
/login command.
- Document the requirement more prominently if a native flow isn't feasible yet.
Summary
Logging in to the AI provider currently requires the user to run the pi-native
/loginflow inside the chat. It would be better to have a first-class login experience that doesn't depend on the user knowing about / typing pi commands.Current behavior
Per the README ("Start the agent" step):
So authentication is delegated entirely to the underlying
piagent's/logincommand. The user has to:/login(nothing in the UI prompts for it).If they skip this, the session silently has no models available.
Why this is a problem
piimplementation detail into the user-facing flow — the extension is meant to abstract pi away./login.Possible directions
/logincommand.