diff --git a/README.es.md b/README.es.md new file mode 100644 index 0000000..2356caf --- /dev/null +++ b/README.es.md @@ -0,0 +1,252 @@ +

+ Gemini Nexus +

+ +

Gemini Nexus

+ +

+ 🚀 Gateway de IA multi-cuenta profesional para Google Gemini y Claude +

+ +

+ English | Português | 中文 | Español +

+ +

+ + Versión + + + Descargas + + + Licencia + + Plataforma +

+ +--- + +## ✨ ¿Por qué Gemini Nexus? + +Al usar IDEs y herramientas de programación con IA, ¿te has encontrado con estos problemas? + +- 😫 La cuota de una sola cuenta se agota rápido, requiriendo cambios manuales frecuentes +- 🔄 Gestionar múltiples cuentas de Google/Claude es tedioso +- 📊 No sabes cuántos tokens has consumido o cuánta cuota queda +- 🔌 Necesitas un proxy local confiable que hable los protocolos OpenAI/Anthropic + +**Gemini Nexus** resuelve todo esto. Es una aplicación de escritorio profesional en Electron que actúa como gateway inteligente entre tus herramientas de desarrollo y Google Gemini / Claude AI: + +- ✅ **Pool de Cuentas Ilimitado** — Agrega cualquier cantidad de cuentas Google Gemini y Claude +- ✅ **Cambio Automático Inteligente** — Rota automáticamente a la siguiente cuenta disponible cuando la cuota es baja +- ✅ **Analytics de Uso en Tiempo Real** — Dashboard nivel SaaS con gráficos de área, indicadores de tendencia y distribución por modelo +- ✅ **Observabilidad Completa del Proxy** — Monitor de tráfico en vivo, replay de solicitudes e inspector de capacidades de modelos +- ✅ **Compatible con OpenAI y Anthropic** — Proxy drop-in para Cursor, Windsurf, OpenCode y cualquier herramienta compatible +- ✅ **Seguro por Defecto** — Cifrado AES-256-GCM con gestión nativa de credenciales del SO + +--- + +## 🎯 Características + + + + + + + + + + + + + + + + + + +
+

☁️ Pool de Cuentas en la Nube

+
    +
  • Agrega cuentas ilimitadas de Google Gemini / Claude vía OAuth
  • +
  • Muestra avatar, email, estado y último uso
  • +
  • Monitoreo de estado en tiempo real (Activa, Rate Limited, Expirada)
  • +
  • Configuración de proxy URL por cuenta
  • +
  • Gestión de perfil de identidad del dispositivo con historial
  • +
+
+

📊 Dashboard de Analytics de Uso

+
    +
  • Consumo de tokens en tiempo real con auto-refresh cada 15s
  • +
  • Gráficos de área para tokens de prompt y completion (diario/horario)
  • +
  • Indicadores de tendencia (% de cambio vs período anterior)
  • +
  • Sparklines inline en las tarjetas de estadísticas
  • +
  • Ranking de distribución por modelo con gráficos de barras horizontales
  • +
  • Visualización de proporción Prompt/Completion
  • +
+
+

🔌 Proxy de API Local (Gateway)

+
    +
  • Endpoint compatible con OpenAI /v1/chat/completions
  • +
  • Endpoint compatible con Anthropic /v1/messages
  • +
  • Soporte completo de streaming SSE
  • +
  • Mapeo de modelos (ej: claude-sonnet-4-6 → gemini-3-flash)
  • +
  • Puerto, timeout y API key configurables
  • +
  • Control de visibilidad de modelos
  • +
+
+

🔄 Cambio Automático Inteligente

+
    +
  • Modo pool ilimitado con selección inteligente de respaldo
  • +
  • Cambio automático cuando cuota < 5% o con rate limit
  • +
  • Monitoreo en segundo plano cada 5 minutos
  • +
  • Fallback elegante con seguimiento de razón de estado
  • +
+
+

🔍 Observabilidad del Proxy (Avanzado)

+
    +
  • Monitor de Tráfico — Log en vivo de solicitudes/respuestas
  • +
  • Replay de Solicitudes — Reproduce cualquier solicitud para debugging
  • +
  • Capacidades de Modelos — Inspecciona visión, thinking, streaming, modo JSON
  • +
  • Herramientas para Devs — Generación de código cURL y Python
  • +
+
+

🔐 Seguridad y Cifrado

+
    +
  • Cifrado AES-256-GCM para todos los datos sensibles
  • +
  • Integración con gestor de credenciales nativo del SO
  • +
  • Migración automática de datos legacy en texto plano
  • +
  • Almacenamiento cifrado de tokens y cuotas por cuenta
  • +
+
+

⚙️ Configuración y Personalización

