8000
  • Skip to content
    This repository was archived by the owner on Apr 16, 2026. It is now read-only.

    Latest commit

    Β 

    History

    472 Commits

    Folders and files

    NameName
    Last commit message
    Last commit date
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    < 8000 div class="react-directory-filename-column">
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 
    Β 

    Repository files navigation

    Important

    This repository has been superseded. Omni v2 β€” a complete TypeScript/Bun rewrite with event-driven architecture (NATS JetStream), a CLI-first design, and expanded channel support β€” is now the active project.

    New home: automagik-dev/omni

    This repo is archived and no longer maintained. Please star and use the new one!

    Automagik Omni Logo

    The Omnipresent Messaging Hub for AI Agents

    🌐 One Integration, All Channels, Zero Headaches
    Connect your AI agents to WhatsApp, Discord, Slack, and moreβ€”all through one unified API
    Multi-tenant, production-ready, and built for scale

    Build Status License Discord Roadmap

    What is Omni? β€’ Features β€’ Quick Start β€’ Architecture β€’ πŸ—ΊοΈ Roadmap β€’ Contributing


    πŸš€ What is Automagik Omni?

    Automagik Omni is your AI agent's universal translator for the messaging world. Think of it as an intelligent postman who:

    • πŸ—ΊοΈ Knows every address (WhatsApp, Discord, Slack, Instagram...)
    • 🌍 Speaks every language (different protocols and APIs)
    • πŸ“¬ Delivers messages reliably, every time
    • πŸ‘₯ Remembers every conversation for analytics and debugging

    πŸ’” The Problem: Integration Hell

    "Building messaging integrations is a developer's nightmare"

    Every time you want your AI agent to work on a new platform, you face:

    • πŸ“š Learn a new API: Each platform has different docs, authentication, webhooks
    • ♻️ Duplicate code: The same logic written 5 different ways for 5 platforms
    • πŸ› Maintenance nightmare: Updates break across different integrations
    • ⏰ Procrastination paralysis: "I'll add Slack support... later"
    • πŸ”₯ Production fires: When WhatsApp breaks, everything breaks

    The result? Months of development, fragile code, and agents that only work on 1-2 platforms.

    ✨ The Omni Solution: Write Once, Connect Everywhere

    graph LR
        A[Your AI Agent] -->|One API| B[OMNI HUB]
        B -->|Automatic| C[WhatsApp]
        B -->|Automatic| D[Discord]
        B -->|Automatic| E[Slack]
        B -->|Automatic| F[Instagram]
        B -->|Automatic| G[Teams]
        B -->|Automatic| H[...and more]
    
        style B fill:#00D9FF,stroke:#0099CC,stroke-width:3px,color:#000
    
    Loading

    What you get:

    • ✍️ Write integration code once β†’ works everywhere
    • πŸ”Œ Plug & Play: Connect new channels in minutes, not weeks
    • πŸ—οΈ Production-grade: Multi-tenant, secure, scalable from day one
    • πŸ“Š Full visibility: Every message traced from input to output
    • πŸ€– MCP-native: Control via Claude, Cursor, or any MCP tool

    🌟 The Vision: True Omnipresence

    Imagine talking to the same AI agent across all your apps, with perfect context:

    "Hey assistant, I saw a cool product on Instagramβ€”can you help me order it here on WhatsApp?"

    The agent remembers who you are, what you were talking about, and responds naturallyβ€”regardless of platform.

    Today: Omni makes your agents present on multiple channels Tomorrow: True omnipresence with shared context across all platforms


    🌟 Key Features

    βœ… Production-Ready Today

    • πŸ”Œ Plug & Play Setup: From zero to sending messages in under 5 minutes
    • 🏒 Multi-Tenant Architecture: Complete isolation between instances, teams, and clients
    • πŸ“Š Comprehensive Tracing: Every message logged with performance metrics and payloads
    • πŸ” Enterprise Security: API key authentication, request validation, CORS controls
    • πŸ€– MCP Server Built-in: Control from Claude Code, Cursor, or any MCP-compatible tool
    • πŸš€ Battle-Tested Scale: Handle 100+ instances and hundreds of concurrent conversations
    • πŸ”„ Real-Time Streaming: SSE support for Automagik Hive agents
    • 🐳 Deployment Flexible: Docker, PM2, systemdβ€”deploy however you prefer

    πŸ“± Supported Channels

    Channel Status Features
    WhatsApp βœ… Production Text, media, audio, stickers, reactions, presence, QR login via Evolution API
    Discord βœ… Production Multi-server, text, attachments, voice infrastructure, bot + IPC architecture
    Slack πŸ”„ Q4 2025 Full workspace integration with threads and reactions
    WhatsApp Business πŸ”„ Q4 2025 Business API with Flows for structured interactions
    Instagram Direct πŸ“… Q1 2026 DMs, stories, and engagement
    Telegram πŸ“… Q1 2026 Bots, channels, and groups
    Microsoft Teams πŸ“… Q1 2026 Enterprise collaboration
    LinkedIn Messages πŸ“… 2026-2027 Professional networking
    WeChat πŸ“… 2026-2027 China market access
    TikTok DMs πŸ“… 2026-2027 Short-form social engagement
    SMS Gateway πŸ“… 2026-2027 Universal text messaging

    🧩 Integrations

    Works seamlessly with the Automagik ecosystem:

    • Automagik Hive: Multi-agent orchestration with streaming SSE
    • Automagik Spark: Scheduled messaging and workflows
    • Automagik Tools: MCP tools for enhanced agent capabilities
    • Any OpenAPI-Compatible Agent: Bring your own agent with standard HTTP APIs

    πŸ“¦ Quick Start

    Prerequisites

    • Python 3.12+ (3.11+ supported)
    • PostgreSQL (recommended) or SQLite (for development)
    • Node.js 20+ (for Evolution API - WhatsApp integration)
    • Discord Bot Token (optional, for Discord) - Create here

    Note: Evolution API (WhatsApp) is included as a git submodule with SQLite support - no Docker required!

    Installation

    # 1. Clone with submodules (includes Evolution API for WhatsApp)
    git clone --recurse-submodules https://github.com/namastexlabs/automagik-omni.git
    cd automagik-omni
    
    # 2. Run the setup script (installs everything)
    ./update-automagik-omni.sh
    # This installs Python deps, Evolution API deps, and runs migrations
    
    # 3. Configure your API keys
    cp .env.example .env
    nano .env  # Set EVOLUTION_API_KEY and AUTOMAGIK_OMNI_API_KEY
    
    # 4. Start all services with PM2
    pm2 start ecosystem.config.js
    
    # βœ… Done! Services running:
    # - Omni API: http://localhost:8882
    # - Evolution API (WhatsApp): http://localhost:18082

    What gets installed:

    • βœ… Omni Backend - Multi-tenant messaging hub (Python/FastAPI)
    • βœ… Evolution API - WhatsApp integration with SQLite (no Docker!)
    • βœ… Health Checks - Ensures services start in correct order
    • βœ… Discord Manager - Multi-bot Discord integration (optional)

    Your First Message in 60 Seconds

    Quick Start with Defaults

    Use this curl command to create your first instance with local Evolution API:

    # Create instance with local Evolution API (started via PM2)
    curl -X POST http://localhost:8882/api/v1/instances \
      -H "x-api-key: YOUR_OMNI_API_KEY_HERE" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "my-first-bot",
        "channel_type": "whatsapp",
        "evolution_url": "http://localhost:18082",
        "evolution_key": "YOUR_EVOLUTION_API_KEY_HERE",
        "agent_api_url": "http://localhost:8886",
        "agent_api_key": "YOUR_AGENT_API_KEY_HERE",
        "default_agent": "template-agent"
      }'

    Replace the placeholders:

    • YOUR_OMNI_API_KEY_HERE β†’ Value from AUTOMAGIK_OMNI_API_KEY in your .env
    • YOUR_EVOLUTION_API_KEY_HERE β†’ Value from EVOLUTION_API_KEY in your .env
    • YOUR_AGENT_API_KEY_HERE β†’ Your AI agent's API key (e.g., Automagik Hive)

    Default ports:

    • Evolution API (WhatsApp): localhost:18082
    • Omni API: localhost:8882
    • Automagik Hive (optional): localhost:8886

    Complete Example

    # Check health
    curl http://localhost:8882/health
    # {"status": "healthy"}
    
    # Get QR code to connect WhatsApp
    curl http://localhost:8882/api/v1/instances/my-first-bot/qr \
      -H "x-api-key: YOUR_OMNI_API_KEY_HERE"
    # Scan with WhatsApp β†’ Connected!
    
    # Send a test message
    curl -X POST http://localhost:8882/api/v1/instances/my-first-bot/send-text \
      -H "x-api-key: YOUR_OMNI_API_KEY_HERE" \
      -H "Content-Type: application/json" \
      -d '{
        "phone": "+1234567890",
        "message": "πŸŽ‰ Hello from Automagik Omni!"
      }'

    That's it! Your agent is now live and responding on WhatsApp.

    Security Note: Always use strong, unique API keys in production. Never commit real keys to git.


    πŸ—οΈ Architecture

    How Omni Works

    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚                         OMNI HUB                             β”‚
    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚                                                               β”‚
    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
    β”‚  β”‚   WhatsApp   │─────▢│   Instance    │─────▢│   AI     β”‚ β”‚
    β”‚  β”‚   Webhook    β”‚      β”‚   Manager     β”‚      β”‚  Agent   β”‚ β”‚
    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
    β”‚                               β”‚                              β”‚
    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”             β”‚                              β”‚
    β”‚  β”‚   Discord    │──────────────                              β”‚
    β”‚  β”‚   Bot + IPC  β”‚             β”‚                              β”‚
    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚                              β”‚
    β”‚                         β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”                       β”‚
    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”‚   Message   β”‚      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
    β”‚  β”‚   Slack      │─────▢│   Router    │─────▢│  Trace   β”‚   β”‚
    β”‚  β”‚   (Soon)     β”‚      β”‚  & Handler  β”‚      β”‚  Store   β”‚   β”‚
    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
    β”‚                                                               β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
    

    Core Components

    1. Instance Manager: Multi-tenant instance management with complete isolation
    2. Channel Handler Factory: Pluggable architecture for platform-specific logic
    3. Message Router: Validates, enriches, and routes messages to appropriate agents
    4. Trace System: Complete message lifecycle tracking with performance metrics
    5. MCP Server: Remote control interface for AI coding agents

    Message Flow

    User sends message β†’ Platform webhook β†’ Omni validates
                                          ↓
                                  Access control check
                                          ↓
                                  Route to AI agent
                                          ↓
                                  Agent processes (with streaming support)
                                          ↓
                                  Format for platform
                                          ↓
                                  Send via channel
                                          ↓
                                  Store trace for analytics
    

    πŸ€– MCP: Control from Anywhere

    Automagik Omni includes a Model Context Protocol (MCP) server, enabling AI agents to programmatically manage messaging instances and send messages.

    Available MCP Tools

    Tool Description Operations
    manage_instances Instance CRUD operations list, get, create, update, delete, status, qr, restart, logout
    send_message Send messages to any channel text, media, audio, sticker, contact, reaction
    manage_traces Message history and analytics list, get, analytics, cleanup
    manage_profiles User profile management fetch, update_picture

    Quick MCP Setup

    πŸ€– Claude Code Configuration

    Add to your Claude Code MCP servers configuration:

    {
      "mcpServers": {
        "omni": {
          "command": "uvx",
          "args": ["--from", "automagik-omni", "mcp-server-omni"],
          "env": {
            "OMNI_URL": "http://localhost:8000",
            "OMNI_API_KEY": "your-api-key-here"
          }
        }
      }
    }

    Usage:

    "List all my messaging instances"
    "Send a WhatsApp message to +1234567890: Hello!"
    "Show me message analytics for the last 24 hours"
    
    🎯 Cursor Configuration

    Add to Cursor's MCP settings:

    {
      "mcp.servers": {
        "omni": {
          "command": "uvx",
          "args": ["--from", "automagik-omni", "mcp-server-omni"],
          "env": {
            "OMNI_URL": "http://localhost:8000",
            "OMNI_API_KEY": "your-api-key-here"
          }
        }
      }
    }
    πŸ“ VSCode + Cline Configuration

    For the Cline extension:

    {
      "cline.mcpServers": [
        {
          "name": "omni",
          "command": "uvx",
          "args": ["--from", "automagik-omni", "mcp-server-omni"],
          "env": {
            "OMNI_URL": "http://localhost:8000",
            "OMNI_API_KEY": "your-api-key-here"
          }
        }
      ]
    }
    πŸ”§ Generic MCP Configuration

    For any MCP-compatible tool:

    {
      "command": "uvx",
      "args": ["--from", "automagik-omni", "mcp-server-omni"],
      "env": {
        "OMNI_URL": "http://localhost:8000",
        "OMNI_API_KEY": "your-api-key-here"
      }
    }

    MCP Usage Examples

    # From Claude Code or any MCP client
    
    "Create a new WhatsApp instance named 'support-bot'"
    β†’ Uses manage_instances to create and configure
    
    "Send a message to customer +5511999999999: Your order has shipped!"
    β†’ Uses send_message with proper formatting
    
    "Show me all failed messages from yesterday"
    β†’ Uses manage_traces with filters
    
    "Get QR code for my WhatsApp instance 'sales-team'"
    β†’ Uses manage_instances(operation="qr")

    πŸ› οΈ API Reference

    Core Endpoints

    Instance Management

    # List all instances
    GET /api/v1/instances
    Headers: x-api-key: your-key
    
    # Create new instance
    POST /api/v1/instances
    {
      "name": "my-bot",
      "channel_type": "whatsapp|discord",
      "evolution_url": "https://...",  # WhatsApp only
      "evolution_api_key": "...",      # WhatsApp only
      "discord_token": "...",          # Discord only
      "agent_url": "https://your-agent.com/chat",
      "agent_api_key": "optional"
    }
    
    # Get instance details
    GET /api/v1/instances/{name}
    
    # Update instance
    PATCH /api/v1/instances/{name}
    {
      "agent_url": "https://new-endpoint.com"
    }
    
    # Delete instance
    DELETE /api/v1/instances/{name}

    Channel Operations

    # Get WhatsApp QR Code
    GET /api/v1/instances/{name}/qr
    
    # Check connection status
    GET /api/v1/instances/{name}/status
    
    # Restart connection
    POST /api/v1/instances/{name}/restart
    
    # Logout/disconnect
    POST /api/v1/instances/{name}/logout

    Messaging

    # Send text message
    POST /api/v1/instances/{name}/send-text
    {
      "phone": "+1234567890",
      "message": "Hello!",
      "quoted_message_id": "optional"
    }
    
    # Send media (image, video, document)
    POST /api/v1/instances/{name}/send-media
    {
      "phone": "+1234567890",
      "media_url": "https://example.com/image.jpg",
      "media_type": "image|video|document",
      "caption": "Optional caption"
    }
    
    # Send audio/voice note
    POST /api/v1/instances/{name}/send-audio
    {
      "phone": "+1234567890",
      "audio_url": "https://example.com/audio.mp3"
    }
    
    # Send reaction
    POST /api/v1/instances/{name}/send-reaction
    {
      "phone": "+1234567890",
      "message_id": "message-to-react-to",
      "emoji": "πŸ‘"
    }

    Traces & Analytics

    # List message traces
    GET /api/v1/traces?instance_name=my-bot&limit=50
    
    # Get specific trace
    GET /api/v1/traces/{trace_id}
    
    # Analytics summary
    GET /api/v1/traces/analytics/summary?start_date=2025-01-01
    
    # Cleanup old traces
    POST /api/v1/traces/cleanup
    {
      "days_old": 30,
      "dry_run": false
    }

    Authentication

    All API requests require the x-api-key header:

    curl -H "x-api-key: your-secret-key" \
      http://localhost:8000/api/v1/instances

    Set your API key in .env:

    OMNI_API_KEY=your-super-secret-key-here

    🎯 Agent Integration

    Automagik Hive (Recommended)

    Omni has first-class support for Automagik Hive with streaming Server-Sent Events:

    # Hive agent responds with SSE streaming
    # Omni automatically:
    # 1. Buffers the stream
    # 2. Formats for the target channel
    # 3. Sends when complete
    # 4. Handles errors gracefully
    
    # Just point agent_url to your Hive endpoint!

    Custom HTTP Agent

    Any agent that accepts HTTP POST with JSON:

    POST https://your-agent.com/chat
    Content-Type: application/json
    
    {
      "message": "User's message",
      "user_id": "platform:user_id",
      "platform": "whatsapp|discord",
      "context": {
        "phone": "+1234567890",
        "instance_name": "my-bot"
      }
    }
    
    Response:
    {
      "response": "Agent's reply message"
    }

    OpenAPI-Compatible Agent

    If your agent has an OpenAPI spec, it just works:

    # Create instance pointing to any OpenAPI endpoint
    curl -X POST http://localhost:8000/api/v1/instances \
      -H "x-api-key: your-key" \
      -d '{
        "agent_url": "https://api.yourservice.com/v1/chat",
        "agent_api_key": "service-api-key"
      }'

    πŸ—ΊοΈ Roadmap

    Q4 2025 - Foundation Strengthening

    • 🎯 Robustness & Scale: Performance beyond Evolution API limitations
    • πŸ“‹ Access Control: Whitelist/blacklist for user management
    • πŸ’Ό WhatsApp Business API: Flows for structured interactions
    • πŸ’¬ Slack Integration: Full workspace support with threads
    • πŸ”„ Fallback System: Multiple WhatsApp engines for redundancy

    Q1-Q2 2026 - Channel Expansion

    • πŸ“± Instagram Direct: DMs, stories, engagement
    • ✈️ Telegram: Bots, channels, groups
    • πŸ‘” Microsoft Teams: Enterprise collaboration
    • 🌐 Meta Messenger: Facebook messaging
    • 🌟 Unified User Management: Link users across platforms
    • 🧠 True Omnipresence: Shared context across all channels

    2026-2027 - Global Scale

    • πŸ’Ό LinkedIn Messages: Professional networking
    • πŸ‡¨πŸ‡³ WeChat: China market access
    • 🎡 TikTok DMs: Short-form social engagement
    • πŸ“± SMS Gateway: Universal text messaging
    • πŸ”Œ Open Architecture: Plugin system for any messaging platform
    • 🌍 Enterprise Features: SSO, audit logs, compliance tools

    πŸš€ Development

    Local Development

    # Start with hot reload
    make dev
    
    # Run tests
    make test
    
    # View logs
    make logs
    
    # Check code quality
    make lint
    make format
    
    # Database operations
    make migrate        # Run migrations
    make db-reset      # Reset database (caution!)
    make db-shell      # Open database shell

    Docker Deployment

    # Build and run
    docker-compose up -d
    
    # View logs
    docker-compose logs -f omni-api
    
    # Restart services
    docker-compose restart
    
    # Stop everything
    docker-compose down

    Production Deployment with PM2

    # Install PM2
    npm install -g pm2
    
    # Start all services
    pm2 start ecosystem.config.js
    
    # Monitor
    pm2 monit
    
    # View logs
    pm2 logs omni-api
    
    # Restart
    pm2 restart all
    
    # Stop
    pm2 stop all

    Environment Variables

    Key configuration options (see .env.example for complete list):

    # Omni API Configuration
    AUTOMAGIK_OMNI_API_HOST=0.0.0.0
    AUTOMAGIK_OMNI_API_PORT=8882
    AUTOMAGIK_OMNI_API_KEY=CHANGE-THIS-TO-SECURE-KEY
    
    # Database (SQLite for development)
    AUTOMAGIK_OMNI_SQLITE_DATABASE_PATH=./data/automagik-omni.db
    # Or PostgreSQL for production:
    # AUTOMAGIK_OMNI_DATABASE_URL=postgresql://user:pass@localhost:5432/automagik_omni
    
    # Evolution API (WhatsApp - runs locally via PM2)
    EVOLUTION_API_PATH=resources/evolution-api
    EVOLUTION_API_URL=http://localhost:18082
    EVOLUTION_API_PORT=18082
    EVOLUTION_API_KEY=CHANGE-THIS-TO-SECURE-KEY
    EVOLUTION_LOG_LEVEL=ERROR,WARN
    
    # Discord (optional)
    DISCORD_TOKEN=YOUR-DISCORD-BOT-TOKEN-HERE
    
    # Logging
    LOG_LEVEL=INFO  # DEBUG, INFO, WARNING, ERROR, CRITICAL

    Important: Generate strong, unique API keys for production. Never use default values!


    🀝 Contributing

    We love contributions! Here's how to get started:

    Quick Contribution Guide

    1. Fork the repository
    2. Clone your fork locally
    3. Create a feature branch: git checkout -b feature/amazing-feature
    4. Make your changes
    5. Test thoroughly: make test
    6. Commit with conventional commits: feat: add slack integration
    7. Push to your fork: git push origin feature/amazing-feature
    8. Open a Pull Request with clear description

    Development Setup

    # Clone your fork
    git clone https://github.com/YOUR_USERNAME/automagik-omni.git
    cd automagik-omni
    
    # Install dependencies with UV (recommended)
    make install
    
    # Create .env file
    cp .env.example .env
    
    # Run migrations
    make migrate
    
    # Start development server
    make dev
    
    # Run tests before committing
    make test
    make lint

    Contribution Guidelines

    • Follow existing code style (use make format)
    • Write tests for new features
    • Update documentation
    • Use conventional commits (feat:, fix:, docs:, refactor:)
    • Keep PRs focused on a single feature/fix

    See CONTRIBUTING.md for detailed guidelines.


    πŸ™ Acknowledgments

    Special thanks to:

    • Evolution API Team: For excellent WhatsApp infrastructure
    • Discord.py Community: For the powerful bot framework
    • Automagik Community: Early adopters and contributors
    • FastAPI Team: For the amazing Python web framework

    πŸ“„ License

    MIT License - see LICENSE file for details.


    πŸ”— Links


    🌐 Connect your AI to every messaging platform with one integration
    The omnipresent hub that just worksβ„’

    Star us on GitHub β€’ Join our Discord

    Made with ❀️ by Namastex Labs
    AI that elevates human potential, not replaces it

    Ask DeepWiki

    About

    🌐 The omnipresent messaging hub for AI agents. Connect to WhatsApp, Discord, Slack, and more through one unified API. Multi-tenant, production-ready, MCP-native.

    Topics

    Resources

    Contributing

    Stars

    22 stars

    Watchers

    3 watching

    Forks

    Releases

    Packages

    Used by

    Contributors

    Languages

    0