ruflo
Frameworkruvnet/ruflo
Agent orchestration platform for Claude with swarms, memory, and federation.
Overview
Ruflo is a multi-agent orchestration platform for Claude Code. It enables deploying intelligent agent swarms, coordinating autonomous workflows, and building conversational AI systems. Features enterprise-grade architecture, self-learning swarm intelligence, RAG integration, and native Claude Code integration.
README Preview
\n\n[](https://flo.ruv.io/)\n\n[](https://flo.ruv.io/)\n[](https://goal.ruv.io/)\n[](https://goal.ruv.io/agents)\n\n[](https://github.com/ruvnet/claude-flow)\n[](https://opensource.org/licenses/MIT)\n[](https://github.com/ruvnet/claude-flow)\n[](https://www.npmjs.com/package/@claude-flow/codex)\n[](https://github.com/ruvnet/ruvector)\n\n# Ruflo\n\n**Multi-agent AI orchestration for Claude Code**\n\n\n\nOrchestrate 100+ specialized AI agents across machines, teams, and trust boundaries. Ruflo adds coordinated swarms, self-learning memory, federated comms, and enterprise security to Claude Code — so agents don't just run, they collaborate.\n\n### Why Ruflo?\n\n> Claude Flow is now Ruflo — named by [`rUv`](https://ruv.io), who loves Rust, flow states, and building things that feel inevitable. The "Ru" is the rUv. The "flo" is working until 3am. Underneath, powered by [`Cognitum.One`](https://cognitum.one/?RuFlo) agentic architecture, running a supercharged Rust based AI engine, embeddings, memory, and plugin system.\n\n\n### What Ruflo Does\n\nOne `npx ruvflo init` gives Claude Code a nervous system: agents self-organize into swarms, learn from every task, remember across sessions, and — with federation — securely talk to agents on other machines without leaking data. You keep writing code. Ruflo handles the coordination.\n\n```\nSelf-Learning / Self-Optimizing Agent Architecture\n\nUser --> Ruflo (CLI/MCP) --> Router --> Swarm --> Agents --> Memory --> LLM Providers\n ^ |\n +---- Learning Loop **New to Ruflo?** You don't need to learn 314 MCP tools or 26 CLI commands. After `init`, just use Claude Code normally -- the hooks system automatically routes tasks, learns from successful patterns, and coordinates agents in the background.\n\n---\n\n\n\n## Quick Start\n\nThere are **two different install paths** with very different surface areas. Pick based on what you need (#1744):\n\n| | **Claude C
FAQ (5)
TroubleshootingHow to fix ruflo or Claude Flow CLI --version hanging for 60+ seconds and exiting with code 143 on first run?
Upgrade to v3.10.33 or later, where --version/-V exits before loading the ONNX embedding model:
npx -y ruflo@3.10.33 --version
npx -y @claude-flow/cli@3.10.33 --version
The hang occurred on a cold cache because CLI initialization downloaded the 23 MB all-MiniLM-L6-v2 ONNX model from HuggingFace before printing the version. In v3.10.33, both ruflo and @claude-flow/cli read the version from package.json and exit immediately, reducing startup from over 60 seconds to about 33 ms.
If you must use an older release, prewarm the model cache once with a longer timeout:
timeout 180 npx -y ruflo@alpha --version
After the download completes, later invocations use the disk cache and start quickly. The broader lazy-loading/cli-core split remains tracked under ADR-100/#1760.
TroubleshootingHow do I fix verify.mjs failing with "Cannot find module '@noble/ed25519'" and skipping witness verification?
Install the declared npm dependencies before running verification. From the repository root, run:
npm ci && npm run build
Then invoke the verifier again, for example:
node plugins/ruflo-core/scripts/witness/verify.mjs --manifest verification/linux/manifest.md.json
For a local non-clean checkout, npm install from the repo root can also install the missing @noble/ed25519 dependency. Add npm ci && npm run build to the source-only verification runner's pre-flight step. Do not treat exit code 0 as success when the output says the Ed25519 check was skipped; successful verification must print the signature validation result and pass/drift/regressed/missing counts.
TroubleshootingHow do I fix memory_search_unified only searching six default namespaces and missing memory entries?
Upgrade to ruflo **3.10.33 or later** (npm install -g ruflo@3.10.33). In affected versions such as ruflo 3.10.13 / @claude-flow/cli 3.10.22, memory_search_unified without a namespace filter used a hardcoded list of six namespaces, so entries in namespaces such as knowledge-graph, causal-edges, brain-system, or custom namespaces were silently omitted. The fix uses dynamic namespace enumeration by default and adds: namespaces: string[], the CSV env var CLAUDE_FLOW_MEMORY_SEARCH_NAMESPACES, and namespaceSource in the response. Resolution priority is: explicit namespace → explicit namespaces → env override → dynamic enumeration → legacy fallback. On older versions, pass the target namespace explicitly, for example memory_search_unified({ query: "needle", namespace: "brain-system" }), or upgrade. Do not rely on edits under dist/; npm upgrades overwrite them.
TroubleshootingHow do I fix Ruflo MCP server not loading in Codex due to non-JSON stdout logs or initialize timeout?
Upgrade Ruflo to **v3.10.33 or newer**, which redirects third-party embedding/model-loading progress logs from stdout to stderr, keeping stdout reserved for MCP JSON-RPC frames.
Update your Codex MCP configuration to pin the fixed version:
[mcp_servers.ruflo]
command = "npx"
args = ["-y", "ruflo@3.10.33", "mcp", "start"]
enabled = true
Then restart Codex or the MCP server. The affected logs in v3.10.30 included:
Disk cache hit: all-MiniLM-L6-v2
🚀 Initializing 19 worker threads...
Loading model: all-MiniLM-L6-v2 (23MB)
Downloading: ...
These caused strict MCP clients such as Codex to fail parsing the initialize response, so the mcp__ruflo... tools did not appear. Increasing the startup timeout alone does not fix older versions because the stdout stream is already corrupted with non-JSON text. After upgrading, increase the client timeout only if the first model-download/initialization run is still slow.
TroubleshootingWhy does ruflo-console report successful security threat detections as failures and show '[WARN] Skipped helper auto-refresh' instead of the real error?
Upgrade ruflo-console to **0.40.5 or later**; the fix is in PR #3934 (merge 767f7a689). Version 0.40.3 incorrectly treated every non-zero CLI exit as a failure. Verdict commands use non-zero exits to indicate findings—for example, security defend/security scan exit 1 on threats, channel-scan/scan-plan exit 2 when a gate fires, and metaharness alert scripts exit 1 for an alert but exit 2 for an actual failure. The fixed runner parses the complete JSON response and accepts a declared non-zero exit as a valid verdict when the JSON confirms findings and no separate failure is reported. It also uses a shared failureReason helper that selects the actual [ERROR] line instead of the first stderr line, which may be a [WARN] notice. Restart the console/MCP service after upgrading. If upgrading is delayed, inspect and parse the command's stdout JSON directly and search stderr for [ERROR] rather than relying on the console's ok:false status or first stderr line.