pi-windsurf

Windsurf/Cognition models in Pi — Claude, GPT, Gemini, Kimi, DeepSeek, SWE via your Windsurf subscription

Packages

Package details

extension

Install pi-windsurf from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-windsurf
Package
pi-windsurf
Version
0.1.2
Published
May 23, 2026
Downloads
not available
Author
kentaylorappdev
License
MIT
Types
extension
Size
93.8 KB
Dependencies
0 dependencies · 0 peers
Pi manifest JSON
{
  "extensions": [
    "./index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-windsurf

Use Windsurf/Cognition models in Pi — Claude, GPT, Gemini, Kimi, DeepSeek, SWE, and more. All via your existing Windsurf subscription. No separate API keys.

How it works

Runs a local proxy at 127.0.0.1:42100 that speaks standard OpenAI Chat Completions API. Translates requests to Windsurf's proprietary Connect-RPC wire format. Pi talks to the proxy via api: "openai-completions" — no custom streaming code needed.

No Windsurf IDE needed. Cloud-direct mode talks straight to Cognition's servers over HTTPS. No Windsurf installation, no background processes. The local proxy adds negligible overhead — ~15MB memory, sub-millisecond latency.

Pi → proxy (localhost:42100) → Cognition Cloud

Install

Option A — npm (recommended):

pi install npm:pi-windsurf

Option B — Git:

pi install git:github.com/ktappdev/pi-windsurf

Option B — Manual:

git clone https://github.com/ktappdev/pi-windsurf.git ~/.pi/agent/extensions/windsurf

Option C — Local dev:

git clone https://github.com/ktappdev/pi-windsurf.git ~/developer/pi-windsurf
pi -e ~/developer/pi-windsurf/index.ts

Setup

1. Sign in

/login windsurf

Browser opens to windsurf.com. Sign in with your Windsurf account. Token captured automatically.

2. Pick a model

/model windsurf/<model-id>

Models shown are whatever your Windsurf plan enables. The extension fetches the live catalog from Cognition at startup — new models appear automatically.

3. Chat

Use Pi as normal. Your Windsurf subscription covers API costs.

Commands

Command Does
/login windsurf Sign in (browser-based OAuth)
/windsurf-status Show auth state
/windsurf-logout Sign out
/windsurf-refresh Refresh model list from Cognition

How models update

On startup (and after /login), the extension calls Cognition's GetCascadeModelConfigs endpoint — same one the Windsurf IDE uses. Only models enabled for your plan appear. When Windsurf adds new models, restart Pi or run /windsurf-refresh.

What models?

Depends on your Windsurf plan. Typically includes:

  • Claude — Opus 4.7/4.6, Sonnet 4.6/4.5, Haiku 4.5
  • GPT — 5.5, 5.4, 5.3-Codex, 5.2-Codex
  • Gemini — 3.5 Flash, 3.1 Pro
  • Kimi — K2.6
  • DeepSeek — V4
  • SWE — 1.6, 1.5
  • And more — BYOK models, enterprise deployments, experimental releases

Files

index.ts       Pi extension entry (provider + OAuth)
proxy.ts       HTTP server (OpenAI → gRPC)
chat.ts        Connect-RPC streaming (proto encode/decode)
catalog.ts     Live model catalog (GetCascadeModelConfigs)
models.ts      Variant catalog + model resolution
auth.ts        JWT minting
metadata.ts    Proto metadata builder
wire.ts        Proto wire format helpers
oauth.ts       Login loopback + RegisterUser

Requirements

  • Pi (any recent version)
  • Node.js ≥ 18 or Bun
  • Windsurf account (free or paid)

No npm dependencies. Uses only Node built-ins and Pi's own types.

Credits

Built on reverse-engineering work from opencode-windsurf-auth by @rsvedant. The proxy architecture, proto wire format, and OAuth flow are adapted from that project.

License

MIT