co-mono/packages/proxy
Mario Zechner d2b60f11eb fix: RPC mode session management not saving sessions
Since version 0.9.0, RPC mode (--mode rpc) was not saving messages to
session files. The agent.subscribe() call with session management logic
was only present in the TUI renderer after it was refactored.

RPC mode now properly saves sessions just like interactive mode.

Added test for RPC mode session management to prevent regression.

Fixes #83

Thanks @kiliman for reporting this issue!
2025-12-01 01:19:17 +01:00
..
src Proxy package 2025-10-05 19:02:15 +02:00
package.json fix: RPC mode session management not saving sessions 2025-12-01 01:19:17 +01:00
README.md Proxy package 2025-10-05 19:02:15 +02:00
tsconfig.json Proxy package 2025-10-05 19:02:15 +02:00

@mariozechner/pi-proxy

CORS and authentication proxy for pi-ai. Enables browser clients to access OAuth-protected endpoints.

Usage

CORS Proxy

Zero-config CORS proxy for development:

# Run directly with tsx
npx tsx packages/proxy/src/cors-proxy.ts 3001

# Or use npm script
npm run dev -w @mariozechner/pi-proxy

# Or install globally and use CLI
npm install -g @mariozechner/pi-proxy
pi-proxy 3001

The proxy will forward requests to any URL:

// Instead of:
fetch('https://api.anthropic.com/v1/messages', { ... })

// Use:
fetch('http://localhost:3001?url=https://api.anthropic.com/v1/messages', { ... })

OAuth Integration

For Anthropic OAuth tokens, configure your client to use the proxy:

import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic({
  apiKey: 'oauth_token_here',
  baseURL: 'http://localhost:3001?url=https://api.anthropic.com'
});

Future Proxy Types

  • BunnyCDN Edge Function: Deploy as edge function
  • Managed Proxy: Self-hosted with provider key management and credential auth
  • Cloudflare Worker: Deploy as CF worker

Architecture

The proxy:

  1. Accepts requests with ?url=<target> query parameter
  2. Forwards all headers (except host, origin)
  3. Forwards request body for non-GET/HEAD requests
  4. Returns response with CORS headers enabled
  5. Strips CORS headers from upstream response

Development

npm install
npm run build
npm run check