Pi shipped four releases between July 21 and August 14 — v0.81.0, v0.82.0, v0.83.0, and v0.84.x. Together they mark the most aggressive three-week stretch in the tool’s history. The headlines: a fullscreen TUI mode with Mermaid and LaTeX rendering, per-directory context overrides, local LLM management through llama.cpp, Claude Opus 5 via GitHub Copilot, and one-command OAuth logins for OpenRouter and Kimi Code.
If you have been watching Pi since our Vim of coding agents writeup, this is the release cycle that turns philosophy into features.
Fullscreen TUI Mode: Pi Gets a Real Interface (v0.84.0)
Pi 0.84.0 introduces a fullscreen TUI mode — switch between regular and fullscreen at runtime with a sticky editor and footer, independently scrollable transcript, and draggable scrollbars. This is not a cosmetic tweak; it changes how you work with long sessions.
Mermaid and LaTeX rendering now works in interactive transcripts. Architecture diagrams, sequence charts, and mathematical notation render inline. For teams documenting systems or working with algorithmic code, this means you can see the diagram the model generates without leaving the terminal.
Per-directory context overrides via AGENTS.override.md let you replace context files for a specific directory. Different parts of your codebase can have different instructions, conventions, and constraints — Pi respects them automatically.
Advanced custom model sampling brings arbitrary OpenAI-compatible samplingParams and opt-in vLLM thinking_token_budget values. If you run local models through vLLM or use custom providers, you now control temperature, top-p, repetition penalty, and thinking budgets per request.
Baseten provider adds built-in Baseten authentication and model support for teams deploying on that platform.
Breaking Changes in 0.84.0
- JSON and RPC
message_updateevents now emit onlyassistantMessageEventdeltas — clients needing partial messages must assemble deltas betweenmessage_startandmessage_end ModelRegistry.getApiKeyAndHeaders()returnsProviderHeaderswithstring | nullvalues, preservingnullheader-deletion markersModelRegistry.refresh()andModelRuntime.setRuntimeApiKey()signatures changed for cancellation and error handling- OAuth
refreshTokencallbacks must now accept and honor a concrete abort signal - pi-ai’s old global API moved to
@earendil-works/pi-ai/compat(existing extensions keep working via loader alias)
Qwen Token Plan & Auth Readiness (v0.84.1)
Pi 0.84.1 adds Qwen Token Plan Individual as a built-in provider with its documented subscription model catalog and the shared international QWEN_TOKEN_PLAN_API_KEY.
Authentication readiness checks — run pi auth check to verify provider or model credentials, optionally emitting the resolved credential. No more guessing if your API key works before starting a session.
Improved fullscreen interaction — select words and paragraphs with multiple clicks, configure half-page transcript scrolling, and use unbound single-line and half-page scroll actions.
Terminating blocked tool calls — extension tool_call handlers can stop all-terminating batches without another model call, giving extensions more control over execution flow.
Fullscreen Transcript Search & Configurable Defaults (v0.84.2)
Pi 0.84.2 (released today, August 14) adds fullscreen transcript search with Ctrl+Shift+F, incremental match highlighting, configurable search match theme colors, and next/previous navigation with Enter/Ctrl+G and Shift+Enter/Ctrl+Shift+G.
Configurable default tools — choose startup built-in tools globally or per project via the new defaultTools setting.
Configurable fullscreen exit output — choose between printing the final transcript or only a session resume hint on exit.
Experimental strict JSON-schema constrained sampling for the default read, bash, edit, and write tools under PI_EXPERIMENTAL=1 — forces tool outputs to match exact schemas, eliminating parse errors.
Per-run theme selection with --use-theme <name[/name]> lets you pick an initial interactive theme without changing saved settings.
llama.cpp: Run Pi With Local Models
Pi 0.81.0 adds built-in llama.cpp router support. Connect Pi to a running llama.cpp server, search Hugging Face for models, download them with progress bars, and explicitly load or unload models — all from inside the TUI.
For beginners: llama.cpp is software that runs large language models locally on your hardware. Instead of sending code to OpenAI or Anthropic servers, the model runs on your own GPU (or CPU). This matters if you work with proprietary code, operate in air-gapped environments, or simply want to avoid API costs.
Before 0.81.0, using local models with Pi required manual configuration and external tooling. Now the workflow is:
/llama # Open the llama.cpp model browser
/login # Connect to your llama.cpp router
Search for a model by name, select it, and Pi downloads and loads it. You can unload models when done to free memory. The live progress display shows download speed, ETA, and completion percentage.
Pi 0.82.0 fixes a significant llama.cpp issue: models now use the loaded context window as their output token limit instead of capping at 16K tokens. If you load a model with a 32K context window, Pi now respects the full capacity.
Constrained Tool Sampling: More Reliable Tool Calls
Pi 0.82.0 introduces constrained tool sampling. Tools can now declare that they require strict JSON Schema output, OpenAI Lark grammars, or regex patterns. Pi checks whether your chosen model supports the constraint and falls back gracefully when it does not.
Why this matters: when an LLM generates a tool call, it produces JSON describing which tool to invoke and what arguments to pass. Without constraints, models sometimes generate malformed JSON — a missing quote, a trailing comma, an extra field. Constrained sampling forces the model’s output to match the expected schema exactly.
If you use OpenAI, Anthropic, Amazon Bedrock, Google Gemini, or Mistral models, Pi 0.82.0 enables strict mode automatically when the tool requests it. The result is fewer retries, fewer “parse error” messages, and more reliable multi-step workflows.
One-Click Provider Logins
Manual API key configuration is a friction point every coding agent deals with. Pi 0.82.0 and 0.83.0 tackle it head-on with OAuth login flows for three providers:
OpenRouter (v0.82.0): Run /login to authorize OpenRouter through OAuth PKCE. Pi mints a user-controlled API key. No copy-pasting tokens from a dashboard.
Kimi Code (v0.82.0): Device authorization flow for Kimi For Coding subscriptions. Works the same way — /login, approve on the Kimi page, done.
Headless OpenRouter (v0.83.0): For SSH sessions and remote machines where the browser callback loopback does not work, Pi 0.83.0 adds manual redirect URL and authorization code entry. Paste the redirect URL or the auth code when prompted, and Pi completes the login without a local browser.
This also applies to GitHub Copilot. Pi 0.83.0 adds credential export commands for external clients:
pi auth print-api-key # Export your configured API key
pi auth print-bearer-token # Export a bearer token with auto-refresh
Both commands handle OAuth refresh automatically and enforce minimum token validity — you never hand over a token that expires in 30 seconds.
Claude Opus 5 via GitHub Copilot
Pi 0.83.0 adds Claude Opus 5 support through GitHub Copilot. If you already pay for a Copilot subscription, you now get access to Opus 5 with adaptive thinking and a 1M context window — no additional Anthropic API key needed.
Adaptive thinking lets Opus 5 decide how much reasoning to apply per request. Simple file reads get lightweight processing. Complex multi-file refactors get deeper chains. Pi passes through this capability so the model’s own judgment about effort applies inside your coding workflow.
For teams evaluating whether to add an Anthropic API subscription: if your developers already use GitHub Copilot, Pi 0.83.0 gives them Opus 5 access through the subscription they already have.
Session-Aware Bash and Usage Tracking
Two smaller changes that matter for daily use:
Bash environment variables (v0.82.0): Commands run by Pi’s bash tools now receive PI_SESSION_ID, PI_SESSION_FILE, PI_PROVIDER, PI_MODEL, and PI_REASONING_LEVEL. If you write scripts that interact with Pi sessions, these variables give you context about what model and session the agent is using.
Expanded usage accounting (v0.81.0): Tool calls, compaction operations, and branch summaries now show token usage and cost. The session footer totals reflect real consumption, including overhead from context management. If you are tracking API spend, this gives you the full picture instead of just the model call counts.
How to Update
If Pi is already installed:
# Update to the latest version
pi upgrade
# Or via npm
npm install -g @earendil-works/pi-coding-agent@latest
To try the new fullscreen TUI:
# Toggle fullscreen mode at runtime
# Press Ctrl+Shift+F for transcript search
# Use --use-theme for per-run theme selection
pi --use-theme dracula
To set up llama.cpp:
# Connect to a running llama.cpp server
/llama
# Search for models
# Select, download, and load
To enable OAuth logins:
# OpenRouter
/login
# Check available providers
pi auth check
To try Qwen Token Plan:
# Set the API key
export QWEN_TOKEN_PLAN_API_KEY=your_key
# Pi will auto-detect the provider
Related Reading
- Pi Is the “Vim of Coding Agents” — the philosophy behind Pi’s minimal design
- Best Coding Agents 2026 — how Pi compares to Claude Code, Codex, and others
- Goose v1.45.0 Brings Opus 5 and Gemini — another agent adding Opus 5 support
The Bottom Line
Four releases in three weeks is aggressive for any project. Pi delivered the features that matter most to its audience: a fullscreen TUI that feels like a real IDE, Mermaid and LaTeX rendering for technical diagrams, per-directory context overrides for monorepos, local model management via llama.cpp, constrained sampling for reliability, OAuth flows for convenience, and Opus 5 access through existing Copilot subscriptions.
The fullscreen TUI with Mermaid/LaTeX is the standout — it turns Pi from a minimal terminal agent into a tool you can live in for hours. Combined with the extension system, provider flexibility, and now local model support, Pi positions itself as the most model-agnostic, interface-flexible coding agent available.
If you run Pi, update now. If you are evaluating Pi against Codex or Claude Code, the fullscreen TUI + llama.cpp combination alone is a differentiator worth testing.
Related articles
- Oh My Pi v17.3.3 Fixes Gemini Reasoning Loops, Hashline Edge Cases, and TUI Rendering — What Beginners Need to Know
- Claude Code v2.1.224: Self-Hosted Runners, Cross-Session Messaging, and Tighter Secret Handling
- Cline Just Made Your Coding Sessions Bulletproof — Heres What v4.1.9 Fixed