RightNow-AI/openfangPublic

Open-source Agent Operating System

AI summary: An open-source Agent Operating System built in Rust for managing AI agents.

Stars
18.1K
+5 today
Forks
2.3K
Watchers
124
Open issues
73
Open PRs
45
Contributors
~76
Commits
551
Branches
8

RustApache-2.0Created Feb 24, 2026Last push 1mo agoLatest release v0.6.9+10 stars this week+14 this month

Star history

since Feb 22, 2026
05K10K15KFeb 2026Apr 2026Jun 2026Aug 2026
18.1K stars as of Aug 7, 2026, tracked back to Feb 22, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulAugMonWedFri2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 10 commits2026-02-27: 10 commits2026-02-28: 6 commits2026-03-01: 4 commits2026-03-02: 7 commits2026-03-03: 6 commits2026-03-04: 7 commits2026-03-05: 12 commits2026-03-06: 0 commits2026-03-07: 4 commits2026-03-08: 8 commits2026-03-09: 6 commits2026-03-10: 11 commits2026-03-11: 1 commit2026-03-12: 6 commits2026-03-13: 0 commits2026-03-14: 4 commits2026-03-15: 36 commits2026-03-16: 16 commits2026-03-17: 7 commits2026-03-18: 13 commits2026-03-19: 14 commits2026-03-20: 8 commits2026-03-21: 9 commits2026-03-22: 7 commits2026-03-23: 13 commits2026-03-24: 3 commits2026-03-25: 0 commits2026-03-26: 4 commits2026-03-27: 9 commits2026-03-28: 9 commits2026-03-29: 3 commits2026-03-30: 15 commits2026-03-31: 3 commits2026-04-01: 1 commit2026-04-02: 3 commits2026-04-03: 2 commits2026-04-04: 0 commits2026-04-05: 1 commit2026-04-06: 0 commits2026-04-07: 8 commits2026-04-08: 2 commits2026-04-09: 17 commits2026-04-10: 9 commits2026-04-11: 2 commits2026-04-12: 1 commit2026-04-13: 0 commits2026-04-14: 3 commits2026-04-15: 2 commits2026-04-16: 1 commit2026-04-17: 9 commits2026-04-18: 1 commit2026-04-19: 9 commits2026-04-20: 1 commit2026-04-21: 3 commits2026-04-22: 0 commits2026-04-23: 5 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 2 commits2026-04-27: 2 commits2026-04-28: 1 commit2026-04-29: 19 commits2026-04-30: 2 commits2026-05-01: 11 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 1 commit2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 1 commit2026-05-08: 2 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 44 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 0 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits
436 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    18,081 stars

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

  • Repeat trending

    7 trending appearances

What openfang does

Openfang provides a comprehensive, open-source Agent Operating System (AOS) designed to orchestrate and manage autonomous AI agents. Built with Rust for high performance and safety, it serves as a foundational layer for deploying, monitoring, and connecting various agent frameworks. The system implements the Model Context Protocol (MCP) to standardize how agents interact with external tools and data sources. By acting as an OS, Openfang abstracts away the complex infrastructure required for multi-agent systems, allowing developers to focus on agent logic.

AI engineers, systems developers, and researchers building complex, multi-agent architectures who need a performant, reliable infrastructure layer. Familiarity with Rust and agent frameworks is beneficial for deep integration.

  • Rust foundation: Engineered in Rust to ensure memory safety, concurrency, and high execution speed.
  • Agent orchestration: Manages the lifecycle, communication, and resource allocation for multiple AI agents.
  • MCP integration: Utilizes the Model Context Protocol for standardized tool and context access.
  • Open-source OS: Provides a transparent, foundational operating system layer specifically for AI workloads.
  • Framework agnostic: Designed to support and coordinate agents built across different frameworks.

Where teams use it

Multi-agent orchestration

Deploy and manage a swarm of specialized agents, handling their communication and resource distribution efficiently.

Standardized tool access

Use the built-in MCP support to grant all connected agents secure, unified access to enterprise databases and APIs.

High-performance agent hosting

Run resource-intensive autonomous workflows on a fast, Rust-based runtime that minimizes overhead.

Infrastructure abstraction

Build agent applications without worrying about the underlying execution environment, process management, or logging infrastructure.

Getting started: cargo install openfang

README

main branch

OpenFang Logo

OpenFang

The Agent Operating System

Open-source Agent OS built in Rust. 137K LOC. 14 crates. 1,767+ tests. Zero clippy warnings.
One binary. Battle-tested. Agents that actually work for you.

DocumentationQuick StartTwitter / X

