MCPcopy Index your code
hub / github.com/Onelevenvy/flock

github.com/Onelevenvy/flock @v0.3.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.1 ↗ · + Follow
2,072 symbols 5,636 edges 491 files 579 documented · 28%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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 | 简体中文

Flock Main Screenshot Flock Chat Screenshot Flock Automation Screenshot Flock Assistants Screenshot Flock Workflow Screenshot

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

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.

Extension points exported contracts — how you extend this code

OutputSink (Interface)
Abstraction over output channels (terminal vs JSON stream ipc_interface) [4 implementers]
crates/flock-agent/src/sinks/mod.rs
Tool (Interface)
(no doc) [6 implementers]
crates/flock-tools/src/lib.rs
ProtocolEmitter (Interface)
Trait for emitting ipc_interface events to a host. The default implementation (`ProtocolWriter`) writes JSON Lines to s [3 …
crates/flock-core/src/ipc_interface/writer.rs
WorkflowSink (Interface)
Output sink for workflow execution [2 implementers]
crates/flock-workflow/src/nodes/common.rs
TypedVariable (Interface)
(no doc)
flock-ui/src/types/workflowVariables.ts
McpTransport (Interface)
(no doc) [3 implementers]
crates/flock-tools/src/tools/mcp/transport.rs
ModelFactory (Interface)
Trait for creating model instances by model name. Used by workflow nodes to support per-node model selection. [1 implementers]
crates/flock-core/src/model_factory.rs
VariableOption (Interface)
(no doc)
flock-ui/src/types/workflowVariables.ts

Core symbols most depended-on inside this repo

clone
called by 795
crates/flock-core/src/config/settings/types.rs
get
called by 663
crates/flock-tools/src/registry.rs
as_str
called by 256
crates/flock-agent/src/memory/types.rs
is_empty
called by 210
crates/flock-tools/src/file_cache.rs
len
called by 109
crates/flock-tools/src/file_cache.rs
pool
called by 89
crates/flock-core/src/db/mod.rs
tr
called by 78
crates/flock-core/src/lib.rs
insert
called by 78
crates/flock-tools/src/file_cache.rs

Shape

Function 1,111
Method 496
Interface 214
Class 211
Enum 40

Languages

Rust64%
TypeScript34%
Python2%

Modules by API surface

crates/flock-tools/src/lib.rs34 symbols
flock-ui/src/store/agentEventHandlers.ts27 symbols
crates/flock-workflow/src/nodes/common.rs24 symbols
crates/flock-core/src/config/settings/types.rs22 symbols
crates/flock-core/src/config/compat.rs19 symbols
flock-ui/src-tauri/src/commands/assistant/exec.rs18 symbols
crates/flock-core/src/config/hooks.rs18 symbols
crates/flock-core/src/config/auth.rs18 symbols
flock-ui/src-tauri/src/ipc/emitter.rs17 symbols
crates/flock-tools/src/tools/mcp/protocol.rs17 symbols
crates/flock-agent/src/http_recording.rs17 symbols
flock-ui/src-tauri/src/workspace/mod.rs16 symbols

For agents

$ claude mcp add flock \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact