Sobre el proyecto

AI Switch es un "hub local de claves de API de IA" diseñado para usuarios que gestionan múltiples claves de proveedores en diversas herramientas de codificación con IA. Su propuesta central es que cambiar una clave una sola vez debe propagarse automáticamente a todas las herramientas instaladas, y que una clave fallida no debe interrumpir todo el sistema. Se presenta como una utilidad de gestión, verificación y empuje, no como un cliente de chat. Funcionalidades principales: - Almacenamiento de claves: Una tabla centralizada para claves de múltiples proveedores, con búsqueda, etiquetas, habilitación/deshabilitación por lotes, eliminación, importación masiva, fusión y deduplicación de "MetaAPI", eliminando la necesidad de editar manualmente archivos de configuración. - Verificación de salud y puntos finales: Monitoreo programado con detección de endpoints a nivel de modelo (Chat, Respuestas, Mensajes, Gemini). Incluye chequeos de calidad agrupados por proveedor, acciones específicas por modelo, errores legibles, intervalos de verificación adaptativos, deshabilitado automático opcional, failover primario/secundario y un archivo de claves inactivas. - Sincronización segura: Solo se empujan a los backends los modelos que hayan superado recientemente las pruebas de salud y endpoint. Se muestra una vista previa antes de escribir, y nunca se modifica la configuración de herramientas no instaladas. El README advierte que las verificaciones de calidad envían cuatro solicitudes cortas por modelo, lo que puede consumir cuotas del proveedor, y que la detección de endpoints se realiza por modelo. El modo automático usa endpoints verificados; el modo manual permite seleccionar entre formatos detectados. Backends soportados: OpenClaw (openclaw.json, perfiles de autenticación, modelos), OpenCode (auth.json, opencode.jsonc), Claude Code (settings.json, ~/.claude.json), Codex CLI (auth.json, config.toml + salud de Respuestas), Cline / Aider / Continue.dev (configuraciones de IDE y CLI), Hermes Agent, QwenCode, Kimi Code y TRAE Work, según docs/backends.md. Cada backend se clasifica como "No instalado", "Detenido (sincronizable)" o "En ejecución". Las familias de endpoints soportadas incluyen openai_chat (OpenAI, DeepSeek, OpenRouter, Groq, Moonshot, Qwen, etc.), anthropic, gemini y openai_responses. También se mencionan más de 26 proveedores integrados más endpoints compatibles con OpenAI personalizados, junto con adaptadores plug-and-play y una guía de contribución. Interfaz y extras: Una interfaz web con panel de control, estado de sincronización de backends, monitor de salud, centro de tareas no bloqueante, temas claro y oscuro, y localización en inglés, chino simplificado y chino tradicional. Incluye también: tipos de proveedores (Público / Relay / Clave cruda) con filtrado en el catálogo de modelos y verificación, archivado (ocultar, excluir de chequeos, restaurar después), URLs de verificación, presupuestos, exportación cifrada de perfiles, paquete de diagnóstico, rutas descendentes y paquetes de escritorio. Instalación y ejecución: - Versiones precompiladas para Windows x64, macOS Intel, macOS Apple Silicon y Linux x64: extraer y ejecutar ai-switch / start.bat / start.sh, luego abrir http://127.0.0.1:8787. - Desde código fuente: git clone, pip install -r requirements.txt, python3 run.py (Python 3.9+). - Lanzador npm/npx: npx github:kingkate2009-droid/ai-switch o instalación global. - Docker: docker compose up -d. Un "bucle de 3 minutos" documentado es: agregar proveedor y clave (o importar inteligentemente), esperar que pase la verificación de salud, empujar a los backends con vista previa, luego enviar "hi" desde OpenCode / Codex / Claude Code. Configuración y seguridad: Los datos se almacenan en ~/.ai-switch/ai-switch.db y el uso en ~/.ai-switch/usage.json. El puerto predeterminado es 8787 (AI_SWITCH_PORT). El README enfatiza que las claves solo existen bajo ~/.ai-switch/, que este directorio nunca debe ser comprometido, y menciona un token de acceso opcional en Configuración para exposición en LAN. Los estados antiguos de data.json se importan una vez, con archivos heredados guardados con sufijo .legacy para rollback. El puerto configurado es fijo: la aplicación termina con un error claro si está ocupado. El almacenamiento de estado usa SQLite transaccional. Pila y licencia: Python + Flask, JavaScript vanilla, SQLite, adaptadores extensibles; licencia Apache 2.0. La documentación incluye un inicio rápido, una página de solución de problemas para Codex, una matriz de backends y una guía para contribuir adaptadores.