How foxhui/webai2api works
WebAI2API turns browser-based AI websites into an OpenAI-compatible API. A request is routed through the HTTP/API layer, parsed and queued, then dispatched to an isolated browser worker and provider adapter; results are returned in API form. The repository also documents model discovery, cookie retrieval, streaming, failover, and a web administration UI with configuration, logs, statistics, and VNC access. Some connections are based on the README or source-index import references; unsampled implementation details are not assumed.
Main entry points: server.js HTTP Server · openai/routes.js API Routes · admin/routes.js Admin API · PoolManager.js Worker Pool
Components 22
HTTP API
- HTTP Server
src/server/server.js - API Routes
src/server/api/openai/routes.js - Token Auth
src/server/middlewares/auth.js - Request Parser
src/server/api/openai/parse.js - Task Queue
src/server/queue.js - Response Writer
src/server/respond.js
Browser Runtime
- Backend Facade
src/backend/index.js - Worker Pool
src/backend/pool/PoolManager.js - Browser Worker
src/backend/pool/Worker.js - Browser Launcher
src/backend/engine/launcher.js - Adapter Registry
src/backend/registry.js - Provider Adapters
src/backend/adapter - Failover Strategy
src/backend/strategies/failover.js
Management
- Config Manager
src/config/manager.js - Admin API
src/server/api/admin/routes.js - Web Management UI
webui/src/App.vue
Runtime Support
- Configuration
src/config/index.js - History Store
src/utils/history.js - Usage Statistics
src/utils/stats.js - Logging
src/utils/logger.js
Other components
- API Client
- AI Websites
Connections 23
- API Client → HTTP Server: sends requests
README.md - HTTP Server → Backend Facade: initializes
src/server/server.js - HTTP Server → API Routes: mounts routes
src/server/server.js - HTTP Server → Task Queue: creates queue
src/server/server.js - API Routes → Token Auth: uses auth
src/server/api/index.js - API Routes → Request Parser: parses requests
src/server/api/openai/routes.js - API Routes → Task Queue: submits tasks
- API Routes → Response Writer: writes responses
src/server/api/openai/routes.js - Backend Facade → Configuration: loads settings
src/backend/index.js - Backend Facade → Worker Pool: initializes pool
src/backend/index.js - Worker Pool → Browser Worker: dispatches tasks
src/backend/pool/PoolManager.js - Worker Pool → Failover Strategy: runs failover
src/backend/pool/PoolManager.js - Worker Pool → Adapter Registry: queries adapters
src/backend/pool/PoolManager.js - Browser Worker → Browser Launcher: starts browser
src/backend/pool/Worker.js - Browser Worker → Adapter Registry: matches models
src/backend/pool/Worker.js - Adapter Registry → Provider Adapters: loads manifests
src/backend/registry.js - Provider Adapters → AI Websites: automates sites
README.md - HTTP Server → Admin API: mounts routes
- Admin API → Config Manager: updates settings
src/server/api/admin/routes.js - Admin API → History Store: retries downloads
src/server/api/admin/routes.js - Admin API → Usage Statistics: reads statistics
src/server/api/admin/routes.js - Web Management UI → Admin API: manages service
- HTTP Server → History Store: initializes store
src/server/server.js