owly

agent
Guvenlik Denetimi
Basarisiz
Health Uyari
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 6 GitHub stars
Code Basarisiz
  • rm -rf — Recursive force deletion command in .claude/settings.local.json
  • process.env — Environment variable access in prisma.config.ts
Permissions Gecti
  • Permissions — No dangerous permissions requested
Purpose
This tool is a self-hosted, AI-powered customer support agent designed for small businesses. It integrates with WhatsApp, email, and phone channels to automate and manage customer inquiries via a single dashboard.

Security Assessment
Overall Risk: Medium. The tool processes highly sensitive data, including customer communications, email credentials (IMAP/SMTP), and WhatsApp sessions, requiring strict environment variable management. The automated scan flagged a `rm -rf` recursive force deletion command inside a `.claude/settings.local.json` file, which is unusual and warrants manual review to ensure it does not accidentally delete critical files during setup or operation. Additionally, there is environment variable access via `prisma.config.ts` for database connections. While no hardcoded secrets or dangerous system permissions were found, the nature of the data it handles inherently elevates its risk profile.

Quality Assessment
The project is relatively new but under active development, with its most recent code push occurring today. It uses a permissive MIT license and includes comprehensive documentation, screenshots, and a detailed wiki. However, community trust and visibility are currently very low, as evidenced by only 6 GitHub stars. Developers should anticipate the typical growing pains and potential security blind spots of an early-stage open-source project.

Verdict
Use with caution: Verify the flagged `rm -rf` command before deploying, and strictly secure your environment variables given the sensitive customer data this agent handles.
SUMMARY

AI-powered customer support agent with WhatsApp, Email & Phone channels

README.md

Owly

Features · Screenshots · Quick Start · Configuration · API · Tech Stack · Wiki · Roadmap

License Node PRs Welcome TypeScript Next.js PostgreSQL

Owly Demo


What is Owly?

Owly is a self-hosted AI customer support agent that small businesses and individuals can run on their own machines -- completely free. Connect your WhatsApp, Email, and Phone channels, add your business knowledge, and let the AI handle customer inquiries 24/7.


Zero Cost
No monthly fees. You only pay
for AI API usage.



Your Data, Your Server
Everything runs on your machine.
Complete privacy.



Multi-Channel
WhatsApp, Email, and Phone
from a single dashboard.



5-Minute Setup
Docker Compose or npm.
Guided setup wizard.



Features

Multi-Channel Support

Connect all your customer communication channels in one place.

WhatsApp

Connect via QR code scan or Business API. Handles text, images, voice messages, and documents.

Email

IMAP/SMTP with any provider. Branded HTML templates with automatic thread tracking.

Phone

Twilio Voice with OpenAI Whisper (STT) and ElevenLabs (TTS) for natural voice conversations.

Channel Management
Connect and manage all channels from one screen

AI-Powered Conversations

Owly uses OpenAI GPT (extensible to Claude, Ollama) with your knowledge base to provide accurate, on-brand responses. During conversations, the AI can autonomously:

  • Create tickets when customers report problems
  • Route issues to the right department based on expertise matching
  • Send internal emails to notify team members about urgent issues
  • Look up customer history for context-aware support
  • Trigger webhooks to notify external systems
  • Schedule follow-ups for proactive customer care

Conversations
Unified inbox with conversation thread and admin takeover

Customer CRM

Every customer gets a unified profile across all channels -- conversations, notes, tags, and contact history in one place.

Customer Management
Customer profiles with notes, tags, and cross-channel history

Knowledge Base

Train your AI with your business information. Organize entries into categories, set priorities, and test responses before going live.

Knowledge Base Categories
Categories with entry counts and color coding
Knowledge Base Entries
Entries with priority levels and active toggles

Automation Engine

Automate repetitive tasks with rule-based automation, business hours, SLA tracking, and canned responses.

Automation Rules
Auto-route, auto-tag, auto-reply, keyword alerts
Canned Responses
Quick reply templates with shortcuts
Business Hours
Weekly schedule with timezone and offline messages
SLA Rules
Response time targets per channel and priority

Team & Ticket Management

Organize your team into departments, track issues with a full ticket system, and monitor performance.

Team Management
Departments, members, expertise, and availability
Ticket System
Priority levels, assignments, and status tracking

Analytics & Insights

Monitor your support performance with charts, metrics, and team performance tracking.

Analytics Dashboard
Conversation trends, channel breakdown, ticket distribution, and satisfaction scores

Administration & API

Manage users, API keys, webhooks, and explore the full REST API with interactive documentation.

Administration
Multi-admin with roles and API key management
API Documentation
Interactive API docs with live request testing

Dark Mode

Full dark theme with persistent preference, applied across all 19 pages.

Dark Mode
Dark mode dashboard with consistent styling across all components

More Features

Settings
6-tab settings: General, AI, Voice, Phone, Email, WhatsApp
Webhooks
Webhook management with payload preview and testing

Quick Start

Prerequisites

  • Node.js 20+
  • PostgreSQL 16+

Option 1: npm

# Clone the repository
git clone https://github.com/hsperus/owly.git
cd owly

# Install dependencies
npm install

# Set up environment
cp .env.example .env
# Edit .env with your database URL and API keys

# Run database migrations
npx prisma migrate dev

