How fairyspace/arena2api works
Arena2API turns Arena.ai models into an OpenAI-compatible local API. A client sends a model listing or chat request to the Python proxy; the proxy uses extension-pushed credentials, cookies, models, and reCAPTCHA tokens to call Arena.ai, then returns a complete response or translated SSE stream. Chrome and Firefox extensions implement parallel browser-side collection and messaging paths, with a popup for connection status and manual actions. The README documents the major capabilities; internal server stages are grouped from its documented flow, since the excerpt does not expose all implementations.
Main entry points: server.py OpenAI Proxy · extension/background.js Background Worker · extension-firefox/background.js Background Script · content.js Content Bridge
Components 15
Proxy API
- OpenAI Proxy
server.py
Request Processing
- Auth and Model State
server.py - Model Catalog
server.py - Arena Request
server.py - Response Conversion
server.py
Chrome Extension
- Background Worker
extension/background.js - Content Bridge
extension/content.js - Page Injector
extension/injector.js - Status Popup
extension/popup.js
Firefox Extension
- Background Script
extension-firefox/background.js - Content Bridge
extension-firefox/content.js - Page Injector
extension-firefox/injector.js - Status Popup
extension-firefox/popup.js
Other components
- API Client
- Arena.ai
Connections 17
- API Client → OpenAI Proxy: sends API request
README.md - OpenAI Proxy → Model Catalog: lists or matches
README.md - OpenAI Proxy → Auth and Model State: checks connection and credentials
README.md - OpenAI Proxy → Arena Request: builds Arena request
README.md - Arena Request → Arena.ai: calls Arena API
README.md - Arena.ai → Response Conversion: returns SSE
README.md - Response Conversion → API Client: returns OpenAI response
README.md - Page Injector → Content Bridge: posts page data
extension/content.js - Content Bridge → Background Worker: sends extension messages
extension/content.js - Background Worker → Content Bridge: requests token or cookies
extension/background.js - Background Worker → OpenAI Proxy: pushes extension data
extension/background.js - Status Popup → Background Worker: requests status and actions
extension/popup.js - Page Injector → Content Bridge: posts page data
extension-firefox/content.js - Content Bridge → Background Script: sends extension messages
extension-firefox/content.js - Background Script → Content Bridge: requests token or cookies
extension-firefox/background.js - Background Script → OpenAI Proxy: pushes extension data
extension-firefox/background.js - Status Popup → Background Script: requests status and actions
extension-firefox/popup.js