Rust MIT v0.6.9 Tests Clippy Buy Me A Coffee


v0.5.10 (April 2026)

OpenFang is feature complete but still pre-1.0. Expect rough edges and breaking changes between minor versions. We ship fast and fix fast. Pin to a specific commit for production use until v1.0. Report issues here.


What is OpenFang?

OpenFang is an open-source Agent Operating System. Not a chatbot framework. Not a Python wrapper around an LLM. Not a "multi-agent orchestrator." A full operating system for autonomous agents, built from scratch in Rust.

Traditional agent frameworks wait for you to type something. OpenFang runs autonomous agents that work for you: on schedules, 24/7, building knowledge graphs, monitoring targets, generating leads, managing your social media, and reporting results to your dashboard.

The entire system compiles to a single ~32MB binary. One install, one command, your agents are live.

curl -fsSL https://openfang.sh/install | sh
openfang init
openfang start
# Dashboard live at http://localhost:4200
Windows
irm https://openfang.sh/install.ps1 | iex
openfang init
openfang start

Hands: Agents That Actually Do Things

"Traditional agents wait for you to type. Hands work for you."

Hands are OpenFang's core innovation. Pre-built autonomous capability packages that run independently, on schedules, without you having to prompt them. This is not a chatbot. This is an agent that wakes up at 6 AM, researches your competitors, builds a knowledge graph, scores the findings, and delivers a report to your Telegram before you've had coffee.

Each Hand bundles:

  • HAND.toml: manifest declaring tools, settings, requirements, and dashboard metrics.
  • System Prompt: multi-phase operational playbook. Not a one-liner. These are 500+ word expert procedures.
  • SKILL.md: domain expertise reference injected into context at runtime.
  • Guardrails: approval gates for sensitive actions (e.g. Browser Hand requires approval before any purchase).

All compiled into the binary. No downloading, no pip install, no Docker pull.

The 7 Bundled Hands

Hand What It Actually Does
Clip Takes a YouTube URL, downloads it, identifies the best moments, cuts them into vertical shorts with captions and thumbnails, optionally adds AI voice-over, and publishes to Telegram and WhatsApp. 8-phase pipeline. FFmpeg + yt-dlp + 5 STT backends.
Lead Runs daily. Discovers prospects matching your ICP, enriches them with web research, scores 0-100, deduplicates against your existing database, and delivers qualified leads in CSV/JSON/Markdown. Builds ICP profiles over time.
Collector OSINT grade intelligence. You give it a target (company, person, topic). It monitors continuously: change detection, sentiment tracking, knowledge graph construction, and critical alerts when something important shifts.
Predictor Superforecasting engine. Collects signals from multiple sources, builds calibrated reasoning chains, makes predictions with confidence intervals, and tracks its own accuracy using Brier scores. Has a contrarian mode that deliberately argues against consensus.
Researcher Deep autonomous researcher. Cross-references multiple sources, evaluates credibility using CRAAP criteria (Currency, Relevance, Authority, Accuracy, Purpose), generates cited reports with APA formatting, supports multiple languages.
Twitter Autonomous Twitter/X account manager. Creates content in 7 rotating formats, schedules posts for optimal engagement, responds to mentions, tracks performance metrics. Has an approval queue, so nothing posts without your OK.
Browser Web automation agent. Navigates sites, fills forms, clicks buttons, handles multi-step workflows. Uses Playwright bridge with session persistence. Mandatory purchase approval gate: it will never spend your money without explicit confirmation.
# Activate the Researcher Hand. It starts working immediately.
openfang hand activate researcher

# Check its progress anytime
openfang hand status researcher

# Activate lead generation on a daily schedule
openfang hand activate lead

# Pause without losing state
openfang hand pause lead

# See all available Hands
openfang hand list

Build your own. Define a HAND.toml with tools, settings, and a system prompt. Publish to FangHub.


OpenFang vs The Landscape

OpenFang vs OpenClaw vs ZeroClaw

Benchmarks: Measured, Not Marketed

All data from official documentation and public repositories, February 2026.

Cold Start Time (lower is better)

ZeroClaw   ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░   10 ms
OpenFang   ██████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░  180 ms    ★
LangGraph  █████████████████░░░░░░░░░░░░░░░░░░░░░░░░░  2.5 sec
CrewAI     ████████████████████░░░░░░░░░░░░░░░░░░░░░░  3.0 sec
AutoGen    ██████████████████████████░░░░░░░░░░░░░░░░░  4.0 sec
OpenClaw   █████████████████████████████████████████░░  5.98 sec

Idle Memory Usage (lower is better)

