Prerequisites
- Node.js 22 or newer — nodejs.org
- pnpm 10.33.3 — matches the pinned
packageManagerfield inpackage.json - An LLM provider API key — Fleet Pi defaults to Google Gemini (
gemini-3.5-flash). Amazon Bedrock, OpenAI, Anthropic, Google Vertex, Mistral, Groq, and Ollama are also supported.
google and the default model is gemini-3.5-flash. Set GEMINI_API_KEY to use the default, or switch providers in the in-app config panel.
1. Clone and install
2. Create local configuration
.env from the repo root, then .env.local (.env.local wins) for server-side routes. The checked-in example only contains public-safe knobs. See the configuration reference for every supported variable.
Typical first-run choices:
- Set
GEMINI_API_KEYto use the default Google Gemini provider. - To use a different provider, set its API-key env var (
OPENAI_API_KEY,ANTHROPIC_API_KEY,MISTRAL_API_KEY,GROQ_API_KEY,OLLAMA_BASE_URL) or AWS credentials for Bedrock. Then select the provider in the in-app config panel. - Leave
PI_AGENT_DIRunset unless you want a non-default Pi agent resource directory.
Provider keys can also be entered in the in-app config panel, which writes them to
.env.local. The active provider and model are stored in Pi settings.3. Start the app
4. Smoke check
In a second terminal:read package.json in the chat UI and confirm that a read tool card appears in the transcript.
What “standalone” means
Standalone does not mean “without Pi” or “without an LLM provider.” It means:- You run Fleet Pi locally as a normal pnpm web app.
- The bundled Pi runtime (
@earendil-works/pi-coding-agent) powers chat and tool execution. - The backend still expects a working LLM provider — every model call goes through the circuit breaker.
- You do not need the Codex desktop app or the advanced Codex worktree flow.
Optional: enable authentication
Fleet Pi ships with Better Auth and an embedded SQLite database. Auth is disabled until you set a secret:GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET are both set. The auth database defaults to .fleet/auth.sqlite; override with AUTH_DATABASE_PATH.
To use Neon Managed Auth instead of Better Auth, set NEON_AUTH_BASE_URL and VITE_NEON_AUTH_URL. Fleet Pi automatically falls back to Better Auth when both are unset. See the Neon Managed Auth reference for the full variable list.
Useful commands
Next steps
Configuration
Every environment variable Fleet Pi reads.
Chat modes
Agent, Plan, and Harness — and the tools each one allows.
Agent workspace
Learn how durable memory, plans, and Pi resources live in Git.
Architecture
Browser client, TanStack Start backend, and agent workspace boundaries.