0 tokens
Message history
Linked to current chat
Plain text Ln 1, Col 1 0 B

API and Agentic Tool Setup

This proxy is OpenAI-compatible. Use the base URL below with any API key value unless your tool refuses an empty key. In that case, use a placeholder such as local-proxy-key.

https://proxy-snd6ew.fly.dev/v1

Universal settings

  • Base URL: https://proxy-snd6ew.fly.dev/v1
  • API key: no authentication is required; use any placeholder string if a client requires one.
  • Default model: gpt-5-4
  • Chat endpoint: /chat/completions

HTTP endpoints

List models

GET /v1/models returns every available model ID for OpenAI-compatible clients.

Chat completions

POST /v1/chat/completions accepts OpenAI-style model, messages, and optional stream.

Image analysis

POST /v1/chat/with-image accepts model, an image URL or base64 data URI, optional question, and optional stream.

Image upload

POST /v1/chat/upload-image accepts multipart file, optional question, and optional model.

Health

GET /health reports service health, warm account count, success rate, and counters.

Account pool

GET /bank reports headless account pool mode, target, warm accounts, and status reasons.

Image requests

Use Claude models for the best image analysis results. Images can be sent as public URLs, base64 data URIs, or multipart uploads. Supported formats are PNG, JPEG, WEBP, and GIF.

fetch("https://proxy-snd6ew.fly.dev/v1/chat/with-image", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    model: "claude-opus-4-8",
    image: "https://example.com/image.jpg",
    question: "What do you see in this image?",
    stream: false
  })
})

Workspace file tools

The browser workspace gives any selected model a simple filesystem it can use during chat. The model can request tools by returning JSON. The app runs the tools, sends the results back to the model, and then the model continues its answer.

{
  "workspace_tools": [
    { "tool": "list_files" },
    { "tool": "get_file_tree" },
    { "tool": "get_context" },
    { "tool": "list_attachments" },
    { "tool": "search_files", "query": "button", "regex": false },
    { "tool": "read_file", "path": "src/example.js" },
    { "tool": "read_file_chunk", "path": "src/example.js", "start_line": 1, "line_count": 120 },
    { "tool": "save_file", "path": "src/example.js", "content": "console.log('hello');", "project": "optional project name" },
    { "tool": "write_file", "path": "src/example.js", "content": "console.log('hello');", "project": "optional project name" },
    { "tool": "apply_patch", "path": "src/example.js", "find": "old text", "replace": "new text" },
    { "tool": "replace_all", "path": "src/example.js", "find": "old", "replace": "new" },
    { "tool": "append_file", "path": "README.md", "content": "\nMore notes." },
    { "tool": "prepend_file", "path": "README.md", "content": "# Title\n\n" },
    { "tool": "format_file", "path": "src/example.js" },
    { "tool": "delete_file", "path": "old-file.txt" },
    { "tool": "delete_folder", "path": "old-folder" },
    { "tool": "save_attachment", "attachment_id": "id", "path": "uploads/file.txt" },
    { "tool": "describe_image", "attachment_id": "id", "prompt": "Describe this UI screenshot." },
    { "tool": "run_check", "path": "src/example.js" },
    { "tool": "run_python", "path": "src/example.py" },
    { "tool": "preview_file", "path": "docs/example.docx" },
    { "tool": "pin_preview_file", "path": "docs/example.docx" },
    { "tool": "unpin_preview_file", "path": "docs/example.docx" },
    { "tool": "preview_project" },
    { "tool": "undo_workspace_change" },
    { "tool": "web_search", "query": "current docs or facts", "limit": 5 }
  ]
}

run_python executes .py workspace files in the browser with Pyodide. The first run downloads the Pyodide runtime, then text workspace files are mounted under /workspace so local imports can resolve when the imported files exist in the workspace.

.docx files can be imported for AI reading and editing. The workspace stores editable extracted text with common Word formatting like headings, lists, tables, formulas, bold, italic, underline, strikethrough, superscript, subscript, and alignment. It previews as a document page and generates a real Word document when downloaded. Use pin_preview_file when the AI should keep a previewable workspace file available in the bottom preview bar for quick right-side preview access.

Endpoint models

Agentic coding tools

Exact menu labels change across versions. The setup pattern is the same: choose an OpenAI-compatible, custom, or local provider, then enter the proxy base URL, a placeholder API key, and a model ID.