ZeroClaw   █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░    5 MB
OpenFang   ████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░   40 MB    ★
LangGraph  ██████████████████░░░░░░░░░░░░░░░░░░░░░░░░░  180 MB
CrewAI     ████████████████████░░░░░░░░░░░░░░░░░░░░░░░  200 MB
AutoGen    █████████████████████████░░░░░░░░░░░░░░░░░░  250 MB
OpenClaw   ████████████████████████████████████████░░░░  394 MB

Install Size (lower is better)

ZeroClaw   █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░  8.8 MB
OpenFang   ███░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░   32 MB    ★
CrewAI     ████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░  100 MB
LangGraph  ████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░  150 MB
AutoGen    ████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░  200 MB
OpenClaw   ████████████████████████████████████████░░░░  500 MB

Security Systems (higher is better)

OpenFang   ████████████████████████████████████████████   16      ★
ZeroClaw   ███████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░    6
OpenClaw   ████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░    3
AutoGen    █████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░    2
LangGraph  █████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░    2
CrewAI     ███░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░    1

Channel Adapters (higher is better)

OpenFang   ████████████████████████████████████████████   40      ★
ZeroClaw   ███████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░   15
OpenClaw   █████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░   13
CrewAI     ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░    0
AutoGen    ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░    0
LangGraph  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░    0

LLM Providers (higher is better)

ZeroClaw   ████████████████████████████████████████████   28
OpenFang   ██████████████████████████████████████████░░   27      ★
LangGraph  ██████████████████████░░░░░░░░░░░░░░░░░░░░░   15
CrewAI     ██████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░   10
OpenClaw   ██████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░   10
AutoGen    ███████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░    8

Feature-by-Feature Comparison

Feature OpenFang OpenClaw ZeroClaw CrewAI AutoGen LangGraph
Language Rust TypeScript Rust Python Python Python
Autonomous Hands 7 built-in None None None None None
Security Layers 16 discrete 3 basic 6 layers 1 basic Docker AES enc.
Agent Sandbox WASM dual-metered None Allowlists None Docker None
Channel Adapters 40 13 15 0 0 0
Built-in Tools 53 + MCP + A2A 50+ 12 Plugins MCP LC tools
Memory SQLite + vector File-based SQLite FTS5 4-layer External Checkpoints
Desktop App Tauri 2.0 None None None Studio None
Audit Trail Merkle hash-chain Logs Logs Tracing Logs Checkpoints
Cold Start <200ms ~6s ~10ms ~3s ~4s ~2.5s
Install Size ~32 MB ~500 MB ~8.8 MB ~100 MB ~200 MB ~150 MB
License MIT MIT MIT MIT Apache 2.0 MIT

16 Security Systems: Defense in Depth

OpenFang doesn't bolt security on after the fact. Every layer is independently testable and operates without a single point of failure.

# System What It Does
1 WASM Dual-Metered Sandbox Tool code runs in WebAssembly with fuel metering + epoch interruption. A watchdog thread kills runaway code.
2 Merkle Hash-Chain Audit Trail Every action is cryptographically linked to the previous one. Tamper with one entry and the entire chain breaks.
3 Information Flow Taint Tracking Labels propagate through execution. Secrets are tracked from source to sink.
4 Ed25519 Signed Agent Manifests Every agent identity and capability set is cryptographically signed.
5 SSRF Protection Blocks private IPs, cloud metadata endpoints, and DNS rebinding attacks.
6 Secret Zeroization Zeroizing<String> auto-wipes API keys from memory the instant they're no longer needed.
7 OFP Mutual Authentication HMAC-SHA256 nonce-based, constant-time verification for P2P networking.
8 Capability Gates Role based access control. Agents declare required tools, the kernel enforces it.
9 Security Headers CSP, X-Frame-Options, HSTS, X-Content-Type-Options on every response.
10 Health Endpoint Redaction Public health check returns minimal info. Full diagnostics require authentication.
11 Subprocess Sandbox env_clear() + selective variable passthrough. Process tree isolation with cross-platform kill.
12 Prompt Injection Scanner Detects override attempts, data exfiltration patterns, and shell reference injection in skills.
13 Loop Guard SHA256-based tool call loop detection with circuit breaker. Handles ping-pong patterns.
14 Session Repair 7-phase message history validation and automatic recovery from corruption.
15 Path Traversal Prevention Canonicalization with symlink escape prevention. ../ doesn't work here.
16 GCRA Rate Limiter Cost-aware token bucket rate limiting with per-IP tracking and stale cleanup.

Architecture

14 Rust crates. 137,728 lines of code. Modular kernel design.

