Pi is Earendil's minimal coding agent harness — an open-source (MIT) CLI that reads files, writes and edits code, and runs shell commands directly in your project. It ships four core tools (read, write, edit, bash) and stays deliberately small: sub-agents, plan mode, and sandboxing are opt-in extensions rather than baked in. Pi authenticates against 15+ LLM providers (Anthropic, OpenAI, Google, and more) with mid-session model switching, and runs in interactive, print/JSON, RPC, or SDK modes. Paired with Railway, Pi deploys, sets variables, and reads logs from the terminal.
Install the Pi CLI and authenticate a provider with an API key or OAuth
npm install -g @earendil-works/pi-coding-agentInstall Railway CLI and authenticate
npm install -g @railway/cli && railway loginRun `pi` in your repo. Add an AGENTS.md so Pi picks up project-level instructions
Pi runs the Railway CLI and deploys railway.com/template/gin with a Redis service attached
Deploy this to Railway with a Redis cache for rate limiting“Deploy this Go API to Railway”
“Add Redis for caching API responses”
“Check the failing health check and fix it”
“Set up environment variables from my .env.example file”
“Configure the service to scale to zero when idle”
“Add a cron service that sends daily email digests”
“Deploy Plausible Analytics with Postgres and Clickhouse”
“Set up a Langchain app with Postgres (pgvector) for RAG”
“Deploy Grafana connected to my Railway metrics”
“Create a complete auth system with Keycloak and Postgres”
Railway Skills extend Pi with Railway-specific commands for deploying, managing, and monitoring your projects. View all skills on GitHub →
Install Railway Skills
curl -fsSL railway.com/skills.sh | bashor
npx skills add railwayapp/railway-skillsrailway up and streams the buildrailway add for the databaseAsk Pi to deploy to Railway. It runs the Railway CLI (railway up) with its bash tool, streams the build, and reports the deployment URL — all in the same terminal session.
Pi supports 15+ providers (Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, and more) via API key or OAuth, with mid-session model switching.
Yes. Pi is MIT-licensed and available on GitHub. It's a minimal harness you extend with your own skills, extensions, and themes.
Railway CLI not found in the Pi session
Install the Railway CLI globally with npm install -g @railway/cli and restart your shell so railway is on PATH.
Pi can't authenticate a model provider
Set the provider's API key (e.g. ANTHROPIC_API_KEY or OPENAI_API_KEY) or complete OAuth, then retry.
Railway commands fail with permission denied
Run railway login to re-authenticate, then retry the deploy.
Get started in minutes. Railway handles the infrastructure.