flock Documentation

A multi agent desktop application built with Rust and Tauri.

1,071 stars Rust Rust 1 file ยท ~1,858 tokens #agent#ai#chatbot#deekseek#harness#langchain#langgraph#langgraph-rust
RAW Doc

Flock

A desktop multi-agent harness built with Rust, Tauri, and React, powered by langgraph-rust.

Visual Workflow | Multi-Agent Harness | Built-in Agent | Safe Sandbox & VNC | Cross-Platform | Any API Key

English | ็ฎ€ไฝ“ไธญๆ–‡

Note: This project is built on top of langgraph-rust, which is my personal Rust implementation of the LangGraph framework.

Refactoring History: Flock has been completely rewritten from the ground up. The original version was a Python-based application using LangGraph, LangChain, and FastAPI as the backend. The current version is a native desktop application with a Rust backend, powered by Tauri for the desktop shell. This rewrite brings significant improvements in performance, reliability, and user experience.

Legacy Code: The original Python codebase is preserved in the legacy/python branch for reference.


๐Ÿ“‹ Quick Navigation

Multi-Agent Harness & Workflow ยท Core Features ยท Architecture ยท Quick Start


๐Ÿค Multi-Agent Harness & Workflow โ€” Visual Orchestration for AI Agents

Flock is more than just a chat client. It's a comprehensive multi-agent harness combined with a powerful Visual Workflow Editor. It orchestrates and runs AI agents locally or inside sandbox containers to read/write files, execute bash commands, browse the web, and run complex pipelines. You see everything the agent does, and you're always in control.

Capability / Feature Traditional Chat Clients Flock (Multi-Agent Harness)
Visual Workflow Builder No Yes โ€” ReactFlow editor with 10+ node types & streaming execution
AI Operating on Files Limited or No Yes โ€” Built-in agent with full filesystem, grep, and glob access
Multi-Step Autonomy No Yes โ€” Autonomous LangGraph-rust execution loop with approval prompts
Scheduled Task Automation No Yes โ€” Native Cron scheduler for 24/7 unattended workflows
Multi-Agent Collaboration No Yes โ€” Auto-detects & orchestrates multiple agents in team networks
Open Source & Extensible Rarely Yes โ€” Free, built with Rust & Tauri, fully extensible

๐ŸŒŸ Core Features

๐Ÿ•ธ๏ธ Visual Workflow Editor (ReactFlow Engine)

  • Drag-and-Drop Canvas: Design complex pipelines visually by connecting custom agent and logic nodes.
  • 10 Node Types Shipped:
    • start & answer: Define workflow inputs and final delivery parameters.
    • llm & agent: Pure inference nodes and tool-enabled LangGraph agents.
    • classifier & ifelse: Semantic routing routers and conditional branch checkers.
    • code: Custom JS/Python code runners to execute arbitrary transformations.
    • human: Interactive interrupts asking for manual feedback or input.
    • plugin & parameter_extractor: Expose custom tools/plugins and extract structured data.
  • Version Control & Execution History: Easily manage multiple versions of your visual workflows, track historical execution paths, and debug states incrementally.

๐Ÿ‘ฅ Human-in-the-Loop (HITL) & Safe Interaction

  • Interactive Tool Approvals: Crucial actions (like writing files, running bash scripts, or modifying configurations) require explicit user approval before execution. You can inspect the plan, approve, or deny on the fly.
  • VNC Screen Takeover: Directly interact with sandboxed browser and OS interfaces. When the agent gets stuck on captchas, you can take over mouse/keyboard controls seamlessly.
  • Workflow Breakpoints (human node): Place manual intervention checkpoints in the visual flow to request human decisions, form submissions, or variable modifications before proceeding.

๐ŸŒ Browser Automation & Computer Use

  • Playwright Browser: Scrape web data, click links, and bypass forms using an isolated browser execution engine.
  • Computer Use: Command virtual desktops using OS-level commands (xdotool). The agent monitors framebuffer screen feeds and handles mouse/keyboard events.

๐Ÿค– Built-in Agent โ€” Zero Configuration

  • Out of the box: No external CLI tools to download or configure. Paste any API Key (OpenAI, Gemini, Anthropic Claude, AWS Bedrock, or Ollama/local) and start immediately.
  • Skill Extensions: Extensible via YAML-frontmatter prompts that support Hot-Reloading on file changes.

๐Ÿ”’ Safe Sandbox Environment

  • Isolated Environment: Executes risky shell scripts and code execution safely inside isolated environment containers.
  • VNC Streaming: Stream sandbox desktops directly into the UI via WebSockets for full visual inspection of the running environment.

๐Ÿ”Œ MCP & Scheduled Tasks

  • MCP (Model Context Protocol): Connect to third-party MCP servers once; all assistants and workflows automatically inherit the newly exposed schemas and tools.
  • Scheduled Cron Tasks: Set it once, the agent executes scheduled tasks on autopilot. Supports standard cron syntax for automated system maintenance, daily file aggregation, or report generation.

๐Ÿ—๏ธ Architecture

mermaid
graph TD
    UI[Tauri Desktop UI - React + Mantine] <-->|IPC / Tauri Command| TauriHost[src-tauri Core]
    TauriHost <-->|IPC Interface / JSON Protocol| AgentEngine[flock-agent - LangGraph Core]
    AgentEngine -->|Graph State Machine| StateGraph[langgraph-rust]
    AgentEngine <-->|SQLite Checkpointer| DB[(SQLite Database)]
    AgentEngine <-->|Discovery / Frontmatter| Skills[flock-skills]
    
    AgentEngine <-->|Tool Execution| Registry[flock-tools - Tool Registry]
    Registry <-->|Local Host| Builtin[Built-in Tools: Bash, Files, Grep]
    Registry <-->|Model Context Protocol| MCP[MCP Server Registry]
    Registry <-->|Isolated Container| Sandbox[Sandbox Client]
    
    Sandbox <-->|X11 / VNC Server| VNC[x11vnc + websockify] <-->|Websocket Stream| UI
    Sandbox <-->|Playwright / xdotool| Browser[Browser & OS Controls]

Module Breakdown

Crate Directory Purpose
flock-core crates/flock-core Shared configuration schemas, SQLite DB models, encryption utilities, and IPC channels.
flock-agent crates/flock-agent The core agent executor loop, LangGraph state engine, checkpointer, and memory system.
flock-workflow crates/flock-workflow Workflow node logic and JSON-to-LangGraph AST compiler.
flock-tools crates/flock-tools Built-in and sandboxed tools, VNC web socket proxies, and sandbox managers.
flock-skills crates/flock-skills System prompts loader supporting variable injection and watcher-based hot-reload.
flock-ui flock-ui React application featuring Zustand, i18next, and ReactFlow editor.

๐Ÿš€ Quick Start

Prerequisites

  • Rust: 1.77.2 or later
  • Node.js: 18.x or later

Install & Run

  1. Clone the Repository

    bash
    git clone https://github.com/Onelevenvy/flock.git
    cd flock
  2. Install Frontend Dependencies

    bash
    cd flock-ui
    npm install
  3. Start Development App

    bash
    npm run tauri dev
  4. Run Backend Tests

    bash
    cargo test --workspace

๐Ÿ“„ License

Licensed under the Apache License, Version 2.0. See LICENSE for details.