openfang-kernel      Orchestration, workflows, metering, RBAC, scheduler, budget tracking
openfang-runtime     Agent loop, 3 LLM drivers, 53 tools, WASM sandbox, MCP, A2A
openfang-api         140+ REST/WS/SSE endpoints, OpenAI-compatible API, dashboard
openfang-channels    40 messaging adapters with rate limiting, DM/group policies
openfang-memory      SQLite persistence, vector embeddings, canonical sessions, compaction
openfang-types       Core types, taint tracking, Ed25519 manifest signing, model catalog
openfang-skills      60 bundled skills, SKILL.md parser, FangHub marketplace
openfang-hands       7 autonomous Hands, HAND.toml parser, lifecycle management
openfang-extensions  25 MCP templates, AES-256-GCM credential vault, OAuth2 PKCE
openfang-wire        OFP P2P protocol with HMAC-SHA256 mutual authentication
openfang-cli         CLI with daemon management, TUI dashboard, MCP server mode
openfang-desktop     Tauri 2.0 native app (system tray, notifications, global shortcuts)
openfang-migrate     OpenClaw, LangChain, AutoGPT migration engine
xtask                Build automation

40 Channel Adapters

Connect your agents to every platform your users are on.

Core: Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Email (IMAP/SMTP) Enterprise: Microsoft Teams, Mattermost, Google Chat, Webex, Feishu/Lark, Zulip Social: LINE, Viber, Facebook Messenger, Mastodon, Bluesky, Reddit, LinkedIn, Twitch Community: IRC, XMPP, Guilded, Revolt, Keybase, Discourse, Gitter Privacy: Threema, Nostr, Mumble, Nextcloud Talk, Rocket.Chat, Ntfy, Gotify Workplace: Pumble, Flock, Twist, DingTalk, Zalo, Webhooks

Each adapter supports per-channel model overrides, DM/group policies, rate limiting, and output formatting.


WhatsApp Web Gateway (QR Code)

Connect your personal WhatsApp account to OpenFang via QR code, just like WhatsApp Web. No Meta Business account required.

Prerequisites

  • Node.js >= 18 installed (download)
  • OpenFang installed and initialized

Setup

1. Install the gateway dependencies:

cd packages/whatsapp-gateway
npm install

2. Configure config.toml:

[channels.whatsapp]
mode = "web"
default_agent = "assistant"

3. Set the gateway URL (choose one):

Add to your shell profile for persistence:

# macOS / Linux
echo 'export WHATSAPP_WEB_GATEWAY_URL="http://127.0.0.1:3009"' >> ~/.zshrc
source ~/.zshrc

Or set it inline when starting the gateway:

export WHATSAPP_WEB_GATEWAY_URL="http://127.0.0.1:3009"

4. Start the gateway:

node packages/whatsapp-gateway/index.js

The gateway listens on port 3009 by default. Override with WHATSAPP_GATEWAY_PORT.

5. Start OpenFang:

openfang start
# Dashboard at http://localhost:4200

6. Scan the QR code:

Open the dashboard → ChannelsWhatsApp. A QR code will appear. Scan it with your phone:

WhatsAppSettingsLinked DevicesLink a Device

Once scanned, the status changes to connected and incoming messages are routed to your configured agent.

Gateway Environment Variables

Variable Description Default
WHATSAPP_WEB_GATEWAY_URL Gateway URL for OpenFang to connect to (empty = disabled)
WHATSAPP_GATEWAY_PORT Port the gateway listens on 3009
OPENFANG_URL OpenFang API URL the gateway reports to http://127.0.0.1:4200
OPENFANG_DEFAULT_AGENT Agent that handles incoming messages assistant

Gateway API Endpoints

Method Route Description
POST /login/start Generate QR code (returns base64 PNG)
GET /login/status Connection status (disconnected, qr_ready, connected)
POST /message/send Send a message ({ "to": "5511999999999", "text": "Hello" })
GET /health Health check

Alternative: WhatsApp Cloud API

For production workloads, use the WhatsApp Cloud API with a Meta Business account. See the Cloud API configuration docs.


27 LLM Providers, 123+ Models

3 native drivers (Anthropic, Gemini, OpenAI-compatible) route to 27 providers:

Anthropic, Gemini, OpenAI, Groq, DeepSeek, OpenRouter, Together, Mistral, Fireworks, Cohere, Perplexity, xAI, AI21, Cerebras, SambaNova, HuggingFace, Replicate, Ollama, vLLM, LM Studio, Qwen, MiniMax, Zhipu, Moonshot, Qianfan, Bedrock, and more.

Intelligent routing with task complexity scoring, automatic fallback, cost tracking, and per-model pricing.


Migrate from OpenClaw