# (Optional) Load sample data with a default admin account
npm run db:seed
# Default login: username=admin, password=admin123

# Start the development server
npm run dev

Option 2: Docker Compose

git clone https://github.com/hsperus/owly.git
cd owly

cp .env.example .env
# Edit .env with your API keys

docker compose up -d

Open http://localhost:3000 -- the setup wizard will guide you through the initial configuration.

Login Page
Clean login page with Owly branding


Configuration

All configuration is done through the admin dashboard -- no config files to edit after initial setup:

Setting Location Description
Business profile Settings > General Name, description, welcome message, tone
AI provider Settings > AI Configuration OpenAI / Claude / Ollama, model, API key
Voice Settings > Voice ElevenLabs API key and voice selection
Phone Settings > Phone Twilio Account SID, auth token, phone number
Email Settings > Email SMTP and IMAP server configuration
WhatsApp Channels > WhatsApp QR code scan or Business API
Team Team Departments, members, expertise areas
SLA SLA Rules Response and resolution time targets
Schedule Business Hours Weekly availability and offline messages
Automation Automation Auto-route, auto-tag, auto-reply rules
Templates Canned Responses Pre-written reply templates
Integrations Webhooks External service connections

API

Owly provides a full REST API. Interactive documentation with live testing is available at /api-docs in the dashboard.

# Send a message and get AI response
curl -X POST http://localhost:3000/api/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your_api_key" \
  -d '{"message": "What are your business hours?", "channel": "api"}'

# Response:
# {"conversationId": "...", "response": "We are open Monday to Friday, 9 AM to 6 PM..."}
# Health check
curl http://localhost:3000/api/health
# {"status": "ok", "version": "0.1.0", "database": "connected"}
View all endpoints
Method Endpoint Description
POST /api/chat Send message, get AI response
GET POST /api/conversations List or create conversations
GET PUT DELETE /api/conversations/:id Manage a conversation
POST /api/conversations/:id/messages Add message (admin takeover)
POST /api/conversations/:id/satisfaction Rate conversation (1-5)
POST /api/conversations/:id/notes Add internal note
GET POST /api/customers List or create customers
GET PUT DELETE /api/customers/:id Manage a customer
GET POST /api/tickets List or create tickets
GET PUT DELETE /api/tickets/:id Manage a ticket
GET POST /api/knowledge/categories Knowledge categories
GET POST /api/knowledge/entries Knowledge entries
POST /api/knowledge/test Test AI with a question
GET PUT /api/settings Application settings
GET /api/analytics?period=7d Analytics data
GET /api/export?type=conversations&format=csv Export (CSV/JSON)
GET POST /api/automation Automation rules
GET PUT /api/business-hours Business hours config
GET POST /api/sla SLA rules
GET POST /api/canned-responses Canned responses
GET POST /api/webhooks Webhook management
POST /api/webhooks/test Test a webhook
GET POST /api/admin/users Admin user management
GET POST /api/admin/api-keys API key management
GET /api/activity Activity audit log
GET /api/health Health check

Tech Stack

Layer Technology
Framework Next.js 14 (App Router)
Language TypeScript
Database PostgreSQL + Prisma ORM
UI Tailwind CSS
AI OpenAI GPT (extensible to Claude, Ollama)
Voice TTS ElevenLabs
Voice STT OpenAI Whisper
Phone Twilio Voice API
WhatsApp whatsapp-web.js
Auth JWT + bcrypt
Charts Pure CSS/SVG (zero dependencies)
Deployment Docker Compose

Project Structure

owly/
├── prisma/                  # Database schema, migrations, seed
├── public/                  # Static assets (logo)
├── docs/
│   ├── screenshots/         # UI screenshots (20 images)
│   └── wiki/                # Full documentation (25 pages)
├── src/
│   ├── app/
│   │   ├── (auth)/          # Login, setup wizard
│   │   ├── (dashboard)/     # 19 dashboard pages
│   │   └── api/             # 55+ REST API endpoints
│   ├── components/
│   │   ├── layout/          # Sidebar, header
│   │   └── ui/              # 12 reusable components
│   └── lib/
│       ├── ai/              # AI engine, tools, types
│       ├── channels/        # WhatsApp, email, phone
│       └── hooks/           # Theme hook
├── docker-compose.yml
├── Dockerfile
└── .env.example

Documentation

Full documentation is available in the Wiki:


Roadmap

  • Embeddable live chat widget for customer websites
  • WebSocket real-time updates
  • Vector embeddings for semantic knowledge search
  • Visual AI tool builder
  • Public knowledge base (self-service)
  • Customer self-service portal
  • Visual workflow builder
  • Telegram, Instagram, SMS channels
  • Shopify / WooCommerce integration
  • Sentiment analysis
  • Mobile admin (PWA)
  • Multi-tenant / white-label

Contributing

Contributions are welcome! See the Contributing Guide for details.

# Fork, clone, and create a branch
git checkout -b feature/your-feature

# Make changes and commit
git commit -m 'feat: add your feature'

# Push and open a PR
git push origin feature/your-feature

License

MIT License - see LICENSE for details.


Owly
Owly -- AI Customer Support, Made Simple
Built with Next.js, TypeScript, and PostgreSQL

Yorumlar (0)

Sonuc bulunamadi