[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81283":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":11,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":14,"stars30d":14,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":15,"rankGlobal":9,"rankLanguage":9,"license":16,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":17,"topics":20,"createdAt":9,"pushedAt":9,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":14,"starSnapshotCount":14,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},81283,"NOXUS-AI-Open-WhatsApp","5bv57zcm44-max\u002FNOXUS-AI-Open-WhatsApp","5bv57zcm44-max"," Most WhatsApp gateways stop at \"send a message.\" **NOXUS AI Open WhatsApp** goes further: it ships a **grounded AI agent** that answers customers from your own knowledge — and can call your live APIs by slash command before replying.  You bring the data and the APIs. NOXUS does the WhatsApp, the AI, and the operations console.",null,"TypeScript",48,10,6,0,3.12,"MIT License",false,"main",true,[],"2026-06-12 02:04:13","\u003Cp align=\"center\">\n  \u003Cimg src=\"dashboard\u002Fpublic\u002Fnoxus-logo.png\" alt=\"NOXUS AI Open WhatsApp\" width=\"220\"\u002F>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">NOXUS AI Open WhatsApp\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>AI-grounded WhatsApp operations platform — built for teams that want a real assistant on WhatsApp, not just an API gateway.\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fnoxusai.online\u002F\">\u003Cb>noxusai.online\u003C\u002Fb>\u003C\u002Fa> ·\n  \u003Ca href=\"#why-noxus-ai-open-whatsapp\">Why\u003C\u002Fa> ·\n  \u003Ca href=\"#the-ai-stack\">AI Stack\u003C\u002Fa> ·\n  \u003Ca href=\"#api-slash-commands--the-killer-feature\">API Slash\u003C\u002Fa> ·\n  \u003Ca href=\"#quick-start\">Quick Start\u003C\u002Fa> ·\n  \u003Ca href=\"#docs\">Docs\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-0.1.6-7c5cff.svg\" alt=\"Version\"\u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-2dd4bf.svg\" alt=\"License\"\u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fnode-22_LTS-22c55e.svg\" alt=\"Node\"\u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNestJS-11.x-e0234e.svg\" alt=\"NestJS\"\u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FReact-19-61dafb.svg\" alt=\"React\"\u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAI-Gemini%202.5-fbbf24.svg\" alt=\"AI\"\u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocker-ready-2496ed.svg\" alt=\"Docker\"\u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTypeScript-5.x-3178C6.svg\" alt=\"TypeScript\"\u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"dashboard\u002Fpublic\u002Fnoxus-pattern.png\" alt=\"NOXUS pattern\" width=\"100%\"\u002F>\n\u003C\u002Fp>\n\n---\n\n## Why NOXUS AI Open WhatsApp?\n\nMost WhatsApp gateways stop at \"send a message.\" **NOXUS AI Open WhatsApp** goes further: it ships a **grounded AI agent** that answers customers from your own knowledge — and can call your live APIs by slash command before replying.\n\nYou bring the data and the APIs. NOXUS does the WhatsApp, the AI, and the operations console.\n\n|                                |                                                              |\n| ------------------------------ | ------------------------------------------------------------ |\n| **Grounded Gemini AI**         | Replies only from your knowledge base + live API context     |\n| **API Slash Commands**         | Register APIs once, reference them in Reply Data with `\u002Fslug` |\n| **Full WhatsApp REST API**     | Sessions, messages, media, groups, channels, labels         |\n| **Operations Dashboard**       | React UI for sessions, AI, webhooks, infra, audit            |\n| **100% Open Source**           | No vendor lock-in, no paywalls, MIT license                 |\n| **Pluggable Architecture**     | Swap DB (SQLite\u002FPostgres), cache, storage, engine            |\n| **Docker Native**              | Production stack with one command                            |\n| **Bilingual UI**               | English + Arabic, full RTL support                           |\n\n> Hosted by us at **[noxusai.online](https:\u002F\u002Fnoxusai.online\u002F)** · self-host with the steps below.\n\n---\n\n## The AI Stack\n\nNOXUS ships with a real AI layer for WhatsApp customer support, not just an HTTP wrapper. It is **grounded** — the assistant is locked to your company-provided knowledge and live API responses.\n\n### How a reply is generated\n\n```\n┌─────────────────┐    1. message      ┌──────────────────┐\n│  WhatsApp user  │ ─────────────────► │   NOXUS engine   │\n└─────────────────┘                    └────────┬─────────┘\n                                                │ 2. extract \u002Fslugs from Reply Data\n                                                ▼\n                              ┌─────────────────────────────────────┐\n                              │  Reply Data (your knowledge.md)     │\n                              │  \"Live menu and prices: \u002Fmenu\"      │\n                              │  \"Stock check: \u002Fstock\"              │\n                              └────────────┬────────────────────────┘\n                                           │ 3. fetch live APIs in parallel\n                                           ▼\n                              ┌─────────────────────────────────────┐\n                              │  \u002Fmenu  → https:\u002F\u002Fapi.you\u002Fmenu      │\n                              │  \u002Fstock → https:\u002F\u002Fapi.you\u002Fstock?... │\n                              └────────────┬────────────────────────┘\n                                           │ 4. inject into prompt context\n                                           ▼\n                              ┌─────────────────────────────────────┐\n                              │  Gemini (grounded) ─ company data + │\n                              │  live API JSON + safety rules       │\n                              └────────────┬────────────────────────┘\n                                           │ 5. concise WhatsApp reply\n                                           ▼\n                              ┌─────────────────────────────────────┐\n                              │  Sent back to the customer          │\n                              └─────────────────────────────────────┘\n```\n\n### AI features\n\n| Feature                          | What it does                                                                                       |\n| -------------------------------- | -------------------------------------------------------------------------------------------------- |\n| **Grounded auto-reply**          | Customers' messages are answered by Gemini, **only** from your Reply Data and live API responses   |\n| **`\u002Fslug` API Slash Commands**   | Register external APIs in the dashboard; reference them inline from Reply Data as `\u002Fslug`          |\n| **Live context injection**       | At reply time, every referenced API is fetched in parallel (6s timeout, 4 KB cap) and merged in    |\n| **Per-API description**          | Each API carries a description so the model knows *what* it's for and *when* to lean on it         |\n| **No-hallucination guardrail**   | If neither knowledge nor API context covers the question, AI says \"the team will follow up\"        |\n| **Per-chat cooldown**            | Configurable cooldown per chat prevents reply storms (default 30s)                                 |\n| **Group safety**                 | Group replies are off by default; flip a switch when you want them on                              |\n| **Interaction log**              | Every question, decision (replied \u002F skipped \u002F failed) and reason persisted in `data\u002Fai\u002F`           |\n| **Bilingual replies**            | The assistant mirrors the customer's language automatically (works great in EN\u002FAR)                 |\n| **Live test from dashboard**     | One-click \"Test\" probes any API, stores `lastStatus` + `lastError` + a 600-char response sample    |\n| **Audit-friendly**               | API key, headers, request body all stored as JSON — no hidden config                               |\n\n### API Slash Commands — the killer feature\n\nStatic knowledge files lie the moment your prices, stock, or schedule change. Slash commands fix that.\n\n1. **Open the dashboard → AI Manager → APIs (slash commands) → Add API**\n2. Give it a **slug** (e.g. `menu`), a **name**, a **description** (\"Live restaurant menu and prices\"), the **URL**, optional headers, and method.\n3. Save and click **Test** — you'll see `HTTP 200`, response time, and a 600-char sample.\n4. Open **Reply Data** and write your knowledge naturally, referencing the API with `\u002F`:\n\n   ```md\n   Our hours are 10 AM – 11 PM, daily.\n\n   The live menu and current prices are provided via \u002Fmenu.\n   For real-time stock on a specific item, use \u002Fstock.\n   ```\n\n5. Type `\u002F` anywhere in Reply Data to open a picker that lists every registered API with its description — pick one to insert it.\n\nAt reply time, NOXUS scans your Reply Data for `\u002Fslug` tokens, fetches each enabled API in parallel, and slots the response into the prompt as `[API \u002Fmenu] {…}` with the description, so Gemini knows what the data is and grounds its answer in it.\n\nIf an API is down, the model is told it failed and falls back to the \"the team will follow up\" guardrail rather than making something up.\n\n> Endpoints: `GET \u002Fapi\u002Fai\u002Fapis`, `POST \u002Fapi\u002Fai\u002Fapis`, `PUT \u002Fapi\u002Fai\u002Fapis\u002F:id`, `DELETE \u002Fapi\u002Fai\u002Fapis\u002F:id`, `POST \u002Fapi\u002Fai\u002Fapis\u002F:id\u002Ftest`\n\n---\n\n## The Operations Dashboard\n\nA modern React 19 + Vite + TanStack Query dashboard with full English\u002FArabic + RTL support. Every module is a real first-class page, not a settings panel.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fscreenshots\u002Fdashboard.png\" alt=\"NOXUS AI Open WhatsApp — Dashboard\" width=\"100%\"\u002F>\n  \u003Cbr\u002F>\n  \u003Csub>\u003Cem>Dashboard — live overview of sessions, messages, webhooks, and AI status\u003C\u002Fem>\u003C\u002Fsub>\n\u003C\u002Fp>\n\n| Module               | What you can do from it                                                                  |\n| -------------------- | ---------------------------------------------------------------------------------------- |\n| **Dashboard**        | Live overview: active sessions, messages today, webhooks, AI status                      |\n| **Sessions**         | Create\u002Fstart\u002Fstop WhatsApp sessions, scan QR codes, see live status                      |\n| **Message Tester**   | Send text\u002Fmedia to any chat and see the result without writing code                      |\n| **AI Manager**       | Configure Gemini, edit Reply Data with the `\u002F` picker, register APIs, view AI log        |\n| **Webhooks**         | HMAC-signed webhooks per session, granular event subscription                            |\n| **API Keys**         | Role-based keys (admin\u002Fuser\u002Freadonly), IP allowlists, session scoping, expiry           |\n| **Infrastructure**   | Switch DB \u002F cache \u002F storage \u002F engine without editing code, persist to `.env`             |\n| **Plugins**          | Toggle pluggable engines (whatsapp-web.js, future Baileys), per-plugin config            |\n| **Logs**             | Paginated audit trail across the platform, filterable by severity                        |\n\n### Screenshots\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fscreenshots\u002Fai-manager.png\" alt=\"AI Manager\" width=\"100%\"\u002F>\n  \u003Cbr\u002F>\n  \u003Csub>\u003Cb>AI Manager\u003C\u002Fb> — Gemini settings + Reply Data with the \u003Ccode>\u002F\u003C\u002Fcode> picker for live API slash commands\u003C\u002Fsub>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fscreenshots\u002Fai-interactions.png\" alt=\"AI Interactions Log\" width=\"100%\"\u002F>\n  \u003Cbr\u002F>\n  \u003Csub>\u003Cb>AI Interactions Log\u003C\u002Fb> — every question, decision and reason. The assistant mirrors the customer's language automatically (Arabic \u002F RTL shown).\u003C\u002Fsub>\n\u003C\u002Fp>\n\n---\n\n## Platform Features\n\n### Messaging & WhatsApp\n\n| Feature             | Status | Notes                                            |\n| ------------------- | ------ | ------------------------------------------------ |\n| Text Messages       | ✅     | Single + bulk send                               |\n| Media Messages      | ✅     | Images, video, documents, audio, voice notes    |\n| Message Reactions   | ✅     | Emoji reactions to inbound and outbound messages |\n| Read \u002F Typing       | ✅     | Read receipts, typing\u002Frecording indicators       |\n| Groups API          | ✅     | Create, manage participants, mute, message       |\n| Channels\u002FNewsletter | ✅     | WhatsApp Channels support                        |\n| Labels              | ✅     | Organise chats with native WhatsApp labels       |\n| Multi-Session       | ✅     | Multiple WhatsApp accounts on one instance       |\n\n### AI\n\n| Feature                | Status | Notes                                                                 |\n| ---------------------- | ------ | --------------------------------------------------------------------- |\n| Gemini Auto-Reply      | ✅     | Grounded on your Reply Data                                           |\n| API Slash Commands     | ✅     | `\u002Fslug` tokens fetched live before each reply                         |\n| Per-chat cooldown      | ✅     | Default 30 s, configurable                                            |\n| Interaction log        | ✅     | Persistent JSONL audit of every decision                              |\n| Bilingual replies      | ✅     | Mirrors the customer's language                                       |\n| System prompt          | ✅     | Edit the system instruction from the dashboard                        |\n| OpenAI \u002F Claude \u002F Local| ❌     | Not yet — Gemini-first; pluggable provider layer planned              |\n\n### Platform\n\n| Feature             | Status | Notes                                            |\n| ------------------- | ------ | ------------------------------------------------ |\n| REST API            | ✅     | Full HTTP surface, Swagger at `\u002Fapi\u002Fdocs`        |\n| Webhooks            | ✅     | Per-session, HMAC-signed                         |\n| API Key Auth        | ✅     | Roles + IP allowlist + session scope             |\n| Audit Logging       | ✅     | Every API operation tracked                      |\n| Rate Limiting       | ✅     | Per-window configurable limits                   |\n| CIDR Whitelisting   | ✅     | IP-based access control                          |\n| Proxy Support       | ✅     | Per-session proxy configuration                  |\n\n### Infrastructure\n\n| Feature             | Status | Notes                                            |\n| ------------------- | ------ | ------------------------------------------------ |\n| SQLite              | ✅     | Zero-config embedded database                    |\n| PostgreSQL          | ✅     | Production-grade, optional built-in container    |\n| Redis Cache         | ✅     | Optional performance caching                     |\n| S3 \u002F MinIO Storage  | ✅     | Scalable media storage                           |\n| Docker Compose      | ✅     | One-command deployment                           |\n| Health Checks       | ✅     | Kubernetes-ready probes                          |\n| Data Migration      | ✅     | Export\u002Fimport between backends                   |\n\n---\n\n## Quick Start\n\n### Option A — Docker (recommended)\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Frmyndharis\u002FOpenWA.git noxus\ncd noxus\ndocker compose -f docker-compose.dev.yml up -d\n```\n\n- Dashboard: **http:\u002F\u002Flocalhost:2886**\n- API:       **http:\u002F\u002Flocalhost:2785\u002Fapi**\n- Swagger:   **http:\u002F\u002Flocalhost:2785\u002Fapi\u002Fdocs**\n\n### Option B — Local dev\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Frmyndharis\u002FOpenWA.git noxus\ncd noxus\nnpm install            # also installs the dashboard\nnpm run dev            # starts API + dashboard, config auto-generated\n```\n\nOpen **http:\u002F\u002Flocalhost:2886** → log in with the API key printed in the console → go to **AI Manager** to set up Gemini.\n\n---\n\n## First 5 Minutes With the AI\n\n1. **AI Manager → Settings** → paste your Gemini key, enable auto-reply, save.\n2. **AI Manager → APIs** → click **Add API**, register your first endpoint:\n   - **Slug:** `prices`\n   - **Name:** Live prices\n   - **Description:** Returns the current price list as JSON.\n   - **URL:** `https:\u002F\u002Fyour.api\u002Fprices`\n   - Click **Test** — confirm HTTP 200.\n3. **AI Manager → Reply Data** → write your knowledge in natural language and reference the API:\n   ```md\n   We are open daily, 10 AM – 11 PM.\n   Our up-to-date prices are provided via \u002Fprices.\n   ```\n4. **Sessions** → start a session, scan the QR with WhatsApp.\n5. Message that number from another phone — NOXUS will reply using your knowledge + live `\u002Fprices` response, in the customer's language.\n\n---\n\n## Production Deployment\n\n```bash\ndocker compose up -d                       # SQLite, local storage\ndocker compose --profile postgres up -d    # + PostgreSQL\ndocker compose --profile full up -d        # PostgreSQL + Redis + Dashboard + Traefik\n```\n\n| Profile          | Adds                  |\n| ---------------- | --------------------- |\n| `postgres`       | PostgreSQL database   |\n| `redis`          | Redis cache           |\n| `minio`          | S3-compatible storage |\n| `with-dashboard` | Web dashboard         |\n| `with-proxy`     | Traefik reverse proxy |\n| `full`           | All of the above      |\n\n| Service   | Port            | Description              |\n| --------- | --------------- | ------------------------ |\n| API       | `2785`          | REST API endpoints       |\n| Dashboard | `2886`          | Web management interface |\n| Swagger   | `2785\u002Fapi\u002Fdocs` | Interactive API docs     |\n\n---\n\n## API Examples\n\n### Send a text message\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:2785\u002Fapi\u002Fsessions\u002F{sessionId}\u002Fmessages\u002Fsend-text \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"X-API-Key: YOUR_API_KEY\" \\\n  -d '{ \"chatId\": \"628123456789@c.us\", \"text\": \"Hello from NOXUS!\" }'\n```\n\n### Register an AI API slash command\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:2785\u002Fapi\u002Fai\u002Fapis \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"X-API-Key: YOUR_API_KEY\" \\\n  -d '{\n    \"slug\": \"menu\",\n    \"name\": \"Live menu\",\n    \"description\": \"Returns the live restaurant menu and prices as JSON.\",\n    \"url\": \"https:\u002F\u002Fapi.yourbiz.com\u002Fmenu\",\n    \"method\": \"GET\",\n    \"headers\": { \"Authorization\": \"Bearer xyz\" },\n    \"enabled\": true\n  }'\n```\n\n### Update the AI Reply Data (knowledge)\n\n```bash\ncurl -X PUT http:\u002F\u002Flocalhost:2785\u002Fapi\u002Fai\u002Fknowledge \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"X-API-Key: YOUR_API_KEY\" \\\n  -d '{\n    \"content\": \"We open daily 10 AM – 11 PM.\\nThe live menu is provided via \u002Fmenu.\"\n  }'\n```\n\n### Probe an API slash command\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:2785\u002Fapi\u002Fai\u002Fapis\u002F{id}\u002Ftest \\\n  -H \"X-API-Key: YOUR_API_KEY\"\n```\n\n### Setup a webhook\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:2785\u002Fapi\u002Fsessions\u002F{sessionId}\u002Fwebhooks \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"X-API-Key: YOUR_API_KEY\" \\\n  -d '{\n    \"url\": \"https:\u002F\u002Fyour-server.com\u002Fwebhook\",\n    \"events\": [\"message.received\", \"session.status\"],\n    \"secret\": \"your-hmac-secret\"\n  }'\n```\n\n---\n\n## Tech Stack\n\n| Layer         | Technology                                    |\n| ------------- | --------------------------------------------- |\n| **Runtime**   | Node.js 22 LTS                                |\n| **Backend**   | NestJS 11 · TypeScript 5 · TypeORM            |\n| **AI**        | Google Gemini (`@google\u002Fgenai`), grounded     |\n| **Frontend**  | React 19 · Vite · TanStack Query · i18next    |\n| **WA Engine** | whatsapp-web.js (pluggable engine layer)      |\n| **Database**  | SQLite · PostgreSQL                           |\n| **Cache**     | Redis (optional)                              |\n| **Storage**   | Local · S3 · MinIO                            |\n| **Container** | Docker + Docker Compose                       |\n\n---\n\n## Project Structure\n\n```\nnoxus-ai-open-whatsapp\u002F\n├── src\u002F\n│   ├── main.ts                  # Bootstrap\n│   ├── app.module.ts            # Root module\n│   ├── config\u002F                  # Configuration loaders\n│   ├── common\u002F                  # Cache, storage, shared utilities\n│   ├── core\u002F                    # Hooks + plugin system\n│   ├── engine\u002F                  # WhatsApp engine abstraction\n│   └── modules\u002F\n│       ├── ai\u002F                  # Gemini reply + API-link slash commands\n│       │   ├── ai-reply.service.ts\n│       │   ├── ai-api-links.service.ts\n│       │   ├── ai-api-links.controller.ts\n│       │   └── ai.controller.ts\n│       ├── session\u002F             # Session management\n│       ├── message\u002F             # Message handling\n│       ├── webhook\u002F             # Webhooks\n│       ├── group\u002F               # Groups API\n│       ├── contact\u002F             # Contacts\n│       ├── auth\u002F                # API keys + roles\n│       ├── infra\u002F               # Infrastructure config\n│       └── health\u002F              # Health probes\n├── dashboard\u002F                   # React dashboard\n│   └── src\u002Fpages\u002FAiManager.tsx  # AI + APIs slash UI\n├── data\u002F\n│   ├── ai\u002F\n│   │   ├── settings.json        # Runtime AI settings\n│   │   ├── api-links.json       # Registered API slash commands\n│   │   └── interactions.jsonl   # AI decision audit log\n│   └── knowledge\u002F\n│       └── noxus.md             # Reply Data (default path)\n└── docs\u002F                        # In-repo documentation\n```\n\n---\n\n## Docs\n\n| Document                                                | Description                       |\n| ------------------------------------------------------- | --------------------------------- |\n| [Project Overview](.\u002Fdocs\u002F01-project-overview.md)       | Introduction and goals            |\n| [Requirements](.\u002Fdocs\u002F02-requirements-specification.md) | Feature specifications            |\n| [Architecture](.\u002Fdocs\u002F03-system-architecture.md)        | System design                     |\n| [Security](.\u002Fdocs\u002F04-security-design.md)                | Security implementation           |\n| [Database](.\u002Fdocs\u002F05-database-design.md)                | Data models and migrations        |\n| [API Spec](.\u002Fdocs\u002F06-api-specification.md)              | Complete API reference            |\n| [Development](.\u002Fdocs\u002F08-development-guidelines.md)      | Coding standards                  |\n| [AI Setup](.\u002Fdocs\u002Fai-gemini-setup.md)                   | Gemini key + Reply Data setup     |\n| [Migration Guide](.\u002Fdocs\u002F14-migration-guide.md)         | Database & storage migration      |\n\n---\n\n## Contributing\n\n1. Fork the repo\n2. Branch: `git checkout -b feature\u002Fyour-feature`\n3. Commit and push\n4. Open a PR\n\nPlease read the [Development Guidelines](.\u002Fdocs\u002F08-development-guidelines.md).\n\n---\n\n## License\n\nMIT — free for personal and commercial use. See [LICENSE](.\u002FLICENSE).\n\n---\n\n\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"dashboard\u002Fpublic\u002Fnoxus-logo.png\" alt=\"NOXUS\" width=\"120\"\u002F>\n\n**NOXUS AI Open WhatsApp** — AI-grounded WhatsApp, open source.\n\n[noxusai.online](https:\u002F\u002Fnoxusai.online\u002F) · [Docs](.\u002Fdocs\u002FREADME.md) · [API Docs](http:\u002F\u002Flocalhost:2785\u002Fapi\u002Fdocs) · [Issues](https:\u002F\u002Fgithub.com\u002Frmyndharis\u002FOpenWA\u002Fissues)\n\n\u003C\u002Fdiv>\n","NOXUS AI Open WhatsApp 是一个基于WhatsApp的智能客服平台，旨在为团队提供真正的助手而不仅仅是消息发送功能。该项目通过搭载基于Gemini 2.5的接地AI代理，能够根据用户自定义的知识库和实时API调用来响应客户咨询。其核心特性包括API斜杠命令支持、完整的WhatsApp REST API接口以及操作控制台等。适用于需要在WhatsApp上实现自动化客户服务且希望结合自身数据与服务的企业或开发者使用。项目采用TypeScript编写，并利用NestJS、React等现代技术栈构建，支持Docker一键部署，确保了高度的灵活性与可扩展性。",2,"2026-06-11 04:04:27","CREATED_QUERY"]