Cursor

  1. Open settings for models or custom OpenAI endpoints.
  2. Add the proxy as the OpenAI-compatible base URL.
  3. Use local-proxy-key as the API key if a key is required.
  4. Add model IDs such as gpt-5-4, claude-sonnet-4-6, or gemini-3-pro.

Windsurf

  1. Open Cascade or model provider settings.
  2. Select a custom OpenAI-compatible provider when available.
  3. Set the base URL, placeholder key, and preferred model.

Cline

  1. Open Cline settings in VS Code.
  2. Choose an OpenAI-compatible provider.
  3. Paste the base URL and select or type a model ID.

Claude Code

Claude Code needs an Anthropic Messages-compatible gateway. Use this only if your proxy/gateway supports Claude Code traffic:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://proxy-snd6ew.fly.dev",
    "ANTHROPIC_AUTH_TOKEN": "local-proxy-key",
    "ANTHROPIC_MODEL": "claude-sonnet-4-6"
  }
}

Roo Code

  1. Open provider settings.
  2. Choose OpenAI-compatible or custom OpenAI.
  3. Use the proxy URL, placeholder key, and model ID.

Continue

Add a model entry using an OpenAI-compatible provider:

{
  "models": [
    {
      "title": "Proxy GPT-5.4",
      "provider": "openai",
      "model": "gpt-5-4",
      "apiBase": "https://proxy-snd6ew.fly.dev/v1",
      "apiKey": "local-proxy-key"
    }
  ]
}

Aider

Use OpenAI-compatible settings. If your shell or version uses different names, map them to the same values:

OPENAI_API_BASE=https://proxy-snd6ew.fly.dev/v1
OPENAI_API_KEY=local-proxy-key
aider --model gpt-5-4

OpenCode and similar CLIs

Choose a custom OpenAI-compatible provider and set these fields:

baseURL: https://proxy-snd6ew.fly.dev/v1
apiKey: local-proxy-key
model: gpt-5-4

Custom scripts

Any OpenAI-compatible script can call chat completions directly:

fetch("https://proxy-snd6ew.fly.dev/v1/chat/completions", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer local-proxy-key"
  },
  body: JSON.stringify({
    model: "gpt-5-4",
    messages: [{ role: "user", content: "Hello" }]
  })
})
Roblox Studio Plugin

UnlimitedSurf AI for Roblox Studio

UnlimitedSurf AI is a Roblox Studio plugin that brings an agentic AI assistant directly into your game editor. It scans a lightweight tree summary of your place first, then lets the AI pull scripts, properties, plans, notes, attachments, and rig details only when needed.

  • Lazy game scanning across Workspace, ServerScriptService, StarterGui, ReplicatedStorage, and other core services.
  • On-demand tools for reading scripts, inspecting properties, writing plans, and working with project notes and goals.
  • Safety workflows including undo waypoints, checkpoints, rollback commands, and script snapshots.
  • Roblox-focused helpers for icon libraries, UI asset descriptions, attachments, and test rig animation work.
Download Roblox Plugin

One-Copy Setup

For quick setup, copy this single block into your coding tool or notes.

OpenAI-compatible API setup

Base URL: https://proxy-snd6ew.fly.dev/v1
API key: unused
Default model: gpt-5-4
Chat endpoint: /chat/completions
Models endpoint: /models
Image URL/base64 endpoint: /chat/with-image
Image upload endpoint: /chat/upload-image
Health check: https://proxy-snd6ew.fly.dev/health
Account pool: https://proxy-snd6ew.fly.dev/bank

Available model IDs:
gpt-5-5
gpt-5-4
gpt-5-3
gpt-5-1
gpt-5
gpt-5-mini
gpt-4o
gpt-4o-mini
claude-opus-4-8
claude-opus-4-7
claude-opus-4-6
claude-opus-4-5
claude-opus-4-1
claude-sonnet-4-6
gemini-3-1-pro
gemini-3-pro
gemini-3-flash
gemini-2.5-flash
deepseek-v4-pro
deepseek-v4-flash
deepseek-r1
grok-4
qwen-3-max
llama-3-3-70b-versatile

Text chat body:
{
  "model": "claude-opus-4-8",
  "messages": [{ "role": "user", "content": "Hello!" }],
  "stream": false
}

Image body:
{
  "model": "claude-opus-4-8",
  "image": "https://example.com/image.jpg",
  "question": "What do you see?",
  "stream": false
}
Browser data notice Chats, settings, and custom R2 credentials are saved in this browser. Workspace files are saved in R2.