Already running OpenClaw? One command:

# Migrate everything: agents, memory, skills, configs.
openfang migrate --from openclaw

# Migrate from a specific path
openfang migrate --from openclaw --path ~/.openclaw

# Dry run first to see what would change
openfang migrate --from openclaw --dry-run

The migration engine imports your agents, conversation history, skills, and configuration. OpenFang reads SKILL.md natively and is compatible with the ClawHub marketplace.


OpenAI-Compatible API

Drop-in replacement. Point your existing tools at OpenFang:

curl -X POST localhost:4200/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "researcher",
    "messages": [{"role": "user", "content": "Analyze Q4 market trends"}],
    "stream": true
  }'

140+ REST/WS/SSE endpoints covering agents, memory, workflows, channels, models, skills, A2A, Hands, and more.


Quick Start

# 1. Install (macOS/Linux)
curl -fsSL https://openfang.sh/install | sh

# 2. Initialize. Walks you through provider setup.
openfang init

# 3. Start the daemon
openfang start

# 4. Dashboard is live at http://localhost:4200

# 5. Activate a Hand. It starts working for you.
openfang hand activate researcher

# 6. Chat with an agent
openfang chat researcher
> "What are the emerging trends in AI agent frameworks?"

# 7. Spawn a pre-built agent
openfang agent spawn coder
Windows (PowerShell)
irm https://openfang.sh/install.ps1 | iex
openfang init
openfang start

Development

# Build the workspace
cargo build --workspace --lib

# Run all tests (1,767+)
cargo test --workspace

# Lint (must be 0 warnings)
cargo clippy --workspace --all-targets -- -D warnings

# Format
cargo fmt --all -- --check

Stability Notice

OpenFang v0.5.10 is pre-1.0. The architecture is solid, the test suite is comprehensive, and the security model is deep. That said:

  • Breaking changes may occur between minor versions until v1.0.
  • Some Hands are more mature than others. Browser and Researcher are the most battle tested.
  • Edge cases exist. If you find one, open an issue.
  • Pin to a specific commit for production deployments until v1.0.

We ship fast and fix fast. The goal is a rock solid v1.0 by mid 2026.


Security

To report a security vulnerability, email jaber@rightnowai.co. We take all reports seriously and will respond within 48 hours.


License

MIT. Use it however you want.


Links


Built by RightNow

RightNow Logo

OpenFang is built and maintained by Jaber, Founder of RightNow.

WebsiteTwitter / XBuy Me A Coffee


Built with Rust. Secured with 16 layers. Agents that actually work for you.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

