@phaseo/cli. It connects coding harnesses to Phaseo and provides a first-party terminal workflow for the Phaseo control plane.
Use it when you want to:
- sign in as a real Phaseo user from a local shell, remote shell, or agent runtime
- create and rotate API keys or management keys
- manage workspaces, presets, settings, and guardrails
- use first-party CLI OAuth while user-owned OAuth apps remain in private testing
- inspect models, providers, pricing, credits, activity, analytics, and generations
Install
Check the installed version
phaseo --versionprints the installed version.phaseo versionprints the version plus the recommended update command for the current package manager.- interactive runs also show an update hint when a newer published version is available.
phaseo command remains available as a compatibility alias.
Sign in
Start with:- Sign in with Phaseo: browser OAuth with authorization code + PKCE
- Sign in with Device Code: best for SSH, CI, headless shells, and agent environments
Terminal output
Interactive terminals receive Phaseo’s colour, hierarchy, and ephemeral setup spinners. Spinners usestderr and clear their line when work completes. Non-TTY stderr and TERM=dumb disable animation; NO_COLOR disables colour. Commands using --json always return decoration-free structured output for agents and automation. Use FORCE_COLOR=1 only when a terminal wrapper supports colour but does not report itself as a TTY.
Confirm who you are
Create keys
--json when an agent or automation needs the raw created key once.
Manage workspaces and guardrails
Launch supported coding harnesses
Persistent integrations use the product name directly:--model, --catalog all|default, or --dry-run as needed. The older phaseo integrations setup <integration> form remains available for compatibility, but is not required.
The CLI can launch Cline, Kilo Code, oh-my-pi, Muse Code, and MiniMax Code with temporary provider configuration and a dedicated Phaseo key. Each harness has its own integration guide with setup and troubleshooting details: Cline, Kilo Code, oh-my-pi, Muse Code, and MiniMax Code.
phaseo run <cline|kilo|omp|muse|minimax> for the explicit form. Phaseo flags come before --; harness flags come after it. Use --catalog all to sync all active Phaseo text/chat models, or preview without creating a credential with:
--skip-install when you manage either harness separately. The launchers do not overwrite existing Cline, Kilo, oh-my-pi, Muse Code, or MiniMax Code configuration.
OAuth apps
Phaseo uses one OAuth authorization server for the first-party CLI, user-created applications, and dynamically registered MCP clients. The CLI uses browser or device login with rotating refresh tokens. Third-party clients use authorization code with PKCE, explicit scopes and workspace consent, revocable delegated access tokens, and optional protected-resource binding. The hosted Phaseo API enables third-party OAuth. Self-hosted or preview API deployments keep it disabled unlessPHASEO_THIRD_PARTY_OAUTH_ENABLED is set to a truthy value. Accepted truthy values are 1, true, yes, and on, matched case-insensitively after trimming whitespace. Enabling it exposes user-created OAuth app management and dynamic client registration, so pair it with reviewed redirect URI, consent, client-secret, rate-limit, and workspace authorization configuration.
.env
Docker
Kubernetes
Security model
- CLI sessions require OS-backed secure storage by default. Set
PHASEO_SESSION_BACKEND=fileonly as an explicit opt-in when an OS credential store is unavailable; it stores refresh tokens in a permission-restricted plaintext file. phaseo logoutrevokes the stored refresh token before clearing local state.- Management keys require explicit capabilities.
- Regular inference keys rely on guardrails, routing policies, and workspace settings rather than a separate scope model.