# Omnara - Mission Control for Your AI Agents ๐Ÿš€ **Your AI workforce launchpad, in your pocket.**
[![PyPI version](https://badge.fury.io/py/omnara.svg)](https://badge.fury.io/py/omnara) [![Downloads](https://pepy.tech/badge/omnara)](https://pepy.tech/project/omnara) [![Python Versions](https://img.shields.io/pypi/pyversions/omnara.svg)](https://pypi.org/project/omnara/) [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![GitHub stars](https://img.shields.io/github/stars/omnara-ai/omnara?style=social)](https://github.com/omnara-ai/omnara) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
![Omnara Mobile Experience](./docs/assets/three-panel.png)
[๐Ÿ“ฑ **Download iOS App**](https://apps.apple.com/us/app/omnara-ai-command-center/id6748426727) โ€ข [๐ŸŒ **Try Web Dashboard**](https://omnara.ai) โ€ข [โญ **Star on GitHub**](https://github.com/omnara-ai/omnara)
--- ## ๐Ÿš€ What is Omnara? Omnara transforms your AI agents (Claude Code, Cursor, GitHub Copilot, and more) from silent workers into communicative teammates. Get real-time visibility into what your agents are doing, respond to their questions instantly, and guide them to success - all from your phone. ### โœจ Key Features | Feature | Description | |---------|------------| | **๐Ÿ“Š Real-Time Monitoring** | See every step your AI agents take as they work | | **๐Ÿ’ฌ Interactive Q&A** | Respond instantly when agents need guidance | | **๐Ÿ“ฑ Mobile-First Design** | Full control from your phone, tablet, or desktop | | **๐Ÿ”” Smart Notifications** | Get alerted only when your input is needed | | **๐ŸŽฏ Universal Dashboard** | All your AI agents in one unified interface | ### ๐ŸŽฌ See It In Action ![Mobile Notifications](./docs/assets/iNotifications-Stack.gif) > *The moment your agent needs help, you're there. No more returning to failed jobs hours later.* ![Agent Activity Feed](./docs/assets/Mobile-app-showcase.gif) ## ๐Ÿ’ก Why Omnara? We built Omnara because we were tired of: - โŒ Starting long agent jobs and finding them stuck hours later - โŒ Missing critical questions that blocked progress - โŒ Having no visibility into what our AI was actually doing - โŒ Being tied to our desks while agents worked **Now you can:** - โœ… Launch agents and monitor them from anywhere - โœ… Get push notifications when input is needed - โœ… Send real-time feedback to guide your agents - โœ… Have confidence your AI workforce is productive ## ๐ŸŽฏ Real-World Use Cases ### ๐Ÿ” **Code Review Assistant** Launch Claude to review PRs while you're at lunch. Get notified only if it needs clarification on architectural decisions. ### ๐Ÿšจ **Production Firefighter** Debug production issues from your phone at 2am. See exactly what your agent is investigating and guide it to the right logs. ### ๐Ÿ“Š **Data Pipeline Guardian** Start a 6-hour data migration before leaving work. Get alerts if anything looks suspicious, approve schema changes on the go. ### ๐Ÿ—๏ธ **Refactoring Copilot** Let Claude refactor that legacy module while you're in meetings. Answer its questions about business logic without context switching. ### ๐Ÿงช **Test Suite Doctor** Have Claude fix failing tests overnight. Wake up to either green builds or specific questions about expected behavior. ## ๐Ÿ—๏ธ Architecture Overview Omnara provides a unified platform for monitoring and controlling your AI agents: ```mermaid graph TB subgraph "Your AI Agents" A[๐Ÿค– AI Agents
Claude Code, Cursor, etc.] end subgraph "Omnara Platform" API[๐ŸŒ API Server] DB[(๐Ÿ“Š PostgreSQL)] NOTIFY[๐Ÿ”” Notification Service
Push/Email/SMS] end subgraph "Your Devices" M[๐Ÿ“ฑ Mobile App] W[๐Ÿ’ป Web Dashboard] end A -->|Send updates| API API -->|Store data| DB API -->|Trigger notifications| NOTIFY NOTIFY -->|Alert users| M DB -->|Real-time sync| M DB -->|Real-time sync| W M -->|User responses| API W -->|User responses| API API -->|Deliver feedback| A style A fill:#e3f2fd,stroke:#1976d2,stroke-width:3px style API fill:#c8e6c9,stroke:#388e3c,stroke-width:2px style DB fill:#ffccbc,stroke:#d84315,stroke-width:2px style NOTIFY fill:#fff59d,stroke:#f57f17,stroke-width:2px style M fill:#f8bbd0,stroke:#c2185b,stroke-width:3px style W fill:#f8bbd0,stroke:#c2185b,stroke-width:3px ``` ### ๐Ÿš€ How It Works **1. Connect Your Agent** โ†’ Install Omnara SDK or wrapper **2. Get Real-Time Updates** โ†’ See every step your agent takes **3. Respond Instantly** โ†’ Answer questions from anywhere ### ๐Ÿ”„ Two Ways to Use Omnara | Mode | Setup | How It Works | |------|-------|-------------| | **Real-Time Monitoring** | `omnara` or `uv run omnara` | Monitor your Claude session, forwards to Omnara | | **Remote Launch** | `omnara serve` or `uv run omnara serve` | Launch agents from phone, communicate via MCP | ### ๐Ÿ”ง Technical Stack - **Backend**: FastAPI with separate read/write servers for optimal performance - **Frontend**: React (Web) + React Native (Mobile) - **Protocol**: Model Context Protocol (MCP) + REST API - **Database**: PostgreSQL with SQLAlchemy ORM - **Auth**: Dual JWT system (Supabase for users, custom for agents) ## ๐Ÿš€ Quick Start ### Option 1: Monitor Your Claude Sessions See what Claude is doing in real-time: 1. **Install Omnara**: ```bash # Using pip pip install omnara # Using uv (faster) uv pip install omnara ``` 2. **Start monitoring**: ```bash # If installed with pip omnara # If installed with uv uv run omnara ``` 3. **Authenticate** in your browser (opens automatically) 4. **See everything** your agent does in the Omnara dashboard! ### Option 2: Launch Agents Remotely Trigger Claude from your phone: 1. **Start the server** on your computer: ```bash # Using pip pip install omnara omnara serve # Using uv (faster) uv pip install omnara uv run omnara serve ``` 2. **Set up your agent** in the mobile app with the webhook URL shown 3. **Launch agents** from anywhere - beach, coffee shop, bed! ### For Developers
๐Ÿ› ๏ธ Development Setup #### Prerequisites - Python 3.10+ - PostgreSQL - Node.js (for CLI tools) #### Setup Steps 1. **Clone and enter the repository** ```bash git clone https://github.com/omnara-ai/omnara cd omnara ``` 2. **Set up Python environment** ```bash python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate make dev-install ``` 3. **Generate JWT keys** ```bash python scripts/generate_jwt_keys.py ``` 4. **Configure environment** (create `.env` file) ```env DATABASE_URL=postgresql://user:password@localhost:5432/omnara SUPABASE_URL=https://your-project.supabase.co SUPABASE_ANON_KEY=your-anon-key JWT_PRIVATE_KEY='-----BEGIN RSA PRIVATE KEY-----\n...' JWT_PUBLIC_KEY='-----BEGIN PUBLIC KEY-----\n...' ``` 5. **Initialize database** ```bash cd shared/ alembic upgrade head cd .. ``` 6. **Run services** ```bash # Terminal 1: MCP + REST Server python -m servers.app # Terminal 2: Backend API cd backend && python -m main ```
## ๐Ÿ”ง Advanced Usage (Without CLI) > **Note**: Most users should use the simple `omnara` or `omnara serve` commands shown above. These methods are for advanced users who need custom integrations or want to run the underlying scripts directly. ### Method 1: Direct Wrapper Script Run the monitoring wrapper directly (what `omnara` does under the hood): ```bash # Basic usage python -m webhooks.claude_wrapper_v3 --api-key YOUR_API_KEY # With git diff tracking python -m webhooks.claude_wrapper_v3 --api-key YOUR_API_KEY --git-diff # Custom API endpoint (for self-hosted) python -m webhooks.claude_wrapper_v3 --api-key YOUR_API_KEY --base-url https://your-server.com ``` ### Method 2: Manual MCP Configuration For custom MCP setups, you can configure manually: ```json { "mcpServers": { "omnara": { "command": "pipx", "args": ["run", "--no-cache", "omnara", "mcp", "--api-key", "YOUR_API_KEY"] } } } ``` ### Method 3: Python SDK ```python from omnara import OmnaraClient import uuid client = OmnaraClient(api_key="your-api-key") instance_id = str(uuid.uuid4()) # Log progress and check for user feedback response = client.send_message( agent_type="claude-code", content="Analyzing codebase structure", agent_instance_id=instance_id, requires_user_input=False ) # Ask for user input when needed answer = client.send_message( content="Should I refactor this legacy module?", agent_instance_id=instance_id, requires_user_input=True ) ``` ### Method 4: REST API ```bash curl -X POST https://api.omnara.ai/api/v1/messages/agent \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"content": "Starting deployment process", "agent_type": "claude-code", "requires_user_input": false}' ``` ## ๐Ÿค Contributing We love contributions! Check out our [Contributing Guide](CONTRIBUTING.md) to get started. ### Development Commands ```bash make lint # Run code quality checks make format # Auto-format code make test # Run test suite make dev-serve # Start development servers ``` ## ๐Ÿ“Š Pricing | Plan | Price | Features | |------|-------|----------| | **Free** | $0/mo | 10 agents/month, Core features | | **Pro** | $9/mo | Unlimited agents, Priority support | | **Enterprise** | [Contact Us](https://cal.com/ishaan-sehgal-8kc22w/omnara-demo) | Teams, SSO, Custom integrations | ## ๐Ÿ†˜ Support - ๐Ÿ“– [Documentation](https://docs.omnara.ai) - ๐Ÿ’ฌ [GitHub Discussions](https://github.com/omnara-ai/omnara/discussions) - ๐Ÿ› [Report Issues](https://github.com/omnara-ai/omnara/issues) - ๐Ÿ“ง [Email Support](mailto:ishaan@omnara.com) ## ๐Ÿ“œ License Omnara is open source software licensed under the [Apache 2.0 License](LICENSE). ---
**Built with โค๏ธ by the Omnara team** [Website](https://omnara.ai) โ€ข [Twitter](https://twitter.com/omnara_ai) โ€ข [LinkedIn](https://linkedin.com/company/omnara)