100 total
  1. v0.6.9 — security patchesv0.6.9May 12, 20267.5K downloads

    **Security patches** (RUSTSEC advisories that broke v0.6.8 CI): - `rustls-webpki` 0.103.10 → 0.103.13: - RUSTSEC-2026-0104 — reachable panic in CRL parsing - RUSTSEC-2026-0098 — name constraints for URI names incorrectly accepted - RUSTSEC-2026-0099 — wildcard name constraints accepted incorrectly - `wasmtime` 43.0.1 → 43.0.2: - RUSTSEC-2026-0114 — panic allocating a table exceeding host address space **Maintenance:** - `cargo fmt` applied workspace-wide (CI Format gate green) **All v0.6.8 fixes carried forward:** - #1097 workspace state_dir split - #1085 dashboard WS auth aligned with HTTP middleware - #1038 skill_list / skill_describe / skill_execute agent tools - #995 Requesty provider added - #1154 OLLAMA_HOST / LMSTUDIO_HOST env override - #1170 require_signed wired through POST /api/skills/install - #1174 POST /api/audit/append endpoint - #1172 HAND.toml SHA-256 to Merkle audit chain - #780 Telegram message_thread_id routing - Codex installer findings: CRLF/BOM, package.json, symlink, TOCTOU all closed

  2. v0.6.8v0.6.8May 12, 2026226 downloads

    **Fixes:** - #1097 workspace state_dir split — private state stays under `~/.openfang/`, user workspace untouched - #1085 dashboard WS auth aligned with HTTP middleware - #1038 `skill_list` / `skill_describe` / `skill_execute` agent tools (replaces filesystem fallback) - #1170 `require_signed` wired through `POST /api/skills/install` with `allowed_signer_keys` allow-list - #1174 `POST /api/audit/append` endpoint for instance-side wrapper audit integration - #1172 HAND.toml SHA-256 auto-logged to Merkle audit chain on every load - #780 Telegram `message_thread_id` routing per-topic to named agents - Codex audit findings on installer.rs binding check closed: - CRLF and UTF-8 BOM normalization on both sides of compare - `package.json` added to manifest candidate list - symlink and canonicalization escape protection - TOCTOU closed via private staging dir plus atomic rename **Providers:** - #995 Requesty added (`https://router.requesty.ai/v1`) with 5 catalog entries - #1154 `OLLAMA_HOST` / `LMSTUDIO_HOST` / `VLLM_HOST` / `LEMONADE_HOST` env override for local providers **PR dispositions:** - closed: #1185, #1166, #1162, #1055, #1044, #1039, #969 - held pending external rebase

  3. Resolves **7 community issues**. 2657 tests passing, zero clippy warnings, zero regressions. ### Web Dashboard - **#1179** WebSocket reconnects to the active agent after page refresh. localStorage persists the agent id, init restores it, history hydrates from `/api/agents/{id}/session`. - **#1163** Uninstall an agent from chat. New `DELETE /api/agents/{id}/uninstall` removes the in-memory entry plus the `~/.openfang/agents/<name>/` directory. Red Uninstall button next to Stop in both the chat header and the agent detail modal. Path-traversal rejected. ### Kernel - **#1164** Agent Stop now deactivates the owning hand. Hand-owned agents no longer hit "Hand already active" on re-activation. WS `/stop` command mirrors the same path. ### Runtime - **#1169** `shell_exec` env passthrough. New `exec_policy.shell_env_passthrough` Vec<String> with aliases `env_passthrough` and `env_allowlist`. Wildcard `"*"` forwards every parent env var. Tested across the merge helper and 10 deser cases. - **#1051** TTS and image generation base URLs configurable. `media.tts_openai_base_url`, `media.tts_elevenlabs_base_url`, `media.image_gen_base_url`. Same pattern as `audio_base_url` from v0.6.4. Local

  4. Resolves **11 community issues** and **7 PRs merged** across drivers, channels, and dashboard. 2625 tests passing, zero clippy warnings, zero regressions. ### LLM Drivers - **#1157** vLLM 0.19+ `reasoning` field support. The driver now reads both `reasoning` (new) and `reasoning_content` (legacy) and emits both on the wire, keeping agentic loops working across vLLM upgrades and other OpenAI-compatible servers. ### Channels - **#1142** PR **#1143** Discord image attachments surface to text-only providers as a caption + image multipart, so models without vision still get the caption text instead of seeing the image silently dropped. - **#1144** PR **#1147** channel_id binding hardening. Single source of truth for routing, adapter allowlist, `deny_unknown_fields` on AgentBinding and BindingMatchRule. 14 new tests. - **#1141** PR **#1176** Shift+Enter inserts a newline in the chat input. Plain Enter still sends. ### Tools - **#1134** New `create_directory` tool. Routes through workspace sandbox with path traversal protection. 13 aliases (mkdir, make_directory, create_folder, etc.) wired in tool_compat. ### Web Dashboard - **#1167** PR **#1168** LaTeX math now renders in chat messag

  5. v0.6.5: Agent Wakeup, Server IDs, cloneAgentv0.6.5May 12, 2026113 downloads

    Resolves **8 community issues** + 3 PRs merged from trusted contributors. 2585 tests passing, zero clippy warnings, zero regressions. ### Agents - **#890** New `agent_activate` tool and `POST /api/agents/{id}/activate` endpoint. Orchestrator agents can wake suspended or crashed peers. Idempotent on Running, rejects Terminated. - **#868** cloneAgent API. `POST /api/agents/{template_id}/clone` deep-clones a template, applies overrides, assigns a fresh agent ID and workspace path. Excludes `MEMORY.md` so the new agent starts fresh. - **#869** Server-assigned message IDs. Every `Message` now carries a UUID v4 `msg_id` stamped at construction, plus an optional `provider_msg_id` for debugging. Legacy on-disk sessions get fresh IDs on first load. ### Web Dashboard - **#1026** Inferencing indicator. Live pulse next to agents currently calling the LLM. Computed from `running_tasks` DashMap. - **#931** Providers screen overhauled. Search, filter by status, group by category (frontier / oss / aggregator / regional / local), configured providers first. - **#915** Telegram `user_id` surfaced. `metadata.telegram_user_id` and prompt prefix `[From: Name (tg_id:NNN)]` give agents a stable per-use

Code frequency