+
    +
  • Tema Oscuro / Claro / Sistema
  • +
  • Multi-idioma: English & Português (Brasil)
  • +
  • Toggles de visibilidad de modelos
  • +
  • Acceso al directorio de logs
  • +
+
+

🖥️ Experiencia de Escritorio

+
    +
  • App nativa Electron con integración en bandeja del sistema
  • +
  • Sidebar colapsable con estado persistente
  • +
  • Layouts responsivos
  • +
  • Barra de estado con indicadores en vivo
  • +
+
+ +--- + +## 📸 Capturas de Pantalla + +

+ Main +

+

+ Usage +

+

+ Proxy +

+

+ Routing +

+

+ Docs +

+

+ Connections +

+

+ Config +

+ +--- + +## ⚡ Inicio Rápido + +### Requisitos Previos + +- **Node.js** v20 o superior +- **npm** + +### Compilar desde el Código Fuente + +```bash +git clone https://github.com/Draculabo/GeminiNexus.git +cd GeminiNexus +npm install +npm start + +# Compilar para producción +npm run make +``` + +### Uso con IDEs de IA + +```plaintext +API Base URL: http://localhost:10100/v1 +API Key: (copiar de la página Proxy en la app) +Model: gemini-3-flash +``` + +--- + +## 🛠️ Stack Tecnológico + +| Categoría | Tecnologías | +|-----------|------------| +| **Core** | Electron, React 19, TypeScript | +| **Build** | Vite, Electron Forge | +| **Estilos** | Tailwind CSS v4, Radix UI, Lucide Icons | +| **Estado** | TanStack Query, TanStack Router | +| **Backend** | NestJS (gateway interno), ORPC (RPC type-safe) | +| **Base de Datos** | Better-SQLite3, Drizzle ORM | +| **Gráficos** | Nivo (Line, Bar, Pie) | +| **Testing** | Vitest, Playwright | + +--- + +## ❓ Preguntas Frecuentes + +
+P: ¿La app no inicia? + +1. Asegúrate de que las dependencias están instaladas: `npm install` +2. Node.js versión >= 20 +3. Intenta eliminar `node_modules` y reinstalar + +
+ +
+P: ¿El IDE no conecta al proxy? + +1. Asegúrate de que el proxy está corriendo (indicador verde en la barra de estado) +2. Confirma que el puerto coincide (por defecto `10100`) +3. Copia la API key de la página Proxy +4. Asegúrate de tener al menos una cuenta activa + +
+ +--- + +## 📄 Licencia + +[CC BY-NC-SA 4.0](LICENSE) + +--- + +## ⚠️ Aviso Legal + +> [!WARNING] +> **Solo con Fines Educativos** +> +> Este proyecto está destinado exclusivamente a fines educativos y de investigación. Se proporciona "tal cual" sin ninguna garantía. **El uso comercial está estrictamente prohibido.** + +--- + +## 🙏 Créditos + +**Gemini Nexus** es una versión significativamente mejorada y expandida del proyecto original [AntigravityManager](https://github.com/Draculabo/AntigravityManager) creado por [Draculabo](https://github.com/Draculabo). Toda la arquitectura fundamental y diseño fueron realizados por el autor original. diff --git a/README.md b/README.md index d0f2699..487a78b 100644 --- a/README.md +++ b/README.md @@ -5,20 +5,14 @@

Gemini Nexus

- 🚀 Professional multi-account manager for Google Gemini & Claude AI + 🚀 Professional multi-account AI gateway for Google Gemini & Claude

- English | Português (Brasil) + English | Português | 中文 | Español

- - Tests - - - Lint - Release @@ -28,6 +22,8 @@ License + Platform + Electron

--- @@ -35,13 +31,11 @@ ## 📖 Table of Contents - [Why Gemini Nexus?](#-why-gemini-nexus) -- [Improvements over Base Project](#-improvements-over-base-project) - [Features](#-features) - [Screenshots](#-screenshots) - [Quick Start](#-quick-start) - [Tech Stack](#️-tech-stack) - [Development](#-development) -- [Debugging Docs](#-debugging-docs) - [FAQ](#-faq) - [Contributing](#-contributing) - [License](#-license) @@ -50,34 +44,22 @@ ## ✨ Why Gemini Nexus? -When using your favorite IDEs, have you ever encountered these problems? +When using AI-powered IDEs and coding tools, have you ever run into these problems? - 😫 Single account quota runs out quickly, requiring frequent manual switching - 🔄 Managing multiple Google/Claude accounts is cumbersome -- 📊 Don't know how much quota is left on the current account -- ⏰ Worried about missing quota reset times -- 🔌 Need a reliable local API proxy for development tools +- 📊 Don't know how much quota or tokens you've consumed +- 🔌 Need a reliable local API proxy that speaks OpenAI/Anthropic protocols +- 🔍 Can't see what's actually being sent/received by the proxy -**Gemini Nexus** is here to solve these problems! It's a professional Electron desktop app that helps you: +**Gemini Nexus** solves all of these. It's a professional Electron desktop application that acts as an intelligent gateway between your development tools and Google Gemini / Claude AI: -- ✅ **Unlimited Account Pool** - Add any number of Google Gemini / Claude accounts -- ✅ **Smart Auto-Switching** - Automatically switch to the next available account when quota is low or rate-limited -- ✅ **Real-time Monitoring** - Visualize quota usage for all accounts -- ✅ **Local API Proxy** - Built-in OpenAI/Anthropic compatible proxy server -- ✅ **Secure Encryption** - AES-256-GCM encryption for sensitive data - ---- - -## 🌟 Improvements over Base Project - -This project contains significant development improvements, bug fixes, and configuration enhancements compared to the original base project. - -Key improvements include: -- **Enhanced API Management UI:** Implemented dynamic model selectors and "Copy API Name" features to streamline integration with other tools. -- **Robust SSE Streaming:** Fixed critical Server-Sent Events (SSE) streaming bugs in the `/v1/chat/completions` proxy endpoint to perfectly support IDEs like Cursor, OpenCode, and Windsurf. -- **Rebranding and Localization:** Complete rebranding to Gemini Nexus with improved Portuguese (Brazil) localization and English defaults. -- **Agentic Capabilities:** Integration of advanced AI developer agents and skill frameworks (GSD, AutoResearch, Superpowers) directly into the project ecosystem for rapid autonomous development. -- **Build & Dev Env:** Better cross-platform build configurations, updated schemas, and automated toolchain processes. +- ✅ **Unlimited Account Pool** — Add any number of Google Gemini & Claude accounts +- ✅ **Smart Auto-Switching** — Automatically rotates to the next available account when quota is low or rate-limited +- ✅ **Real-time Usage Analytics** — SaaS-grade dashboard with area charts, trend indicators, and model distribution +- ✅ **Full Proxy Observability** — Live traffic monitor, request replay, and model capabilities inspector +- ✅ **OpenAI & Anthropic Compatible** — Drop-in replacement proxy for Cursor, Windsurf, OpenCode, and any OpenAI-compatible tool +- ✅ **Secure by Default** — AES-256-GCM encryption with OS-native credential management --- @@ -91,50 +73,83 @@ Key improvements include:
  • Add unlimited Google Gemini / Claude accounts via OAuth
  • Display avatar, email, status, and last used time
  • Real-time status monitoring (Active, Rate Limited, Expired)
  • +
  • Per-account proxy URL configuration
  • +
  • Device identity profile management with history
  • -

    📊 Real-time Quota Monitoring

    +

    📊 Usage Analytics Dashboard

    + +

    🔌 Local API Proxy (Gateway)

    + +

    🔄 Intelligent Auto-Switching

    - - -

    🔐 Security First

    - -

    🔌 Local API Proxy

    +

    🔍 Proxy Observability (Advanced)

    -

    🛠️ Developer Tools

    +

    🔐 Security & Encryption

    + + + + +

    ⚙️ Settings & Customization

    + + + +

    🖥️ Desktop Experience

    + @@ -144,23 +159,40 @@ Key improvements include: ## 📸 Screenshots +

    - Main Interface + Main +

    +

    + Usage +

    +

    + Proxy +

    +

    + Routing +

    +

    + Docs +

    +

    + Connections +

    +

    + Config

    --- ## ⚡ Quick Start +### Prerequisites + +- **Node.js** v20 or higher +- **npm** (this project uses `package-lock.json`) + ### Build from Source -#### Prerequisites - -- Node.js v18 or higher -- npm or pnpm - -#### Steps - ```bash # Clone the repository git clone https://github.com/Draculabo/GeminiNexus.git @@ -172,21 +204,77 @@ npm install # Start development npm start -# Build for production +# Build for production (Windows installer) npm run make ``` +### Using with AI IDEs + +Once the proxy is running, configure your IDE: + +```plaintext +# In Cursor / Windsurf / OpenCode settings: +API Base URL: http://localhost:10100/v1 +API Key: (copy from the Proxy page in the app) +Model: gemini-3-flash (or any mapped model) +``` + --- ## 🛠️ Tech Stack | Category | Technologies | |----------|-------------| -| **Core** | [Electron](https://www.electronjs.org/), [React](https://react.dev/), [TypeScript](https://www.typescriptlang.org/) | -| **Build Tool** | [Vite](https://vitejs.dev/) | -| **Styling** | [TailwindCSS](https://tailwindcss.com/), [Shadcn UI](https://ui.shadcn.com/) | -| **State** | [TanStack Query](https://tanstack.com/query/latest) | -| **Database** | [Better-SQLite3](https://github.com/WiseLibs/better-sqlite3) | +| **Core** | [Electron](https://www.electronjs.org/), [React 19](https://react.dev/), [TypeScript](https://www.typescriptlang.org/) | +| **Build** | [Vite](https://vitejs.dev/), [Electron Forge](https://www.electronforge.io/) | +| **Styling** | [Tailwind CSS v4](https://tailwindcss.com/), [Radix UI](https://www.radix-ui.com/), [Lucide Icons](https://lucide.dev/) | +| **State** | [TanStack Query](https://tanstack.com/query/latest), [TanStack Router](https://tanstack.com/router/latest) | +| **Backend** | [NestJS](https://nestjs.com/) (internal gateway), [ORPC](https://orpc.unnoq.com/) (type-safe RPC) | +| **Database** | [Better-SQLite3](https://github.com/WiseLibs/better-sqlite3), [Drizzle ORM](https://orm.drizzle.team/) | +| **Charts** | [Nivo](https://nivo.rocks/) (Line, Bar, Pie) | +| **i18n** | [react-i18next](https://react.i18next.com/) | +| **Testing** | [Vitest](https://vitest.dev/), [Playwright](https://playwright.dev/) | + +--- + +## 💻 Development + +```bash +# Start dev environment (Electron + Vite HMR) +npm start + +# Run linting +npm run lint + +# Type check +npm run type-check + +# Format code +npm run format:write + +# Run tests +npm test +``` + +### Project Structure + +```plaintext +src/ +├── actions/ # App actions and flow orchestration +├── components/ # React UI components +│ ├── proxy/ # Proxy page components (advanced tabs) +│ ├── usage/ # Usage analytics components (StatCard, ChartCard) +│ └── ui/ # Base UI primitives (Radix-based) +├── hooks/ # Custom React hooks +├── ipc/ # Electron IPC + database handlers +├── layouts/ # Layout components (MainLayout + sidebar) +├── localization/ # i18n translation resources +├── routes/ # TanStack Router pages (index, usage, proxy, settings) +├── server/ # NestJS backend (proxy gateway service) +├── services/ # Service layer +├── types/ # TypeScript type definitions + Zod schemas +└── utils/ # Utility functions +``` --- @@ -195,10 +283,10 @@ npm run make
    Q: The app won't start? -Please check: 1. Make sure all dependencies are installed: `npm install` -2. Check if Node.js version is >= 18 +2. Check if Node.js version is >= 20 3. Try deleting `node_modules` and reinstalling +4. On Windows, ensure the WiX Toolset is available for `npm run make`
    @@ -211,6 +299,25 @@ Please check: +
    +Q: IDE can't connect to the proxy? + +1. Make sure the proxy is running (green indicator in the status bar) +2. Verify the port matches your IDE config (default: `10100`) +3. Copy the API key from the Proxy page and paste it in your IDE settings +4. Check that at least one account is active in the Accounts page + +
    + +
    +Q: Token counts show zero? + +1. This was a known bug in earlier versions — update to the latest version +2. Token tracking now correctly handles streaming metadata and estimated counts +3. Usage data refreshes every 15 seconds on the Usage Analytics page + +
    + --- ## 🤝 Contributing diff --git a/README.pt-BR.md b/README.pt-BR.md index 9e9b959..3326385 100644 --- a/README.pt-BR.md +++ b/README.pt-BR.md @@ -5,57 +5,61 @@

    Gemini Nexus

    - 🚀 Gerenciador multi-contas profissional para Google Gemini & Claude AI + 🚀 Gateway de IA multi-contas profissional para Google Gemini & Claude

    - English | Português (Brasil) + English | Português | 中文 | Español

    - - Tests - - - Lint - Release + + Downloads + + + Licença + + Plataforma + Electron

    --- +## 📖 Sumário + +- [Por que o Gemini Nexus?](#-por-que-o-gemini-nexus) +- [Funcionalidades](#-funcionalidades) +- [Screenshots](#-screenshots) +- [Início Rápido](#-início-rápido) +- [Stack Tecnológica](#️-stack-tecnológica) +- [Desenvolvimento](#-desenvolvimento) +- [FAQ](#-faq) +- [Contribuindo](#-contribuindo) +- [Licença](#-licença) + +--- + ## ✨ Por que o Gemini Nexus? -Quando você usa suas IDEs favoritas, já encontrou estes problemas? +Ao usar IDEs e ferramentas de programação com IA, você já enfrentou estes problemas? -- 😫 A cota da sua única conta acaba rápido, exigindo trocas manuais frequentes +- 😫 A cota da conta única acaba rápido, exigindo trocas manuais frequentes - 🔄 Gerenciar múltiplas contas do Google/Claude é cansativo -- 📊 Você não sabe quanta cota resta na conta atual -- 🔌 Precisa de um proxy local e confiável para suas ferramentas de desenvolvimento +- 📊 Não sabe quantos tokens já consumiu ou quanta cota resta +- 🔌 Precisa de um proxy local confiável que fale os protocolos OpenAI/Anthropic +- 🔍 Não consegue ver o que está sendo enviado/recebido pelo proxy -**Gemini Nexus** está aqui para resolver tudo isso! Ele é um app desktop profissional construído em Electron que te ajuda a: +**Gemini Nexus** resolve tudo isso. É um aplicativo desktop profissional em Electron que funciona como um gateway inteligente entre suas ferramentas de desenvolvimento e o Google Gemini / Claude AI: -- ✅ **Contas Ilimitadas** - Adicione quantas contas Google Gemini / Claude quiser -- ✅ **Troca Automática** - Troca inteligentemente para a próxima conta disponível quando o limite é atingido -- ✅ **Monitoramento em Tempo Real** - Visualize o uso de cota de todas as contas -- ✅ **Proxy de API Local** - Servidor proxy integrado compatível com OpenAI/Anthropic -- ✅ **Criptografia Segura** - Criptografia AES-256-GCM para seus dados sensíveis - ---- - -## 🌟 Melhorias sobre o Projeto Base - -Este projeto contém melhorias significativas de desenvolvimento, correção de erros e melhorias de configuração em relação ao projeto original base. - -Principais melhorias incluem: - -- **Interface de Gerenciamento de API Aprimorada:** Seletores dinâmicos de modelos e recursos de "Copiar Nome da API" implementados para facilitar a integração com outras ferramentas. -- **Streaming Robusto (SSE):** Correção de bugs críticos no streaming via Server-Sent Events (SSE) no endpoint proxy `/v1/chat/completions` para suportar perfeitamente IDEs como Cursor, OpenCode e Windsurf. -- **Rebranding e Localização:** Rebranding completo para Gemini Nexus com traduções melhoradas em Português (Brasil) e padrões em Inglês. -- **Capacidades de Agentes:** Integração direta de frameworks avançados de agentes desenvolvedores de IA e skills (GSD, AutoResearch, Superpowers) no ecossistema do projeto para desenvolvimento autônomo rápido. -- **Ambiente de Build e Dev:** Melhores configurações de build cross-platform, schemas atualizados e processos de toolchain automatizados. +- ✅ **Pool de Contas Ilimitado** — Adicione quantas contas Google Gemini & Claude quiser +- ✅ **Troca Automática Inteligente** — Rotaciona automaticamente para a próxima conta disponível quando a cota está baixa ou com rate limit +- ✅ **Analytics de Uso em Tempo Real** — Dashboard nível SaaS com gráficos de área, indicadores de tendência e distribuição por modelo +- ✅ **Observabilidade Completa do Proxy** — Monitor de tráfego ao vivo, replay de requisições e inspetor de capacidades dos modelos +- ✅ **Compatível com OpenAI & Anthropic** — Proxy drop-in para Cursor, Windsurf, OpenCode e qualquer ferramenta compatível com OpenAI +- ✅ **Seguro por Padrão** — Criptografia AES-256-GCM com gerenciamento nativo de credenciais do SO --- @@ -66,31 +70,86 @@ Principais melhorias incluem:

    ☁️ Pool de Contas na Nuvem

    -

    📊 Monitoramento de Cota

    +

    📊 Dashboard de Analytics de Uso

    -

    🔄 Troca Automática

    +

    🔌 Proxy de API Local (Gateway)

    -

    🔌 Proxy Local

    +

    🔄 Troca Automática Inteligente

    + + + + +

    🔍 Observabilidade do Proxy (Avançado)

    + + + +

    🔐 Segurança e Criptografia

    + + + + + +

    ⚙️ Configurações e Personalização

    + + + +

    🖥️ Experiência Desktop

    + @@ -98,16 +157,41 @@ Principais melhorias incluem: --- -## ⚡ Começo Rápido +## 📸 Screenshots -### Construindo pelo Código Fonte -#### Pré-requisitos +

    + Main +

    +

    + Usage +

    +

    + Proxy +

    +

    + Routing +

    +

    + Docs +

    +

    + Connections +

    +

    + Config +

    -- Node.js v18 ou superior -- npm +--- -#### Passos +## ⚡ Início Rápido + +### Pré-requisitos + +- **Node.js** v20 ou superior +- **npm** (este projeto usa `package-lock.json`) + +### Compilando pelo Código Fonte ```bash # Clone o repositório @@ -120,10 +204,126 @@ npm install # Inicie o modo de desenvolvimento npm start -# Construa para produção +# Compile para produção (instalador Windows) npm run make ``` +### Usando com IDEs de IA + +Com o proxy em execução, configure sua IDE: + +```plaintext +# Nas configurações do Cursor / Windsurf / OpenCode: +API Base URL: http://localhost:10100/v1 +API Key: (copie da página Proxy no app) +Model: gemini-3-flash (ou qualquer modelo mapeado) +``` + +--- + +## 🛠️ Stack Tecnológica + +| Categoria | Tecnologias | +|-----------|------------| +| **Core** | [Electron](https://www.electronjs.org/), [React 19](https://react.dev/), [TypeScript](https://www.typescriptlang.org/) | +| **Build** | [Vite](https://vitejs.dev/), [Electron Forge](https://www.electronforge.io/) | +| **Estilização** | [Tailwind CSS v4](https://tailwindcss.com/), [Radix UI](https://www.radix-ui.com/), [Lucide Icons](https://lucide.dev/) | +| **Estado** | [TanStack Query](https://tanstack.com/query/latest), [TanStack Router](https://tanstack.com/router/latest) | +| **Backend** | [NestJS](https://nestjs.com/) (gateway interno), [ORPC](https://orpc.unnoq.com/) (RPC type-safe) | +| **Banco de Dados** | [Better-SQLite3](https://github.com/WiseLibs/better-sqlite3), [Drizzle ORM](https://orm.drizzle.team/) | +| **Gráficos** | [Nivo](https://nivo.rocks/) (Line, Bar, Pie) | +| **i18n** | [react-i18next](https://react.i18next.com/) | +| **Testes** | [Vitest](https://vitest.dev/), [Playwright](https://playwright.dev/) | + +--- + +## 💻 Desenvolvimento + +```bash +# Iniciar ambiente de dev (Electron + Vite HMR) +npm start + +# Executar linting +npm run lint + +# Verificar tipos +npm run type-check + +# Formatar código +npm run format:write + +# Rodar testes +npm test +``` + +### Estrutura do Projeto + +```plaintext +src/ +├── actions/ # Ações do app e orquestração de fluxos +├── components/ # Componentes React +│ ├── proxy/ # Componentes da página Proxy (abas avançadas) +│ ├── usage/ # Componentes de analytics de uso (StatCard, ChartCard) +│ └── ui/ # Primitivos base de UI (baseados no Radix) +├── hooks/ # Custom React hooks +├── ipc/ # Electron IPC + handlers de banco de dados +├── layouts/ # Componentes de layout (MainLayout + sidebar) +├── localization/ # Recursos de tradução i18n +├── routes/ # Páginas TanStack Router (index, usage, proxy, settings) +├── server/ # Backend NestJS (serviço de gateway proxy) +├── services/ # Camada de serviços +├── types/ # Definições de tipos TypeScript + schemas Zod +└── utils/ # Funções utilitárias +``` + +--- + +## ❓ FAQ + +
    +P: O app não inicia? + +1. Certifique-se de que todas as dependências estão instaladas: `npm install` +2. Verifique se a versão do Node.js é >= 20 +3. Tente deletar `node_modules` e reinstalar +4. No Windows, certifique-se de que o WiX Toolset está disponível para `npm run make` + +
    + +
    +P: O login da conta falhou? + +1. Verifique se a conexão com a internet está funcionando +2. Tente limpar os dados do app e fazer login novamente +3. Verifique se a conta está restrita pelo Google/Claude + +
    + +
    +P: A IDE não conecta no proxy? + +1. Certifique-se de que o proxy está rodando (indicador verde na barra de status) +2. Verifique se a porta corresponde à configuração da sua IDE (padrão: `10100`) +3. Copie a API key da página Proxy e cole nas configurações da sua IDE +4. Verifique se pelo menos uma conta está ativa na página de Contas + +
    + +
    +P: A contagem de tokens mostra zero? + +1. Este era um bug conhecido em versões anteriores — atualize para a versão mais recente +2. O rastreamento de tokens agora lida corretamente com metadados de streaming e contagens estimadas +3. Os dados de uso são atualizados a cada 15 segundos na página de Analytics de Uso + +
    + +--- + +## 🤝 Contribuindo + +Contribuições são bem-vindas! Leia o `CONTRIBUTING.md` para mais detalhes. + --- ## 📄 Licença @@ -138,9 +338,11 @@ npm run make > **Apenas para Fins Educacionais** > > Este projeto destina-se exclusivamente a fins de pesquisa e educação. Ele é fornecido "como está" sem qualquer garantia. **O uso comercial é estritamente proibido.** +> +> Ao usar este software, você concorda que não o utilizará para quaisquer fins comerciais, e que é o único responsável por garantir que seu uso esteja em conformidade com todas as leis e regulamentações aplicáveis. Os autores e contribuidores não se responsabilizam por qualquer uso indevido ou danos decorrentes do uso deste software. --- ## 🙏 Créditos -**Gemini Nexus** é uma versão significativamente aprimorada e expandida baseada no projeto original [AntigravityManager](https://github.com/Draculabo/AntigravityManager) criado por [Draculabo](https://github.com/Draculabo). Toda a arquitetura fundamental e design do projeto foram criados pelo autor original. +**Gemini Nexus** é uma versão significativamente aprimorada e expandida do projeto original [AntigravityManager](https://github.com/Draculabo/AntigravityManager) criado por [Draculabo](https://github.com/Draculabo). Toda a arquitetura fundamental e design foram criados pelo autor original. diff --git a/README.zh-CN.md b/README.zh-CN.md new file mode 100644 index 0000000..6a6ab1f --- /dev/null +++ b/README.zh-CN.md @@ -0,0 +1,250 @@ +

    + Gemini Nexus +

    + +

    Gemini Nexus

    + +

    + 🚀 专业的多账户 AI 网关,支持 Google Gemini 和 Claude +

    + +

    + English | Português | 中文 | Español +

    + +

    + + 版本 + + + 下载量 + + + 许可证 + + 平台 +

    + +--- + +## ✨ 为什么选择 Gemini Nexus? + +- 😫 单个账户配额很快用完,需要频繁手动切换 +- 🔄 管理多个 Google/Claude 账户非常繁琐 +- 📊 不知道已经消耗了多少 Token 或还剩多少配额 +- 🔌 需要一个可靠的本地 API 代理,支持 OpenAI/Anthropic 协议 + +**Gemini Nexus** 解决所有这些问题。它是一个专业的 Electron 桌面应用,作为你的开发工具和 Google Gemini / Claude AI 之间的智能网关: + +- ✅ **无限账户池** — 添加任意数量的 Google Gemini 和 Claude 账户 +- ✅ **智能自动切换** — 当配额不足或被限速时自动轮换到下一个可用账户 +- ✅ **实时使用分析** — SaaS 级仪表板,配备面积图、趋势指标和模型分布 +- ✅ **完整的代理可观测性** — 实时流量监控、请求重放和模型能力检查器 +- ✅ **兼容 OpenAI 和 Anthropic** — 即插即用的代理,支持 Cursor、Windsurf、OpenCode +- ✅ **默认安全** — AES-256-GCM 加密,配合操作系统原生凭证管理 + +--- + +## 🎯 功能特性 + + + + + + + + + + + + + + + + + + +
    +

    ☁️ 云端账户池

    +
      +
    • 通过 OAuth 添加无限量的 Google Gemini / Claude 账户
    • +
    • 显示头像、邮箱、状态和最后使用时间
    • +
    • 实时状态监控(活跃、限速、过期)
    • +
    • 每个账户可独立配置代理 URL
    • +
    • 设备身份档案管理及历史记录
    • +
    +
    +

    📊 使用分析仪表板

    +
      +
    • 实时 Token 消耗,每 15 秒自动刷新
    • +
    • 面积图展示每日/每小时的 Prompt 和 Completion Token
    • +
    • 趋势指标(与上一周期相比的百分比变化)
    • +
    • 统计卡片内嵌迷你折线图(Sparklines)
    • +
    • 水平柱状图展示模型分布排名
    • +
    • Prompt/Completion 比例可视化
    • +
    +
    +

    🔌 本地 API 代理(网关)

    +
      +
    • 兼容 OpenAI /v1/chat/completions
    • +
    • 兼容 Anthropic /v1/messages
    • +
    • 完整的 SSE 流式传输支持
    • +
    • 模型映射(如 claude-sonnet-4-6 → gemini-3-flash)
    • +
    • 可配置端口、超时时间和 API 密钥
    • +
    • 模型可见性控制
    • +
    +
    +

    🔄 智能自动切换

    +
      +
    • 无限池模式,智能备份选择
    • +
    • 配额低于 5% 或被限速时自动切换
    • +
    • 每 5 分钟后台监控
    • +
    • 优雅降级,带状态原因追踪
    • +
    +
    +

    🔍 代理可观测性(高级)

    +
      +
    • 流量监控 — 实时请求/响应日志
    • +
    • 请求重放 — 重放任意请求进行调试
    • +
    • 模型能力 — 检查视觉、思考、流式、JSON 模式
    • +
    • 开发者工具 — cURL 和 Python 代码生成
    • +
    +
    +

    🔐 安全与加密

    +
      +
    • 所有敏感数据采用 AES-256-GCM 加密
    • +
    • 集成操作系统原生凭证管理器
    • +
    • 自动迁移旧版明文数据
    • +
    • 每个账户的 Token 和配额均加密存储
    • +
    +
    +

    ⚙️ 设置与自定义

    +
      +
    • 深色 / 浅色 / 跟随系统主题
    • +
    • 多语言:English & Português (Brasil)
    • +
    • 模型可见性开关
    • +
    • 日志目录访问
    • +
    +
    +

    🖥️ 桌面体验

    +
      +
    • 原生 Electron 应用,系统托盘集成
    • +
    • 可折叠侧边栏,状态持久化
    • +
    • 响应式布局
    • +
    • 状态栏实时显示代理和连接指标
    • +
    +
    + +--- + +## 📸 截图 + +

    + Main +

    +

    + Usage +

    +

    + Proxy +

    +

    + Routing +

    +

    + Docs +

    +

    + Connections +

    +

    + Config +

    + +--- + +## ⚡ 快速开始 + +### 前置要求 + +- **Node.js** v20 或更高版本 +- **npm** + +### 从源码构建 + +```bash +git clone https://github.com/Draculabo/GeminiNexus.git +cd GeminiNexus +npm install +npm start + +# 构建生产版本 +npm run make +``` + +### 配合 AI IDE 使用 + +```plaintext +API Base URL: http://localhost:10100/v1 +API Key: (从应用的 Proxy 页面复制) +Model: gemini-3-flash +``` + +--- + +## 🛠️ 技术栈 + +| 分类 | 技术 | +|------|------| +| **核心** | Electron, React 19, TypeScript | +| **构建** | Vite, Electron Forge | +| **样式** | Tailwind CSS v4, Radix UI, Lucide Icons | +| **状态** | TanStack Query, TanStack Router | +| **后端** | NestJS (内部网关), ORPC (类型安全 RPC) | +| **数据库** | Better-SQLite3, Drizzle ORM | +| **图表** | Nivo (Line, Bar, Pie) | +| **测试** | Vitest, Playwright | + +--- + +## ❓ 常见问题 + +
    +问:应用无法启动? + +1. 确保依赖已安装:`npm install` +2. Node.js 版本 >= 20 +3. 尝试删除 `node_modules` 并重新安装 + +
    + +
    +问:IDE 无法连接代理? + +1. 确保代理正在运行(状态栏绿色指示器) +2. 确认端口一致(默认 `10100`) +3. 从 Proxy 页面复制 API 密钥 +4. 确保至少有一个账户处于活跃状态 + +
    + +--- + +## 📄 许可证 + +[CC BY-NC-SA 4.0](LICENSE) + +--- + +## ⚠️ 免责声明 + +> [!WARNING] +> **仅供教育目的** +> +> 本项目仅供教育和研究目的使用。按"原样"提供,不提供任何担保。**严禁商业用途。** + +--- + +## 🙏 致谢 + +**Gemini Nexus** 基于 [Draculabo](https://github.com/Draculabo) 创建的原始项目 [AntigravityManager](https://github.com/Draculabo/AntigravityManager) 大幅增强和扩展。所有基础架构和设计均由原作者完成。 diff --git a/docs/assets/2usage.png b/docs/assets/2usage.png new file mode 100644 index 0000000..384d8f9 Binary files /dev/null and b/docs/assets/2usage.png differ diff --git a/docs/assets/3proxy.png b/docs/assets/3proxy.png new file mode 100644 index 0000000..d95713e Binary files /dev/null and b/docs/assets/3proxy.png differ diff --git a/docs/assets/4routing.png b/docs/assets/4routing.png new file mode 100644 index 0000000..5b1a7e7 Binary files /dev/null and b/docs/assets/4routing.png differ diff --git a/docs/assets/5docs.png b/docs/assets/5docs.png new file mode 100644 index 0000000..ddf188f Binary files /dev/null and b/docs/assets/5docs.png differ diff --git a/docs/assets/6connections.png b/docs/assets/6connections.png new file mode 100644 index 0000000..de38eee Binary files /dev/null and b/docs/assets/6connections.png differ diff --git a/docs/assets/7config.png b/docs/assets/7config.png new file mode 100644 index 0000000..887e0b7 Binary files /dev/null and b/docs/assets/7config.png differ diff --git a/docs/assets/logo.png b/docs/assets/logo.png index 50d3365..1177383 100644 Binary files a/docs/assets/logo.png and b/docs/assets/logo.png differ diff --git a/docs/assets/main.png b/docs/assets/main.png new file mode 100644 index 0000000..078b589 Binary files /dev/null and b/docs/assets/main.png differ diff --git a/docs/assets/screenshot-main.png b/docs/assets/screenshot-main.png deleted file mode 100644 index 666c389..0000000 Binary files a/docs/assets/screenshot-main.png and /dev/null differ diff --git a/docs/assets/screenshot-proxy.png b/docs/assets/screenshot-proxy.png deleted file mode 100644 index 3038624..0000000 Binary files a/docs/assets/screenshot-proxy.png and /dev/null differ diff --git a/docs/assets/screenshot-setting.png b/docs/assets/screenshot-setting.png deleted file mode 100644 index 8b89877..0000000 Binary files a/docs/assets/screenshot-setting.png and /dev/null differ