Skip to content

dustland/openviber

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

590 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Viber Logo

OpenViber

You Imagine It. Tasks Build It.

Download GitHub Stars npm version License

English · 简体中文 · Documentation · Feedback


OpenViber is an open-source platform that turns your machine into a Viber — hosting role-scoped AI workers called tasks that automate real work. Unlike cloud-based agent frameworks, OpenViber runs locally with full privacy, connects outbound to your enterprise channels, and works autonomously while you sleep.

⭐ 100% Open Source · 🥇 Local Deployment · 🏆 MCP Integration

  • Zero Setup — No servers to host, just npx openviber start
  • Task Workforce — Role-scoped tasks working in parallel
  • Human-in-the-Loop — Enterprise messaging channels (DingTalk, WeCom)
  • Privacy First — 100% local execution, data never leaves your machine

🚀 Quick Start

The fastest way to get started is using npx:

# 1. Set your API key (OpenRouter recommended)
export OPENROUTER_API_KEY="your_api_key_here"

# 2. Start OpenViber (Standalone Mode)
npx openviber start

If you prefer to install it globally:

npm install -g openviber
viber start

🛠️ Development Setup

If you want to contribute or run from source:

1. Prerequisites

  • Node.js v18+ and pnpm (recommended)
  • tmux installed (brew install tmux on macOS)

2. Installation

git clone https://github.com/dustland/openviber.git
cd openviber
pnpm install

# Configure environment
cp .env.example .env
# Add your OPENROUTER_API_KEY to .env

3. Launch full stack

# Starts Gateway + Viber runtime (port 6009) and Web UI (port 6006)
pnpm dev

🧵 Interactive Experience

OpenViber provides multiple ways to interact with your vibers, designed for both developers and teams.

💻 Terminal Chat (tmux-friendly)

Use OpenViber from any terminal. It integrates deeply with tmux for streaming output and managing long-running tasks.

# Start an interactive chat
viber chat

🌐 Viber Board (Web UI)

A modern, visual interface to manage your tasks, monitor jobs, and chat in real-time. Accessible at http://localhost:6006 when running pnpm dev.

🏢 Enterprise Channels

Deploy your tasks to where your team works. Support for DingTalk and WeCom is built-in.

# Start the enterprise channel server
# Note: Defaults to port 6009. If running alongside 'viber start' (which also uses 6009), use a different port:
viber channels --port 6010

🧠 Personalization (The Three-File Pattern)

OpenViber follows a standardized configuration pattern for AI personality. Three markdown files define your task's complete behavior:

File Scope Purpose Update Frequency
user.md Shared Who you are, current projects, priorities Daily/Weekly
soul.md Per-task Communication style, boundaries, rules Monthly
memory.md Per-task Decisions, learned patterns, corrections Grows organically

Location: ~/.openviber/vibers/default/


✨ Key Features

🤖 Task Workforce (Jobs)

Deploy autonomous workers via simple YAML cron jobs.

# examples/jobs/morning-standup.yaml
name: morning-standup
schedule: "0 9 * * 1-5" # Every weekday at 9 AM
prompt: "Check GitHub notifications, summarize what needs my attention."

🔧 Zero Configuration Skills

Capabilities are defined in SKILL.md files. No complex code required to extend your tasks.

---
name: git-commit
description: Stage and commit changes
---
git add . && git commit -m "$message"

🌐 Model Context Protocol (MCP)

Seamlessly connect to any MCP server to give your tasks access to external tools like Google Maps, Slack, or custom internal APIs.

👤 Human-in-the-Loop

Maintain control with approval gates. Tasks can be configured to pause and ask for permission before executing sensitive actions (e.g., deleting files, making payments).


🏗️ Architecture

┌─────────────────────────────────────────────────┐
│                    Viber                        │
│                                                 │
│  ┌────────────────────────────────────────────┐  │
│  │  dev-task  │ researcher-task  │ pm-task    │  │
│  └────────────────────────────────────────────┘  │
│        │                                        │
│   ┌────┴─────────────────────┐                  │
│   │  Gateway (REST + WS)     │                  │
│   │  Scheduler + Dispatcher  │                  │
│   └──────────────────────────┘                  │
│        │                                        │
│   ┌────┴─────────────────────┐                  │
│   │  Worker (Agent Engine)   │                  │
│   │  Tools + Skills + MCP    │                  │
│   └──────────────────────────┘                  │
│        │                                        │
│   ┌────┴─────────────────────┐                  │
│   │        Channels          │                  │
│   │  Board │ DingTalk │ CLI  │                  │
│   └──────────────────────────┘                  │
└─────────────────────────────────────────────────┘
          ↓                    ↓
    Outbound Only      Local Execution

📊 Comparison

Feature OpenViber Cloud Agents IDE Plugins
Deployment Local Viber Cloud Server Editor Only
Connectivity Outbound Inbound/Cloud None
Autonomy Full (Jobs/Cron) Managed Manual Trigger
Privacy 100% Local Data Leaves Limited
Channels Multi-channel Web only Chat only

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for details.

Thanks

Special thanks to the maintainers and contributors of awesome-openclaw-skills for curating a high-quality OpenClaw skill catalog that helps power skill discovery in OpenViber.

📄 License

Licensed under the Apache License 2.0.


Website · Documentation · Issues

Made with ❤️ by Dustland

If you find Viber helpful, please ⭐ star us on GitHub!

About

Cowork Agent for Vibe-Working.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors