Skip to content
KTaka edited this page Aug 17, 2026 · 3 revisions

Welcome

Fuseforks (formal name: Outcasts Fuseforks, in-app display name: Fuseforks) is a desktop application where multiple AI agents coordinate and converse — a village you keep in your hands.

Create agents, connect them, talk to them. They delegate, divide work in parallel, bundle results, and work on their own when the time comes. Everything is visible in a single screen across 3 panes.

This wiki is the companion to the README. Start here, then dive into the pages that interest you.


What You Can Do — at a Glance

Capability One-liner
🏘️ Build a Village Create agents and tie them together. Kizuna (upper-center graph) is your control panel
🤝 Delegation & Convergence Coordinator asks with ask, fans out with plan (parallel), then bundles results
⏰ Scheduling Natural scheduling: "every Thursday at 17:00", "every 10 minutes" — no cron syntax
🔎 Pre-check Run a command at firing time; fire only when output matches your signal. Non-matching runs cost zero tokens. Shared-village commands require approval
🔌 MCP Paste Claude Desktop's mcp.json as-is. Shared + per-agent. Also serves as MCP server for external LLMs (Spec 25)
🔍 Grounding Gemini Google Search / Grok Live Search (web + X) / web search on OpenAI & Meta. Searched facts, sources, and not-found are visually distinct
🧠 Thinking Summary Model's reasoning summary in a separate collapsed frame — never mixed with answer/sources
🛠️ Built-in Tools remember / grep / fd / diff / sd / yq / file / rag / run — file tools cannot escape the work folder (except rag → declared folders, run → allowlist)
🪧 Tool Reasons One-line "why I'm using this tool" — the model's own account, shown in chat
🎚️ Handoff Toggle Deny the coordinator the "pass to user" tool; ask/plan still work, answers converge instead of drifting
🗣️ Public Square Log Optionally hear other servants' conversations (cost-aware toggle)
📎 Path Completion Type @ to pick a file from the work folder — only the path is inserted
🖼️ Attachments Image / audio / video / PDF via paste or picker; delivered one-turn-only; wires that can't carry a kind warn on paste
🏛️ Village Ordinance Shared prompt header for all agents — normalizes constitutional differences between models
🎭 Roles Servant templates with presets + colored badges in list & Kizuna
📁 Bulk Work-Folder Switch Change work folders for multiple servants at once; running servants pick it up next turn
💾 Persistence Close/reopen to resume; multiple sessions; fork from any point (backed by redb, pure Rust)
📊 Stats Tokens by conversation × servant × turn outcome (effective-token weights, never currency; failures counted)
⚙️ System Settings Your name/icon, language (UI + core messages), token limits, confirmations — left menu is the catalog

LLM wires: OpenAI-compatible / Anthropic / Gemini / xAI / OpenAI / Meta (native). Base URL is flexible — connect directly to Ollama / LM Studio and other local LLMs.


Core Concepts

  • Village — The orchestration unit. A set of servants, their wiring, ordinance, and shared folders.
  • Servant — An AI agent (one model + one system prompt + tools + work folder). The human is the Master.
  • Kizuna — The graph in the upper-center pane. Create ties, see delegation flow.
  • Ordinance (Village Ordinance) — Common rules prepended to every agent's prompt. Ranked below constitutions (Japanese Constitution, Claude/Gemini/OpenAI constitutions, Asimov) but above per-agent settings.
  • Blackboard (blackboard/) — Shared working memo (blackboard/<name>.md per servant + blackboard/まとめ.md for the coordinator). Not long-term memory — handoff notes.
  • Tools & Safety — File tools are jail-bounded to D:\Outcasts.jp (declare extra via rag). run is allowlist-enclosed. Secrets go to OS keyring, never to files.

Philosophy — A Real Thing Wearing the Shape of a Toy

Built for engineers as a hobby, not business orchestration infra.

Early Linux was dismissed as a toy by Solaris users, but because the internals were real Unix, it was worth taking home.

  • Core (fuseforks-core / data_contract.yaml / firing rules) is production quality: contract frozen before code, tests red-first, zero GUI dependency (the crate runs headless — enforced mechanically).
  • Shell (village, characters, 3 panes) is the hobby experience: less configuration, easier to understand. No cron/YAML walls.

Don't loosen the contract for cuteness. Don't add configuration to look businesslike.


Quick Start

Requirements: Rust 1.85+ (edition 2024), Bun, Tauri v2 OS prerequisites (WebView2 on Windows, WebKitGTK on Linux, Xcode CLT on macOS).

# install frontend deps
cd apps/gui-tauri && bun install

# dev with HMR
cd apps/gui-tauri && bun run tauri dev

# distributable (→ target/release/bundle/)
cd apps/gui-tauri && bun run tauri build

Tests & lint:

cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
cd apps/gui-tauri && bun run test
# If the app is running, use: cargo test -p fuseforks-core

Releases: pushing a v*.* tag builds for 3 OSes via .github/workflows/build.yml. macOS is Apple Silicon only.

API keys are stored in the OS credential store (via keyring), never in config files.


Screenshots

Japanese Light English Dark


Where to Go Next

Page What you get
Getting Started Install, first village, first ask/plan
Concepts Village / Servant / Kizuna / Ordinance / Blackboard in depth
Tools remember / grep / fd / diff / sd / yq / file / rag / run — boundaries & examples
Scheduling & Pre-check Natural schedules, pre-check commands, approval flow
MCP Connect tools (mcp.json passthrough) & expose village as MCP server
LLM Wires & Grounding Provider matrix, base URL, grounding display, thinking summary
Persistence & Sessions redb model, multi-session, forking
Settings & Roles System settings catalog, Roles, Village Ordinance
Specs & Contracts data_contract.yaml (takes precedence over impl), specs/ phase history
Failures failures.md — traps → root cause → prescription → generalization

Further reading in-repo: DETAIL_en.md (structure, concurrency, layout, wire layer) · data_contract.yaml · specs/ · failures.md · PRIVACY_en.md (developer receives nothing)


Tech Stack (summary)

  • Core: Rust 2024, Tokio + Rayon, redb, keyring, rmcp — zero GUI dependency
  • Shell: Tauri v2, Vue 3 + TypeScript + Vite, Tailwind CSS v4, v-network-graph (Kizuna), CodeMirror 6, vue-i18n (JA/EN), vitest + Bun

License

MPL-2.0 — file-level copyleft. Modify and distribute changed files → publish those files. Larger Works and your own new files remain under your terms. Private modifications stay private.