-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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.
| 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.
- 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>.mdper servant +blackboard/まとめ.mdfor the coordinator). Not long-term memory — handoff notes. -
Tools & Safety — File tools are jail-bounded to
D:\Outcasts.jp(declare extra viarag).runis allowlist-enclosed. Secrets go to OS keyring, never to files.
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.
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 buildTests & 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-coreReleases: 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.

| 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)
- 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
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.