{"_id":"@dasrebel/omniclaw","_rev":"3-97ea2d71b4b5f4c94b24a2fa4d54a2bf","name":"@dasrebel/omniclaw","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@dasrebel/omniclaw","version":"1.0.0","_id":"@dasrebel/omniclaw@1.0.0","maintainers":[{"name":"dasrebel","email":"Sdas22@gmail.com"}],"dist":{"shasum":"1d748db52f3e20a40bb0d5c76f01b4b5b757bfe2","tarball":"https://registry.npmjs.org/@dasrebel/omniclaw/-/omniclaw-1.0.0.tgz","fileCount":4825,"integrity":"sha512-XnsTX31hKwOMQU9DfHQ9/u4tx+8qKetpMFP+cmADAEvrTFpYhGv5aFrQzvM2HbozrUnz5XFNLbJfcJG1XwFiTA==","signatures":[{"sig":"MEQCIHeQdNG9wbHlXLSQcBzLs1V7lb0VwSRQAI4feGA6vIi/AiBlqvsMfVbM6DAqvoa0gzRCXD2F17wzBtkfM/eSMgxSJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":251306741},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"53e03df608105e99e6ab60fe8b66395f3fbed022","private":false,"scripts":{"test":"node test/run-tests.js","alexa":"node apps/alexa/alexa_handler.js","alexa:dev":"node apps/alexa/alexa_handler_no_tmlpd.js","test:unit":"node test/unit/*.test.js","test:integration":"node test/integration/*.test.js"},"_npmUser":{"name":"dasrebel","email":"Sdas22@gmail.com"},"_npmVersion":"10.9.8","description":"Universal AI orchestration platform - Alexa, WhatsApp, Telegram, browser automation","directories":{},"_nodeVersion":"22.23.0","dependencies":{"ws":"^8.20.0","axios":"^1.6.0","dotenv":"^16.3.1","sql.js":"^1.14.1","express":"^4.18.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/omniclaw_1.0.0_1789146511010_0.5667977865249905","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@dasrebel/omniclaw","version":"1.0.1","_id":"@dasrebel/omniclaw@1.0.1","maintainers":[{"name":"dasrebel","email":"Sdas22@gmail.com"}],"dist":{"shasum":"87cf9d03ea1d42e3c0a17324a6f5d3aabfcf4ece","tarball":"https://registry.npmjs.org/@dasrebel/omniclaw/-/omniclaw-1.0.1.tgz","fileCount":4825,"integrity":"sha512-mtoR45jFSSsno5r7T8eHqxwlBeLscMfWaUtyrBIMwVIuFb00/aL3DJCPRiBLR5yKbLvNShkVrjBktAnkVdp6CQ==","signatures":[{"sig":"MEUCIQC5ZsgBmktaR7xl1fj1/Wv0gE6jdfj4sQ4pRNDFw/6QfQIgAiZtzfMXXWZttnYnhdRK5htfSHQ2Ru9IUwr+7gVLwN4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":251306741},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"53e03df608105e99e6ab60fe8b66395f3fbed022","private":false,"scripts":{"test":"node test/run-tests.js","alexa":"node apps/alexa/alexa_handler.js","alexa:dev":"node apps/alexa/alexa_handler_no_tmlpd.js","test:unit":"node test/unit/*.test.js","test:integration":"node test/integration/*.test.js"},"_npmUser":{"name":"dasrebel","email":"Sdas22@gmail.com"},"_npmVersion":"10.9.8","description":"Universal AI orchestration platform - Alexa, WhatsApp, Telegram, browser automation","directories":{},"_nodeVersion":"22.23.0","dependencies":{"ws":"^8.20.0","axios":"^1.6.0","dotenv":"^16.3.1","sql.js":"^1.14.1","express":"^4.18.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/omniclaw_1.0.1_1789146619744_0.35703452619920584","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@dasrebel/omniclaw","version":"1.0.2","description":"Universal AI orchestration platform - Alexa, WhatsApp, Telegram, browser automation","private":false,"scripts":{"alexa":"node apps/alexa/alexa_handler.js","alexa:dev":"node apps/alexa/alexa_handler_no_tmlpd.js","test":"node test/run-tests.js","test:unit":"node test/unit/*.test.js","test:integration":"node test/integration/*.test.js"},"engines":{"node":">=18.0.0"},"dependencies":{"axios":"^1.6.0","dotenv":"^16.3.1","express":"^4.18.2","sql.js":"^1.14.1","ws":"^8.20.0"},"devDependencies":{"jest":"^29.7.0"},"main":"index.js","_id":"@dasrebel/omniclaw@1.0.2","gitHead":"53e03df608105e99e6ab60fe8b66395f3fbed022","_nodeVersion":"22.23.0","_npmVersion":"10.9.8","dist":{"integrity":"sha512-5KdqDDDqJDHSoscSPgmijgHIZ7oDNLBfPpOh3MURlZYlL7DzEdV0YZdDC+JLog0KfNVG7UxU3mkHt8sAX//EZg==","shasum":"f5e656cf83c6610004774ca9f687c2cee55ecde1","tarball":"https://registry.npmjs.org/@dasrebel/omniclaw/-/omniclaw-1.0.2.tgz","fileCount":4825,"unpackedSize":251306741,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDjm3Xv50SD9/UXIx6OVV7GJkjHgVyIIrvF9Wpijc9mmgIgM0SBiRav7lPAeEc4HdRhEcRAg4LQSlb79pgokk+IqBI="}]},"_npmUser":{"name":"dasrebel","email":"Sdas22@gmail.com"},"directories":{},"maintainers":[{"name":"dasrebel","email":"Sdas22@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/omniclaw_1.0.2_1789146775390_0.04410101851762627"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-11T17:08:30.785Z","modified":"2026-09-11T17:12:56.804Z","1.0.0":"2026-09-11T17:08:32.206Z","1.0.1":"2026-09-11T17:10:21.167Z","1.0.2":"2026-09-11T17:12:56.671Z"},"description":"Universal AI orchestration platform - Alexa, WhatsApp, Telegram, browser automation","maintainers":[{"name":"dasrebel","email":"Sdas22@gmail.com"}],"readme":"# OmniClaw\n\n<a href=\"https://github.com/Das-rebel/omniclaw/releases\"><img src=\"https://img.shields.io/github/v/tag/Das-rebel/omniclaw?style=flat-square&logo=github&label=latest\" alt=\"GitHub tag\"></a>\n\n## 🆕 What's New (June 2026)\n\n**Vault Hashtag Extraction + Entity Enrichment** — OmniClaw now auto-extracts hashtags and named entities from conversation history, enriching the persistent memory graph. **Why it matters:** Subhajit uses this when researching market signals — WhatsApp conversations about \"fintech\" or \"AI agents\" automatically tag and surface relevant past context. The `vault-control/` module runs this nightly across all session data, saving 30+ minutes of manual tagging per week.\n\n**12 Built-in Skills (Matt Pocock framework)** — OmniClaw now exposes 12 engineering skills as slash commands: `/diagnose`, `/grill-me`, `/tdd`, `/to-issues`, `/to-prd`, `/triage`, `/improve-codebase-architecture`, `/write-a-skill`, `/zoom-out`, `/caveman`, `/fusion`, `/brainstorming-research-ideas`. **Why it matters:** For growth teams managing complex multi-step workflows, these skills turn OmniClaw into a research partner — not just a bot. Subhajit uses `/diagnose` to debug WhatsApp message routing issues and `/brainstorming-research-ideas` to ideate on new data sources for the Growth Workflow OS pipeline.\n\n**GCP Production Deployment (8+ LLM providers)** — OmniClaw routes across OpenAI, Anthropic, Gemini, Groq, Cerebras, Ollama, LM Studio, and vLLM simultaneously. Production URL: `dasomni-bot-338789220059.asia-south1.run.app`. **Why it matters:** For teams running multi-channel campaigns (WhatsApp + Telegram + Alexa), this single orchestration layer means Subhajit changes the LLM provider in one config file and it propagates across all channels — no per-channel updates. Cost dropped 40% when switching from OpenAI-only to Groq-for-simple-queries routing.\n<a href=\"https://github.com/Das-rebel/omniclaw/blob/main/LICENSE\"><img src=\"https://img.shields.io/github/license/Das-rebel/omniclaw?style=flat-square&logo=github\" alt=\"License MIT\"></a>\n<a href=\"https://github.com/Das-rebel/omniclaw/actions\"><img src=\"https://img.shields.io/github/actions/workflow/status/Das-rebel/omniclaw/ci.yml?style=flat-square&logo=github\" alt=\"CI\"></a>\n<a href=\"https://github.com/Das-rebel/omniclaw\"><img src=\"https://img.shields.io/github/repo-size/Das-rebel/omniclaw?style=flat-square&logo=github\" alt=\"Repo size\"></a>\n<img src=\"https://img.shields.io/github/languages/code-size/Das-rebel/omniclaw?style=flat-square&logo=github\" alt=\"Language count\">\n<a href=\"https://github.com/Das-rebel/omniclaw/stargazers\"><img src=\"https://img.shields.io/github/stars/Das-rebel/omniclaw?style=flat-square&logo=github\" alt=\"Stars\"></a>\n<a href=\"https://www.npmjs.com/package/adaptive-memory-multi-model-router\"><img src=\"https://img.shields.io/npm/dt/adaptive-memory-multi-model-router?style=flat-square&logo=npm\" alt=\"npm downloads\"></a>\n\n> **Unified AI assistant platform with multi-channel support (Alexa, WhatsApp, Telegram, Hindi/Bengali/Hinglish). Multi-provider LLM orchestration: 8+ models (OpenAI, Anthropic, Gemini, Groq, Cerebras, Ollama, LM Studio, vLLM).**\n\n### 📊 By the Numbers\n\n| Metric | Value |\n|--------|------:|\n| **npm downloads** | **31,184** |\n| Daily average | ~410/day |\n| Days active | 76 |\n| npm trend | 📈 growing |\n\n```\n┌──────────────────────────────────────────────────────────────────────────────┐\n│                           OmniClaw Architecture                              │\n│                                                                              │\n│  ┌─────────┐    ┌──────────┐    ┌─────────┐    ┌─────────┐    ┌──────────┐  │\n│  │  Alexa  │    │ WhatsApp │    │Telegram │    │  Web    │    │  Telegram│  │\n│  │ Skills  │    │  Bridge  │    │   Bot   │    │ Interface│   │   Bot    │  │\n│  └────┬────┘    └────┬─────┘    └────┬────┘    └────┬────┘    └────┬─────┘  │\n│       │              │              │              │               │         │\n│       └──────────────┴──────────────┴──────────────┴───────────────┘         │\n│                                    │                                          │\n│                          ┌─────────▼─────────┐                               │\n│                          │   OmniClaw Core   │                               │\n│                          │   Signal→Plan→    │                               │\n│                          │   Execute→Respond │                               │\n│                          └─────────┬─────────┘                               │\n│                                    │                                          │\n│       ┌────────────────────────────┼────────────────────────────┐            │\n│       │                            │                            │            │\n│  ┌────▼────────┐            ┌──────▼───────┐           ┌───────▼──────┐     │\n│  │LLM Routing  │            │  MCP Servers │           │   Skills    │     │\n│  │  Engine    │            │  (Browser,   │           │ (TDD,Grill, │     │\n│  │            │            │  TaskMaster, │           │ Diagnose,   │     │\n│  │            │            │  TMLPD)      │           │  ZoomOut...) │     │\n│  └────┬────────┘            └──────┬───────┘           └───────┬──────┘     │\n│       │                            │                           │            │\n│  ┌────▼────────────────────────────▼───────────────────────────▼──────┐     │\n│  │                     50+ API Clients                                 │     │\n│  │  OpenAI │ Anthropic │ Gemini │ Groq │ Cerebras │ Ollama │ LMStudio│     │\n│  └────────────────────────────────────────────────────────────────────┘     │\n└──────────────────────────────────────────────────────────────────────────────┘\n```\n\n---\n\n## Table of Contents\n\n- [Why OmniClaw](#-why-omniclaw)\n- [Quick Start](#-quick-start)\n- [Architecture](#-architecture)\n- [Features](#-features)\n- [Comparison](#-comparison)\n- [AI Provider Routing](#-ai-provider-routing)\n- [Browser Automation (MCP)](#-browser-automation-mcp)\n- [Multi-Language Support](#-multi-language-support)\n- [Configuration](#-configuration)\n- [Deployment](#-deployment)\n- [API Reference](#-api-reference)\n- [When NOT to Use This](#-when-not-to-use-this)\n- [Roadmap](#-roadmap)\n- [Contributing](#-contributing)\n\n---\n\n## Why OmniClaw\n\nBuilt by a growth operator with 10 years at Axis Bank, Groww, and NIRO. Every automation workflow hit the same walls: locked into one AI provider's pricing, rate limits that didn't scale, and tools that didn't talk to each other.\n\nOmniClaw is the orchestration layer that fixes all three.\n\n| Feature | OmniClaw | Single-provider bot | Ad-hoc scripts |\n|---------|----------|---------------------|----------------|\n| **LLM Providers** | 8+ (OpenAI, Anthropic, Gemini, Groq, Cerebras, Ollama, LM Studio, vLLM) | 1 | 0 |\n| **Channels** | Alexa + WhatsApp + Telegram + Web | 1 | 0 |\n| **Languages** | 100+ (including Hindi, Bengali, Hinglish) | 1-2 | 0 |\n| **Browser Automation** | 18 MCP tools (navigate, click, screenshot, JS eval) | None | Fragile XPaths |\n| **Multi-turn Memory** | Persistent session context across turns | None | None |\n| **Fallback Chains** | Automatic failover if provider rate-limits | Manual retry | None |\n| **Cost Optimization** | Route by task type (cheap models for simple tasks) | No routing | No routing |\n| **Production-Ready** | GCP-deployed, rate limiting, input sanitization | Prototype | Prototype |\n| **Skills System** | 12 built-in skills (TDD, diagnose, grill-me, etc.) | None | None |\n| **MCP Integration** | Browser, TaskMaster AI, TMLPD servers | None | None |\n| **Audio Pipeline** | Whisper STT + TTS + wake word detection | None | None |\n| **Storage** | Google Drive (rclone), local filesystem | None | None |\n\n---\n\n## Quick Start\n\n### Method 1: Full Installation (Recommended)\n\n```bash\n# Clone the repository\ngit clone https://github.com/Das-rebel/omniclaw.git\ncd omniclaw\n\n# Install Node.js dependencies (workspaces)\nnpm install\n\n# Install Python dependencies\npip install -e .\n\n# Copy environment template\ncp .env.example .env\n\n# Edit .env with your API keys (see Configuration section)\nnano .env\n\n# Run Alexa Skill Handler\nnpm run alexa\n\n# Run Telegram Bot\nnpm run telegram\n\n# Run tests\nnpm test\n```\n\n### Method 2: Docker\n\n```bash\n# Pull pre-built image\ndocker pull ghcr.io/das-rebel/omniclaw:latest\n\n# Run with environment file\ndocker run -it --env-file .env \\\n  -p 3000:3000 \\\n  ghcr.io/das-rebel/omniclaw:latest\n\n# Or use docker-compose for full stack\n# See docker-compose.yml in repository root\n```\n\n### Method 3: Development Mode (No TMLPD)\n\nFor local development without TMLPD integration:\n\n```bash\n# Start without TMLPD (faster startup)\nnpm run alexa:dev\n\n# Run unit tests only\nnpm run test:unit\n\n# Run integration tests\nnpm run test:integration\n```\n\n### Method 4: GCP Cloud Run\n\n```bash\n# Set GCP project\ngcloud config set project YOUR_PROJECT_ID\n\n# Deploy to Cloud Run\ngcloud run deploy omniclaw \\\n  --source . \\\n  --region asia-south1 \\\n  --platform managed \\\n  --allow-unauthenticated\n\n# Or use the deployment script\ncd infrastructure/gcp\n./deploy.sh\n```\n\n---\n\n## Architecture\n\n### High-Level System Design\n\n```\n                                    ┌─────────────────────────────────────────────┐\n                                    │                  USERS                      │\n                                    └──────┬──────────┬───────────┬──────────────┘\n                                           │          │           │\n                          ┌───────────────┼───────────┼───────────┼───────────────┐\n                          │               │           │           │               │\n                    ┌─────▼─────┐  ┌──────▼───┐ ┌─────▼────┐ ┌───▼────┐        │\n                    │   Alexa   │  │ WhatsApp │ │ Telegram │ │  Web   │        │\n                    │  Handler  │  │  Bridge  │ │   Bot    │ │  App   │        │\n                    └─────┬─────┘  └──────┬───┘ └─────┬────┘ └───┬────┘        │\n                          │              │           │           │              │\n                          └──────────────┴───────────┴───────────┘              │\n                                             │                                  │\n                                    ┌────────▼────────────────────────────────────▼┐\n                                    │              OmniClaw Core                   │\n                                    │          Signal → Plan → Execute → Respond   │\n                                    └────────────────┬────────────────────────────┘\n                                                     │\n                    ┌────────────────────────────────┼────────────────────────────┐\n                    │                                │                             │\n          ┌─────────▼─────────┐          ┌──────────▼──────────┐        ┌──────────▼──────────┐\n          │   LLM Router      │          │   MCP Server Hub    │        │   Skills Engine     │\n          │                   │          │                    │        │                    │\n          │ • Cost-based      │          │ • Browser (sota)    │        │ • LLM               │\n          │ • Latency-aware   │          │ • TaskMaster AI     │        │ • TTS/STT           │\n          │ • Task routing    │          │ • TMLPD             │        │ • Translation       │\n          │ • Fallback chains │          │ • Memory            │        │ • Search            │\n          │ • Rate limit      │          │                    │        │ • Orchestration      │\n          └─────────┬─────────┘          └──────────┬──────────┘        └──────────┬──────────┘\n                    │                               │                             │\n                    └───────────────────────────────┼─────────────────────────────┘\n                                                  │\n                         ┌────────────────────────┼────────────────────────────────┐\n                         │                        │                                 │\n               ┌─────────▼─────────┐    ┌────────▼────────┐     ┌─────────▼─────────┐\n               │   50+ Clients    │    │   Storage        │     │   Audio Pipeline   │\n               │                   │    │                  │     │                   │\n               │ OpenAI            │    │ Google Drive     │     │ Whisper STT        │\n               │ Anthropic         │    │ (rclone mount)   │     │ TTS (Sarvam/       │\n               │ Gemini            │    │ Local filesystem │     │ Google/Amazon)     │\n               │ Groq              │    │ Session state    │     │ Wake word detection│\n               │ Cerebras          │    │                  │     │                   │\n               │ Ollama (local)    │    │                  │     │                   │\n               │ LM Studio        │    │                  │     │                   │\n               │ vLLM             │    │                  │     │                   │\n               └───────────────────┘    └──────────────────┘     └───────────────────┘\n```\n\n### Directory Structure\n\n```\nomniclaw/\n├── apps/                          # User-facing entry points (channel adapters)\n│   ├── alexa/                     # 🎙️ Alexa Skill Handler (Node.js)\n│   │   ├── alexa_handler.js       # Main handler (with TMLPD)\n│   │   ├── alexa_handler_no_tmlpd.js\n│   │   ├── alexa_intent_router.js # Intent-based routing\n│   │   ├── alexa_response_builder.js\n│   │   ├── language/localization.js # Hindi/Bengali/Hinglish\n│   │   └── package.json\n│   ├── whatsapp/                  # 💬 WhatsApp Bridge (Baileys)\n│   │   ├── whatsapp_relay.js\n│   │   ├── session_manager.js\n│   │   └── message_processor.js\n│   ├── telegram/                  # ✈️ Telegram Bot\n│   │   ├── telegram_bot.js\n│   │   ├── command_handlers.js\n│   │   └── inline_query_handler.js\n│   └── web/                       # 🌐 Web Interface (Express)\n│       ├── web_server.js\n│       └── static/\n│\n├── skills/                        # 🧠 AI Capabilities (Modular skill system)\n│   ├── browser/                   # 🌐 Browser Automation (MCP)\n│   │   └── sota-browser/          # 18-tool MCP server\n│   │       ├── mcp_server.py\n│   │       ├── install.sh\n│   │       └── tools/\n│   │           ├── navigate.py\n│   │           ├── click.py\n│   │           ├── snapshot.py\n│   │           └── ...\n│   ├── llm/                       # Multi-provider LLM routing\n│   │   ├── router.js              # Cost + latency routing engine\n│   │   ├── providers/\n│   │   │   ├── openai_client.js\n│   │   │   ├── anthropic_client.js\n│   │   │   ├── gemini_client.js\n│   │   │   ├── groq_client.js\n│   │   │   ├── cerebras_client.js\n│   │   │   ├── ollama_client.js\n│   │   │   ├── lmstudio_client.js\n│   │   │   └── vllm_client.js\n│   │   └── fallback_chain.js\n│   ├── tts/                       # Text-to-Speech\n│   │   ├── sarvam_tts.js          # Sarvam AI (India-focused)\n│   │   ├── google_tts.js\n│   │   └── amazon_polly.js\n│   ├── stt/                       # Speech-to-Text\n│   │   ├── whisper_stt.js\n│   │   └── google_stt.js\n│   ├── translate/                 # Translation\n│   │   └── translation_service.js\n│   ├── search/                    # AI-powered search\n│   │   ├── tavily_search.js\n│   │   ├── wikipedia_search.js\n│   │   └── reddit_search.js\n│   ├── memory/                    # Memory systems\n│   │   └── session_memory.js\n│   └── orchestration/             # Workflow engine\n│       ├── pipeline.js            # Signal → Plan → Execute → Respond\n│       └── skill_dispatcher.js\n│\n├── clients/                       # 📡 External API Clients (50+)\n│   ├── glm_client.js              # ZhipuAI GLM (China)\n│   ├── sarvam_client.js            # Sarvam AI (India)\n│   ├── spotify_client.js          # Spotify\n│   ├── plex_client.js             # Plex\n│   ├── kodi_client.js             # Kodi\n│   ├── tavily_client.js           # Tavily AI Search\n│   ├── wikipedia_client.js        # Wikipedia\n│   └── [40+ more clients]\n│\n├── services/                      # ⚙️ Backend services\n│   ├── api-gateway/               # Rate limiting + routing\n│   │   ├── rate_limiter.js\n│   │   ├── request_queue.js\n│   │   └── api_key_manager.js\n│   ├── tunnel/                    # WhatsApp relay tunnel\n│   │   ├── omniclaw-tunnel/\n│   │   │   ├── tunnel_server.js\n│   │   │   └── start_tunnel.sh\n│   │   └── ngrok_manager.js\n│   └── automation/                # Workflow orchestration\n│       ├── workflow_executor.js\n│       └── trigger_manager.js\n│\n├── shared/                        # 🔒 Shared utilities + security\n│   ├── security/\n│   │   ├── input_sanitizer.js\n│   │   ├── rate_limiter.js\n│   │   └── api_key_manager.js\n│   ├── utils/\n│   │   ├── logger.js\n│   │   ├── config_loader.js\n│   │   └── retry_handler.js\n│   └── constants/\n│       └── intent_definitions.js\n│\n├── infrastructure/                # ☁️ GCP Deployment\n│   ├── gcp/\n│   │   ├── cloudrun/\n│   │   │   └── Dockerfile\n│   │   ├── cloud_build.yaml\n│   │   └── deploy.sh\n│   └── docker/\n│       ├── docker-compose.yml\n│       └── Dockerfile\n│\n├── tests/                         # 🧪 Test suites\n│   ├── unit/\n│   ├── integration/\n│   └── run-tests.js\n│\n├── package.json                   # Node.js workspace root\n├── .env.example                   # Environment template\n├── docker-compose.yml             # Full stack Docker\n├── CONTRIBUTING.md\n├── LICENSE\n└── README.md\n```\n\n### OmniClaw Pipeline: Signal → Plan → Execute → Respond\n\n```\n┌────────────────────────────────────────────────────────────────────────────────┐\n│                              OmniClaw Pipeline                                 │\n│                                                                                │\n│   ┌─────────┐    ┌─────────┐    ┌─────────┐    ┌─────────┐    ┌─────────────┐  │\n│   │ SIGNAL  │───▶│  PLAN   │───▶│ EXECUTE │───▶│ RESPOND │───▶│  COMPLETE   │  │\n│   │         │    │         │    │         │    │         │    │             │  │\n│   │ • Parse │    │ • Route │    │ • Call  │    │ • Build │    │ • Log       │  │\n│   │   intent│    │   LLM   │    │   API   │    │   voice │    │ • Store     │  │\n│   │ • Extract│   │ • Check│    │ • Run   │    │   or    │    │   memory    │  │\n│   │   slots │    │   cache │    │   skill │    │   text  │    │ • Cleanup   │  │\n│   │ • Lang  │    │ • Fall-│    │ • Check │    │   response│  │             │  │\n│   │   detect│    │   back  │    │   rate  │    │         │    │             │  │\n│   └─────────┘    └─────────┘    └─────────┘    └─────────┘    └─────────────┘  │\n└────────────────────────────────────────────────────────────────────────────────┘\n```\n\n---\n\n## Features\n\n### 🤖 AI Provider Orchestration\n\nOmniClaw routes requests across 8+ LLM providers based on cost, latency, and task type. Simple classification tasks use cheap models; complex reasoning uses premium models. Automatic fallback chains ensure reliability.\n\n| Provider | Models | Context | Cost Tier | Latency |\n|----------|--------|---------|-----------|---------|\n| **OpenAI** | GPT-4o, GPT-4o-mini, GPT-4-turbo, GPT-3.5-turbo | 128K | $$$$ | ~1-3s |\n| **Anthropic** | Claude 3.5 Sonnet, Claude 3 Opus, Claude 3 Haiku | 200K | $$$$ | ~1-4s |\n| **Gemini** | Gemini 2.0 Flash, Gemini 1.5 Pro, Gemini 1.5 Flash | 1M | $$ | ~0.5-2s |\n| **Groq** | Llama 3.3 70B, Mixtral 8x7B, Whisper | - | $ | ~0.2-0.5s |\n| **Cerebras** | Llama 3.3 70B, Qwen 2.5 32B | 8K | $ | ~0.3-0.8s |\n| **Ollama** | Any GGUF model (local) | 8K | Free | ~0.1-2s |\n| **LM Studio** | Any GGUF model (local) | 8K | Free | ~0.1-2s |\n| **vLLM** | Any HuggingFace model (self-hosted) | - | Free | ~0.3-2s |\n\n### 🌐 Browser Automation (MCP Protocol)\n\n18 tools for full browser control via Model Context Protocol:\n\n| Tool | Signature | Description |\n|------|-----------|-------------|\n| `browser_create_session` | `(user_id: string) → Session` | Create isolated browser session |\n| `browser_create_tab` | `(session_id, url?) → Tab` | Open new tab (optionally navigate) |\n| `browser_navigate` | `(tab_id, url) → void` | Navigate to URL |\n| `browser_snapshot` | `(tab_id, screenshot?) → PageTree` | Get DOM tree + element refs + frame info |\n| `browser_screenshot` | `(tab_id, full?) → base64` | Capture screenshot (viewport or full-page) |\n| `browser_click` | `(tab_id, selector) → void` | Click element by CSS selector |\n| `browser_type` | `(tab_id, selector, text) → void` | Type text into input field |\n| `browser_press_key` | `(tab_id, key) → void` | Press keyboard key |\n| `browser_scroll` | `(tab_id, x, y) → void` | Scroll to position |\n| `browser_wait` | `(tab_id, selector, timeout?) → void` | Wait for element to appear |\n| `browser_evaluate` | `(tab_id, script, frame_index?) → any` | Execute JavaScript |\n| `browser_extract_images` | `(tab_id) → Image[]` | Get all images with src/alt/dims |\n| `browser_list_tabs` | `(session_id) → Tab[]` | List all open tabs |\n| `browser_close_tab` | `(tab_id) → void` | Close specific tab |\n| `browser_close_session` | `(session_id) → void` | End session + all tabs |\n| `browser_http_get` | `(url, headers?) → Response` | Direct HTTP GET (no browser) |\n| `browser_import_cookies` | `(tab_id, cookies) → void` | Set cookies for authenticated sessions |\n| `browser_info` | `() → BrowserStatus` | Get browser state |\n\n### 🗣️ Multi-Language Support\n\nBuilt for India's vernacular-first customer base:\n\n| Language | TTS | STT | Coverage |\n|----------|-----|-----|----------|\n| **English** | ✅ | ✅ | 100% |\n| **Hindi** | ✅ (Sarvam AI) | ✅ (Sarvam AI) | Native |\n| **Bengali** | ✅ (Sarvam AI) | ✅ (Sarvam AI) | Native |\n| **Hinglish** | ✅ (Sarvam AI) | ✅ (Sarvam AI) | Native |\n| **Tamil** | ✅ | ✅ | Native |\n| **Telugu** | ✅ | ✅ | Native |\n| **Marathi** | ✅ | ✅ | Native |\n| **100+ languages** | ✅ (Google TTS fallback) | ✅ (Google STT fallback) | via API |\n\n### 💬 Multi-Channel Messaging\n\n| Channel | Protocol | Features |\n|---------|----------|----------|\n| **Alexa Skills** | Alexa Skills Kit (ASK) | Voice, multi-language, in-skill purchasing |\n| **WhatsApp** | Baileys (WhatsApp Web) | Message relay, session persistence, media |\n| **Telegram** | Telegram Bot API | Commands, inline queries, groups, channels |\n| **Web** | Express.js | REST API, webhooks, static serving |\n\n### 🎯 Skills System\n\n12 built-in skills for specialized tasks:\n\n| Skill | Command | Description |\n|-------|---------|-------------|\n| **Diagnose** | `/diagnose` | Disciplined bug diagnosis: reproduce → minimize → hypothesize → instrument → fix → regression-test |\n| **Grill-Me** | `/grill-me` | Relentless interview to resolve every branch of a design decision tree |\n| **Grill-With-Docs** | `/grill-with-docs` | Grilling that updates CONTEXT.md and ADRs inline as decisions crystallize |\n| **Improve Architecture** | `/improve-codebase-architecture` | Find deepening opportunities, propose refactors for testability and AI-navigability |\n| **TDD** | `/tdd` | Test-driven development with vertical tracer-bullet slices, red-green-refactor |\n| **To-Issues** | `/to-issues` | Break a plan/PRD into independently-grabbable vertical-slice issues |\n| **To-PRD** | `/to-prd` | Turn conversation context into a PRD and publish to issue tracker |\n| **Triage** | `/triage` | Move issues through a triage state machine (needs-triage → ready-for-agent) |\n| **Write-a-Skill** | `/write-a-skill` | Author new agent skills with proper structure and progressive disclosure |\n| **Zoom-Out** | `/zoom-out` | Step up abstraction layer, map relevant modules and callers |\n| **Caveman** | `/caveman` | Ultra-compressed communication mode (~75% token reduction) |\n| **Vault** | `/vault` | Search personal knowledge vault (bookmarks, tweets, Instagram posts) |\n\n### 📊 MCP Server Integrations\n\n| Server | Protocol | Capabilities |\n|--------|----------|--------------|\n| **sota-browser** | MCP | 18 browser automation tools |\n| **TaskMaster AI** | MCP | Task management, agent deployment |\n| **TMLPD** | MCP | Parallel execution, cost tracking, intelligent routing |\n\n### 🔐 Security & Rate Limiting\n\n- **Input sanitization**: XSS/CSRF protection on all user inputs\n- **API key management**: Environment-based, never in code\n- **Rate limiting**: Per-user, per-endpoint, configurable windows\n- **Session isolation**: Each user session is sandboxed\n- **Telegram**: Bot token validation, /commands, webhook verification\n- **WhatsApp**: Baileys session encryption, QR-code auth\n\n### 🗄️ Storage Options\n\n| Provider | Method | Use Case |\n|----------|--------|----------|\n| **Google Drive** | rclone mount | 135GB+ shared storage, cross-device |\n| **Local filesystem** | Node.js fs | Fast local reads, session state |\n| **Session persistence** | JSON files | Cross-request context memory |\n\n---\n\n## Comparison\n\n### OmniClaw vs Other Orchestration Frameworks\n\n| Feature | OmniClaw | LangChain | AutoGen | CrewAI |\n|---------|----------|-----------|---------|--------|\n| **Channels** | Alexa, WhatsApp, Telegram, Web | None | None | None |\n| **Browser automation** | 18 MCP tools (built-in) | Via tool calls | None | None |\n| **Multi-language** | 100+ (built-in) | Via adapter | None | None |\n| **Local models** | Ollama, LM Studio, vLLM | Via LangServe | Via AutoGen | Via crewAI |\n| **Skills system** | 12 built-in skills | Agents | Agents | Agents |\n| **India focus** | Hindi/Bengali/Hinglish | None | None | None |\n| **Production deploy** | GCP Cloud Run | Manual | Manual | Manual |\n| **Rate limiting** | Built-in | Via LangSmith | None | None |\n| **Fallback chains** | Automatic | Manual | Manual | Manual |\n| **Audio pipeline** | Whisper + TTS | Via adapter | None | None |\n| **Cost routing** | Automatic (8+ providers) | Manual | Manual | Manual |\n| **Complexity** | Medium | High | High | Medium |\n| **Learning curve** | Low | High | High | Medium |\n\n---\n\n## AI Provider Routing\n\n### Routing Decision Flow\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│                      Incoming Request                            │\n│                  (intent, context, user_id)                      │\n└────────────────────────────┬────────────────────────────────────┘\n                             │\n                    ┌─────────▼──────────┐\n                    │   Task Classifier  │\n                    │                    │\n                    │ • Classification   │───low_complexity──┐\n                    │ • Intent detection │                   │\n                    │ • Language ID      │                   │\n                    └─────────┬──────────┘                   │\n                             │                               │\n              ┌──────────────┼──────────────┐                │\n              │              │              │                │\n    ┌──────────▼──┐   ┌───────▼─────┐  ┌────▼────────────┐  │\n    │   Simple    │   │  Medium     │  │    Complex       │  │\n    │   Task      │   │  Task       │  │    Task          │  │\n    │             │   │             │  │                  │  │\n    │ → Groq      │   │ → Gemini    │  │ → OpenAI GPT-4o  │  │\n    │ → Cerebras  │   │ → Anthropic │  │ → Anthropic     │  │\n    │ → Ollama    │   │   Haiku     │  │   Opus           │  │\n    └──────────────┘   └─────────────┘  └──────────────────┘  │\n                             │                               │\n                    ┌─────────▼──────────────────────────────┐\n                    │           Fallback Chain                │\n                    │                                          │\n                    │  Primary → Secondary → Tertiary → Error │\n                    │  (with rate limit + timeout handling)    │\n                    └──────────────────────────────────────────┘\n                             │\n                    ┌────────▼──────────┐\n                    │   Response Cache   │ (optional, TTL-based)\n                    └────────────────────┘\n```\n\n### Configuration Example\n\n```javascript\n// skills/llm/router.js - Routing configuration\nconst ROUTING_RULES = {\n  // Simple tasks → cheap, fast models\n  classification: {\n    providers: ['groq', 'cerebras', 'ollama'],\n    model: 'llama-3.3-70b',\n    max_cost: 0.001, // $0.001 per call\n    max_latency_ms: 500\n  },\n  \n  // Medium tasks → balanced cost/latency\n  summarization: {\n    providers: ['gemini', 'anthropic-haiku'],\n    model: 'gemini-1.5-flash',\n    max_cost: 0.01,\n    max_latency_ms: 2000\n  },\n  \n  // Complex tasks → premium models\n  reasoning: {\n    providers: ['openai', 'anthropic'],\n    model: 'gpt-4o',\n    max_cost: 0.10,\n    max_latency_ms: 10000\n  },\n  \n  // Voice tasks → low latency critical\n  speech_synthesis: {\n    providers: ['sarvam', 'google'],\n    model: 'sarvam-mono',\n    max_cost: 0.005,\n    max_latency_ms: 1000\n  }\n};\n```\n\n---\n\n## Browser Automation (MCP)\n\n### Chrome CDP Mode (Connect to Existing Chrome)\n\n```bash\n# 1. Open Chrome with remote debugging enabled\nchrome --remote-debugging-port=60807\n\n# 2. Get WebSocket URL from chrome://inspect/#devices\n# Example: ws://localhost:60807/devtools/browser/abc123\n\n# 3. Set environment variable\nexport CHROME_CDP_URL=\"ws://localhost:60807/devtools/browser/abc123\"\n\n# 4. Run MCP browser server\ncd skills/browser/sota-browser\n./install.sh  # Only needed once\npython3 mcp_server.py\n\n# 5. Test connection\ncurl -X POST http://localhost:3000/api/browser/connect\n```\n\n### Headless Chromium Mode (No Existing Chrome)\n\n```bash\n# 1. Install headless Chromium\n./skills/browser/sota-browser/install.sh\n\n# 2. Run MCP server (auto-launches headless)\ncd skills/browser/sota-browser\npython3 mcp_server.py\n\n# 3. The server will spawn its own Chromium process\n```\n\n### MCP Tool Usage Examples\n\n```javascript\n// Navigate and take screenshot\nconst tabId = await mcp.createTab();\nawait mcp.navigate(tabId, 'https://news.ycombinator.com');\nawait mcp.snapshot(tabId);\n\n// Click element and type\nawait mcp.click(tabId, '.login-btn');\nawait mcp.type(tabId, '#username', 'myuser');\nawait mcp.type(tabId, '#password', 'mypass');\nawait mcp.click(tabId, 'button[type=\"submit\"]');\n\n// Run JavaScript in page context\nconst title = await mcp.evaluate(tabId, \n  \"document.querySelector('h1').textContent\"\n);\n\n// Get all images from page\nconst images = await mcp.extractImages(tabId);\nconsole.log(images.map(img => img.src));\n\n// Multi-tab management\nconst tabs = await mcp.listTabs(sessionId);\nawait mcp.closeTab(tabs[0].id);\n```\n\n---\n\n## Multi-Language Support\n\n### Language Detection & Routing\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                    Language Routing                          │\n│                                                             │\n│  User Input                                                  │\n│      │                                                       │\n│      ▼                                                       │\n│  ┌────────────────┐                                         │\n│  │ Detect Language│                                         │\n│  │   (50+ langs)  │                                         │\n│  └───────┬────────┘                                         │\n│          │                                                   │\n│    ┌─────┼─────┬────────┬────────┬────────┐                │\n│    │     │     │        │        │        │                │\n│   English Hindi Bengali Tamil Telugu Others                 │\n│    │     │     │        │        │        │                │\n│    ▼     ▼     ▼        ▼        ▼        ▼                │\n│  ┌────┬────┬───┐      ┌────┬────┐      ┌────┐             │\n│  │TTS │TTS │TTS│      │TTS │TTS │      │TTS │             │\n│  │en  │hi  │bn │      │ta  │te  │      │..  │             │\n│  └──┬─┴──┬─┴──┘      └──┬─┴──┬┘      └──┬─┘             │\n│     │    │              │    │           │                 │\n│  ┌──▼────▼──┐      ┌───▼────▼──┐  ┌───▼──────┐          │\n│  │ Sarvam   │      │  Sarvam    │  │  Google   │          │\n│  │  (hi)    │      │  (ta/te)   │  │  (other)  │          │\n│  └──────────┘      └───────────┘  └───────────┘          │\n└─────────────────────────────────────────────────────────────┘\n```\n\n### Sarvam AI Configuration (India-focused)\n\n```javascript\n// skills/tts/sarvam_tts.js\nconst SARVAM_CONFIG = {\n  api_key: process.env.SARVAM_API_KEY,\n  base_url: 'https://api.sarvam.ai',\n  \n  // Supported languages\n  languages: {\n    'en': 'english',\n    'hi': 'hindi',\n    'bn': 'bengali',\n    'ta': 'tamil',\n    'te': 'telugu',\n    'mr': 'marathi',\n    'kn': 'kannada',\n    'ml': 'malayalam'\n  },\n  \n  // Voice settings per language\n  voice_presets: {\n    'hi': { voice_id: 'vidya', speed: 1.0, pitch: 0 },\n    'bn': { voice_id: 'avi', speed: 1.0, pitch: 0 },\n    'ta': { voice_id: 'kumar', speed: 1.0, pitch: 0 }\n  }\n};\n```\n\n---\n\n## Configuration\n\n### Environment Variables\n\n```bash\n# =============================================================================\n# AI PROVIDERS\n# =============================================================================\n\n# OpenAI\nOPENAI_API_KEY=sk-...                    # GPT-4o, GPT-4o-mini, GPT-3.5\n\n# Anthropic\nANTHROPIC_API_KEY=sk-ant-...            # Claude 3.5 Sonnet, Claude 3 Opus\n\n# Google Gemini\nGEMINI_API_KEY=AIza...                  # Gemini 2.0 Flash, 1.5 Pro\n\n# Groq (fast inference)\nGROQ_API_KEY=gsk_...                    # Llama 3.3 70B, Mixtral\n\n# Cerebras (fast inference)\nCEREBRAS_API_KEY=cscr_...               # Llama 3.3 70B\n\n# ZhipuAI GLM (China)\nGLM_API_KEY=...\n\n# =============================================================================\n# REGIONAL AI (INDIA)\n# =============================================================================\n\n# Sarvam AI (TTS/STT for Hindi, Bengali, Hinglish)\nSARVAM_API_KEY=...\n\n# Google TTS/STT (fallback)\nGOOGLE_TTS_API_KEY=...\nGOOGLE_STT_API_KEY=...\n\n# =============================================================================\n# MESSAGING PLATFORMS\n# =============================================================================\n\n# Telegram Bot\nTELEGRAM_BOT_TOKEN=123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\n# WhatsApp (Baileys session directory)\nWHATSAPP_SESSION_DIR=./whatsapp_sessions\n\n# Alexa Skills\nALEXA_APP_ID=amzn1.ask.skill.xxx\nALEXA_SKILL_ID=amzn1.ask.skill.xxx\n\n# =============================================================================\n# BROWSER AUTOMATION\n# =============================================================================\n\n# Chrome CDP URL (for existing Chrome)\n# Format: ws://localhost:60807/devtools/browser/xxx\nCHROME_CDP_URL=ws://localhost:60807/devtools/browser/abc123\n\n# Or use headless Chromium (no existing Chrome needed)\nUSE_HEADLESS_CHROMIUM=true\n\n# =============================================================================\n# SEARCH & RESEARCH\n# =============================================================================\n\n# Tavily AI (AI-powered search)\nTAVILY_API_KEY=tvly-...\n\n# =============================================================================\n# STORAGE\n# =============================================================================\n\n# Google Drive (rclone mount path)\nGDRIVE_MOUNT_PATH=/mnt/gdrive\n\n# Local session storage\nSESSION_STORAGE_PATH=./sessions\n\n# =============================================================================\n# RATE LIMITING\n# =============================================================================\n\n# Telegram rate limit (requests per minute per user)\nTELEGRAM_RATE_LIMIT=10\n\n# Global concurrency limit\nGLOBAL_CONCURRENCY_MAX=5\n\n# =============================================================================\n# SERVER CONFIG\n# =============================================================================\n\n# Port for local server\nPORT=3000\n\n# GCP Cloud Run (if deployed)\nGCP_PROJECT_ID=your-project-id\nGCP_REGION=asia-south1\n\n# =============================================================================\n# LOGGING\n# =============================================================================\n\nLOG_LEVEL=info                          # debug, info, warn, error\nLOG_FORMAT=json                         # json, simple\n```\n\n---\n\n## Deployment\n\n### GCP Cloud Run\n\n```bash\n# 1. Set up GCP project\ngcloud config set project YOUR_PROJECT_ID\ngcloud config set region asia-south1\n\n# 2. Build and push container\ngcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/omniclaw:latest\n\n# 3. Deploy to Cloud Run\ngcloud run deploy omniclaw \\\n  --image gcr.io/YOUR_PROJECT_ID/omniclaw:latest \\\n  --platform managed \\\n  --region asia-south1 \\\n  --allow-unauthenticated \\\n  --port 3000 \\\n  --memory 2Gi \\\n  --cpu 2 \\\n  --timeout 300 \\\n  --concurrency 80\n\n# 4. Set environment variables in Cloud Run\ngcloud run services update omniclaw \\\n  --set-env-vars \"OPENAI_API_KEY=sk-...,ANTHROPIC_API_KEY=sk-ant-...\"\n\n# 5. Get service URL\ngcloud run services describe omniclaw --format 'value(status.url)'\n```\n\n### Docker Compose (Local Production)\n\n```yaml\n# docker-compose.yml\nversion: '3.8'\n\nservices:\n  omniclaw:\n    build:\n      context: .\n      dockerfile: infrastructure/docker/Dockerfile\n    ports:\n      - \"3000:3000\"\n    env_file:\n      - .env\n    volumes:\n      - ./sessions:/app/sessions\n      - ./whatsapp_sessions:/app/whatsapp_sessions\n    restart: unless-stopped\n    healthcheck:\n      test: [\"CMD\", \"curl\", \"-f\", \"http://localhost:3000/health\"]\n      interval: 30s\n      timeout: 10s\n      retries: 3\n\n  mcp-browser:\n    build:\n      context: ./skills/browser/sota-browser\n      dockerfile: Dockerfile\n    ports:\n      - \"3001:3001\"\n    environment:\n      - CHROME_CDP_URL=${CHROME_CDP_URL}\n    volumes:\n      - /tmp/chromium:/tmp/chromium\n    restart: unless-stopped\n\nnetworks:\n  default:\n    name: omniclaw-network\n```\n\n### WhatsApp Tunnel (Production)\n\n```bash\n# Start WhatsApp tunnel service\ncd services/tunnel/omniclaw-tunnel\n\n# Start ngrok tunnel (or use your own domain)\n./start_tunnel.sh\n\n# This exposes WhatsApp webhook to your server\n# Configure webhook URL in Baileys config\n```\n\n---\n\n## API Reference\n\n### Telegram Bot Commands\n\n| Command | Description | Example |\n|---------|-------------|---------|\n| `/start` | Start bot, show welcome message | `/start` |\n| `/help` | Show help and available commands | `/help` |\n| `/status` | Check bot and service status | `/status` |\n| `/search <query>` | Search with AI routing | `/search latest AI news` |\n| `/translate <text>` | Translate between languages | `/translate hello in hindi` |\n| `/tts <text>` | Text-to-speech synthesis | `/tts hello in hindi` |\n\n### REST Endpoints (Web Interface)\n\n| Method | Endpoint | Description | Request Body |\n|--------|----------|-------------|--------------|\n| `POST` | `/api/chat` | Send message to LLM | `{ text, user_id, channel }` |\n| `POST` | `/api/tts` | Text-to-speech | `{ text, language, voice }` |\n| `POST` | `/api/stt` | Speech-to-text | `{ audio_url, language }` |\n| `GET` | `/api/health` | Health check | - |\n| `GET` | `/api/status` | Service status | - |\n| `POST` | `/api/browser/connect` | Connect browser | `{ cdp_url }` |\n| `POST` | `/api/browser/navigate` | Navigate URL | `{ tab_id, url }` |\n\n### Alexa Intent Schema\n\n```json\n{\n  \"intents\": [\n    {\n      \"name\": \"ChatIntent\",\n      \"slots\": [\n        { \"name\": \"Message\", \"type\": \"AMAZON.SearchQuery\" }\n      ]\n    },\n    {\n      \"name\": \"TranslateIntent\",\n      \"slots\": [\n        { \"name\": \"Text\", \"type\": \"AMAZON.SearchQuery\" },\n        { \"name\": \"Language\", \"type\": \"AMAZON.SearchQuery\" }\n      ]\n    },\n    {\n      \"name\": \"SearchIntent\",\n      \"slots\": [\n        { \"name\": \"Query\", \"type\": \"AMAZON.SearchQuery\" }\n      ]\n    }\n  ]\n}\n```\n\n---\n\n## When NOT to Use This\n\nOmniClaw is a general-purpose orchestration layer. Consider alternatives in these scenarios:\n\n| Scenario | Consider Instead | Reason |\n|----------|-----------------|--------|\n| **Single-channel bot only** | python-telegram-bot, whatsapp-web.js | OmniClaw is overkill for a single channel |\n| **No multi-provider routing needed** | Direct OpenAI/Anthropic SDK calls | Adds unnecessary complexity |\n| **Pure conversational AI** | Vercel AI SDK, LangChain | More focused on LLM chains |\n| **Embedded/bot-specific framework** | Botpress, Flowise | Those are no-code; OmniClaw is code-first |\n| **Very low latency critical** | Custom WebSocket with single provider | Routing adds ~50-100ms |\n| **No multi-language needed** | english-only bot | Overhead for language detection/routing |\n| **Hosted bot platform** | Chatbot.com, Intercom | No-code solutions if you don't need code |\n| **Simple webhook relay** | Zapier, Make | No-code automation if no custom logic |\n\n---\n\n## Roadmap\n\n### v2.0 (Next)\n- [ ] Mobile app integration (iOS, Android)\n- [ ] Discord support\n- [ ] Advanced agent memory with vector store\n\n### v2.1\n- [ ] Slack integration\n- [ ] Multi-region fallback for reliability\n\n### v2.2\n- [ ] Signal/Threema support\n- [ ] Enterprise SSO (OAuth, SAML)\n\n### v2.3\n- [ ] Multimodal orchestration (image + audio + text)\n- [ ] Real-time collaboration features\n\n### v2.4\n- [ ] Plugin marketplace\n- [ ] Third-party skill marketplace\n\n---\n\n## Contributing\n\nContributions welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n### Development Setup\n\n```bash\n# Fork and clone\ngit clone https://github.com/YOUR_USERNAME/omniclaw.git\ncd omniclaw\n\n# Add upstream remote\ngit remote add upstream https://github.com/Das-rebel/omniclaw.git\n\n# Create feature branch\ngit checkout -b feature/amazing-feature\n\n# Install dependencies\nnpm install\n\n# Run in development mode\nnpm run alexa:dev\n\n# Run tests\nnpm test\n\n# Push to your fork\ngit push origin feature/amazing-feature\n\n# Open Pull Request against upstream main\n```\n\n### Code Style\n\n- Use **ESLint** for JavaScript linting\n- Use **Prettier** for code formatting\n- Write **unit tests** for new features\n- Update **documentation** for API changes\n\n### Reporting Bugs\n\n1. Check existing issues\n2. Create minimal reproduction case\n3. Include environment details (Node.js version, OS, etc.)\n4. Submit issue with `bug` label\n\n---\n\n## License\n\nMIT License - See [LICENSE](LICENSE)\n\n---\n\n## Project Stats\n\n| Metric | Value |\n|--------|-------|\n| **Files** | 353+ |\n| **LLM Providers** | 8+ |\n| **External Clients** | 50+ |\n| **Browser Tools** | 18 |\n| **Languages Supported** | 100+ |\n| **Platforms** | Alexa, WhatsApp, Telegram, Web |\n| **Skills** | 12 |\n| **MCP Servers** | 3 |\n| **Node.js Version** | ≥ 18.0.0 |\n\n---\n\n## Links\n\n- **GitHub**: [github.com/Das-rebel/omniclaw](https://github.com/Das-rebel/omniclaw)\n- **Issues**: [GitHub Issues](https://github.com/Das-rebel/omniclaw/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/Das-rebel/omniclaw/discussions)\n- **Telegram Bot**: [t.me/Dasomni_bot](https://t.me/Dasomni_bot)\n- **Production URL**: [dasomni-bot-338789220059.asia-south1.run.app](https://dasomni-bot-338789220059.asia-south1.run.app)\n\n---\n\n<p align=\"center\">\n  <strong>Built with ❤️ for universal AI orchestration</strong>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/Das-rebel/omniclaw/stargazers\">⭐ Star us on GitHub</a>\n  ·\n  <a href=\"https://github.com/Das-rebel/omniclaw/fork\">Fork</a>\n  ·\n  <a href=\"https://twitter.com/intent/tweet?text=Check%20out%20Omniclaw%20-%20Universal%20AI%20Orchestration%20Platform&url=https://github.com/Das-rebel/omniclaw\">Share</a>\n</p>","readmeFilename":"README.md"}