antigravity-manager
SKILL.md
Antigravity Manager Developer Guide
🏗️ Architecture Overview
Antigravity Manager is a hybrid Desktop Application built with Electron, React, and NestJS. It follows a modular architecture where the frontend (Renderer) communicates with the backend (Main) via type-safe IPC (ORPC).
graph TD
User[User Interface] -->|React/Vite| Renderer[Renderer Process]
Renderer -->|ORPC Client| IPC[IPC Layer]
IPC -->|ORPC Router| Main[Main Process]
Main -->|Bootstraps| Server[NestJS Server]
Main -->|Calls| Services[Service Layer]
Services -->|Read/Write| DB[(SQLite Database)]
Services -->|HTTP| Cloud[Cloud APIs (Google/Anthropic)]
Key Technologies
- Frontend: React 19, TailwindCSS v4, TanStack Router, TanStack Query.
- Backend: Electron (Main), NestJS (Core Logic), Better-SQLite3 (Data).
- Communication: ORPC (Type-safe IPC wrapper around Electron IPC).
- Build: Electron Forge + Vite.
📂 Directory Structure
src/main.ts: Electron Main Process entry point.src/preload.ts: Bridge between Main and Renderer.src/renderer.tsx: React App entry point.src/components/: Reusable React UI components (Radix UI based).src/ipc/: IPC Routers and Handlers (Domain logic).router.ts: Main ORPC router definition.account/,cloud/,database/: Domain-specific handlers.
src/server/: NestJS application modules (proxies/gateways).src/services/: Core business logic (framework agnostic).GoogleAPIService.ts: Gemini/Cloud interactions.AutoSwitchService.ts: Account rotation logic.
src/routes/: Frontend routing definitions (File-based).
🚀 Development Workflow
Prerequisites
- Node.js 18+
- npm (Project uses
package-lock.json)
Common Commands
- Start Dev Server:
npm start - Lint Code:
npm run lint - Unit Test:
npm run test:unit - E2E Test:
npm run test:e2e - Build Production:
npm run make
🧠 Core Concepts
IPC Communication (ORPC)
The project uses orpc for type-safe communication.
- Define: Create a router in
src/ipc/router.tswith Zod schemas. - Implement: Add logic in handlers (e.g.,
src/ipc/account/handler.ts). - Call: Use the generated client in React components.
Database Access
Data is stored in a local SQLite file (test.db in dev, user data in prod).
- Use
Better-SQLite3for direct access. - Logic should be encapsulated in
src/servicesorsrc/ipc.
Account Management
- Accounts are added via OAuth (Google/Claude).
GoogleAPIServicehandles token exchange and refreshing.AutoSwitchServicemonitors usage and switches active accounts automatically.
⚠️ Critical Rules
- Type Safety: strict TypeScript usage; Zod for runtime validation.
- Components: Use
src/components/ui(Radix primitives) for consistency. - Async: Handle all IPC/DB calls asynchronously with try/catch.
- Security: Never commit secrets. API keys are user-provided or encrypted locally.
Weekly Installs
8
Repository
draculabo/antig…ymanagerGitHub Stars
1.1K
First Seen
Feb 2, 2026
Security Audits
Installed on
gemini-cli7
github-copilot7
codex7
kimi-cli7
amp7
cline7