additions and deletions
+205.3K-205.3KWeek of 2026-02-22: +205,346 linesWeek of 2026-02-22: -1,124 linesWeek of 2026-03-01: +13,380 linesWeek of 2026-03-01: -2,268 linesWeek of 2026-03-08: +16,586 linesWeek of 2026-03-08: -2,271 linesWeek of 2026-03-15: +19,542 linesWeek of 2026-03-15: -4,406 linesWeek of 2026-03-22: +11,487 linesWeek of 2026-03-22: -4,943 linesWeek of 2026-03-29: +2,230 linesWeek of 2026-03-29: -249 linesWeek of 2026-04-05: +5,533 linesWeek of 2026-04-05: -1,403 linesWeek of 2026-04-12: +2,940 linesWeek of 2026-04-12: -514 linesWeek of 2026-04-19: +6,055 linesWeek of 2026-04-19: -267 linesWeek of 2026-04-26: +5,034 linesWeek of 2026-04-26: -1,046 linesWeek of 2026-05-03: +54 linesWeek of 2026-05-03: -12 linesWeek of 2026-05-10: +7,684 linesWeek of 2026-05-10: -976 linesWeek of 2026-05-17: +0 linesWeek of 2026-05-17: -0 linesWeek of 2026-05-24: +0 linesWeek of 2026-05-24: -0 linesWeek of 2026-05-31: +0 linesWeek of 2026-05-31: -0 linesWeek of 2026-06-07: +0 linesWeek of 2026-06-07: -0 linesWeek of 2026-06-14: +0 linesWeek of 2026-06-14: -0 linesWeek of 2026-06-21: +0 linesWeek of 2026-06-21: -0 linesWeek of 2026-06-28: +0 linesWeek of 2026-06-28: -0 linesWeek of 2026-07-05: +0 linesWeek of 2026-07-05: -0 linesWeek of 2026-07-12: +0 linesWeek of 2026-07-12: -0 linesWeek of 2026-07-19: +0 linesWeek of 2026-07-19: -0 linesWeek of 2026-07-26: +0 linesWeek of 2026-07-26: -0 linesWeek of 2026-08-02: +0 linesWeek of 2026-08-02: -0 linesFeb 22, 2026Aug 2, 2026
+295.9K lines added, -19.5K removed over the last year.

Commits per week

last 52 weeks
1030Week of 2025-08-09: 0 commitsWeek of 2025-08-16: 0 commitsWeek of 2025-08-23: 0 commitsWeek of 2025-08-30: 0 commitsWeek of 2025-09-06: 0 commitsWeek of 2025-09-13: 0 commitsWeek of 2025-09-20: 0 commitsWeek of 2025-09-27: 0 commitsWeek of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 26 commitsWeek of 2026-03-01: 40 commitsWeek of 2026-03-08: 36 commitsWeek of 2026-03-15: 103 commitsWeek of 2026-03-22: 45 commitsWeek of 2026-03-29: 27 commitsWeek of 2026-04-05: 39 commitsWeek of 2026-04-12: 17 commitsWeek of 2026-04-19: 18 commitsWeek of 2026-04-26: 37 commitsWeek of 2026-05-03: 4 commitsWeek of 2026-05-10: 44 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 0 commitsWeek of 2026-06-21: 0 commitsWeek of 2026-06-28: 0 commitsWeek of 2026-07-05: 0 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 0 commitsWeek of 2026-07-26: 0 commitsWeek of 2026-08-02: 0 commitsAug 9, 2025Aug 2, 2026
436 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 3 commitsSun 1:00 — 2 commitsSun 2:00 — 0 commitsSun 3:00 — 1 commitsSun 4:00 — 4 commitsSun 5:00 — 3 commitsSun 6:00 — 4 commitsSun 7:00 — 1 commitsSun 8:00 — 2 commitsSun 9:00 — 3 commitsSun 10:00 — 0 commitsSun 11:00 — 4 commitsSun 12:00 — 4 commitsSun 13:00 — 1 commitsSun 14:00 — 1 commitsSun 15:00 — 5 commitsSun 16:00 — 13 commitsSun 17:00 — 3 commitsSun 18:00 — 1 commitsSun 19:00 — 1 commitsSun 20:00 — 4 commitsSun 21:00 — 4 commitsSun 22:00 — 8 commitsSun 23:00 — 0 commitsMon 0:00 — 2 commitsMon 1:00 — 1 commitsMon 2:00 — 2 commitsMon 3:00 — 2 commitsMon 4:00 — 3 commitsMon 5:00 — 1 commitsMon 6:00 — 1 commitsMon 7:00 — 0 commitsMon 8:00 — 2 commitsMon 9:00 — 5 commitsMon 10:00 — 2 commitsMon 11:00 — 2 commitsMon 12:00 — 3 commitsMon 13:00 — 1 commitsMon 14:00 — 9 commitsMon 15:00 — 2 commitsMon 16:00 — 1 commitsMon 17:00 — 1 commitsMon 18:00 — 8 commitsMon 19:00 — 3 commitsMon 20:00 — 1 commitsMon 21:00 — 2 commitsMon 22:00 — 2 commitsMon 23:00 — 5 commitsTue 0:00 — 5 commitsTue 1:00 — 5 commitsTue 2:00 — 2 commitsTue 3:00 — 0 commitsTue 4:00 — 2 commitsTue 5:00 — 1 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 0 commitsTue 10:00 — 1 commitsTue 11:00 — 0 commitsTue 12:00 — 1 commitsTue 13:00 — 0 commitsTue 14:00 — 14 commitsTue 15:00 — 21 commitsTue 16:00 — 11 commitsTue 17:00 — 7 commitsTue 18:00 — 7 commitsTue 19:00 — 3 commitsTue 20:00 — 3 commitsTue 21:00 — 3 commitsTue 22:00 — 3 commitsTue 23:00 — 0 commitsWed 0:00 — 0 commitsWed 1:00 — 5 commitsWed 2:00 — 2 commitsWed 3:00 — 2 commitsWed 4:00 — 2 commitsWed 5:00 — 6 commitsWed 6:00 — 3 commitsWed 7:00 — 1 commitsWed 8:00 — 0 commitsWed 9:00 — 0 commitsWed 10:00 — 0 commitsWed 11:00 — 0 commitsWed 12:00 — 0 commitsWed 13:00 — 0 commitsWed 14:00 — 1 commitsWed 15:00 — 7 commitsWed 16:00 — 3 commitsWed 17:00 — 1 commitsWed 18:00 — 3 commitsWed 19:00 — 3 commitsWed 20:00 — 2 commitsWed 21:00 — 0 commitsWed 22:00 — 3 commitsWed 23:00 — 1 commitsThu 0:00 — 4 commitsThu 1:00 — 7 commitsThu 2:00 — 5 commitsThu 3:00 — 3 commitsThu 4:00 — 0 commitsThu 5:00 — 1 commitsThu 6:00 — 1 commitsThu 7:00 — 1 commitsThu 8:00 — 11 commitsThu 9:00 — 0 commitsThu 10:00 — 0 commitsThu 11:00 — 3 commitsThu 12:00 — 3 commitsThu 13:00 — 3 commitsThu 14:00 — 3 commitsThu 15:00 — 3 commitsThu 16:00 — 1 commitsThu 17:00 — 6 commitsThu 18:00 — 6 commitsThu 19:00 — 5 commitsThu 20:00 — 3 commitsThu 21:00 — 4 commitsThu 22:00 — 1 commitsThu 23:00 — 1 commitsFri 0:00 — 4 commitsFri 1:00 — 2 commitsFri 2:00 — 0 commitsFri 3:00 — 2 commitsFri 4:00 — 1 commitsFri 5:00 — 0 commitsFri 6:00 — 1 commitsFri 7:00 — 0 commitsFri 8:00 — 0 commitsFri 9:00 — 0 commitsFri 10:00 — 2 commitsFri 11:00 — 0 commitsFri 12:00 — 3 commitsFri 13:00 — 9 commitsFri 14:00 — 0 commitsFri 15:00 — 3 commitsFri 16:00 — 3 commitsFri 17:00 — 3 commitsFri 18:00 — 3 commitsFri 19:00 — 5 commitsFri 20:00 — 4 commitsFri 21:00 — 2 commitsFri 22:00 — 10 commitsFri 23:00 — 3 commitsSat 0:00 — 4 commitsSat 1:00 — 0 commitsSat 2:00 — 1 commitsSat 3:00 — 1 commitsSat 4:00 — 7 commitsSat 5:00 — 1 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 0 commitsSat 9:00 — 0 commitsSat 10:00 — 0 commitsSat 11:00 — 0 commitsSat 12:00 — 2 commitsSat 13:00 — 1 commitsSat 14:00 — 0 commitsSat 15:00 — 3 commitsSat 16:00 — 0 commitsSat 17:00 — 1 commitsSat 18:00 — 1 commitsSat 19:00 — 3 commitsSat 20:00 — 2 commitsSat 21:00 — 1 commitsSat 22:00 — 2 commitsSat 23:00 — 5 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Mar 8, 2026daily#22+242
Mar 6, 2026daily#14+239
Mar 2, 2026daily#6+422
Mar 1, 2026daily#3+639
Feb 28, 2026daily#5+681
Feb 27, 2026daily#2+442
Feb 26, 2026daily#3+405
  • public-apis/public-apis

    A collective list of free APIs

    454.9K stars · Python

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    385.5K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    238.5K stars · JavaScript