{"slug": "openyoke-branch-ai-conversations-into-a-graph-with-local-or-cloud-models", "title": "OpenYoke – Branch AI conversations into a graph, with local or cloud models", "summary": "OpenYoke, an open-source desktop app for chatting with local AI models, launches with branching conversations visualized as a graph. The tool runs entirely on the user's machine via Ollama, ensuring privacy and offline use, and supports streaming responses from models like Llama and Mistral.", "body_md": "### A private, local-first desktop app for chatting with open-source AI models — with branching conversations you explore as a visual graph.\n\nOpenYoke is an open-source **Ollama desktop GUI** and **private ChatGPT alternative** that runs entirely on your machine. No cloud, no accounts, no data leaving your computer. Manage models, chat with streaming responses, and branch any conversation into a tree you can navigate like a canvas.\n\n*Branch a conversation from any point and explore each direction as a graph — every branch keeps its own context.*\n\nMost local-LLM tools give you a plain chat box. OpenYoke gives you a **thinking space**:\n\n- 🌳\n**Branching conversations, not a linear log.** Every exchange is a node in a tree. Ask a follow-up, or branch off in a new direction from*any*earlier point — then see the whole shape of your thinking as an interactive, n8n-style graph. - 🧠\n**Context stays on the path.** When you branch, the model only sees the messages along that branch — sibling branches never bleed into each other. Explore competing ideas in parallel without cross-contamination. - 🔒\n**100% local and private.** Your conversations and model weights live on your machine. Nothing is sent anywhere. Perfect for sensitive work and offline use. - 🖥️\n**No terminal required.** Browse a curated model library, download models with a live progress bar, and delete them — all from inside the app. - ⚡\n**Fast and lightweight.** A native[Tauri](https://tauri.app)shell with a Rust backend. No Electron bloat, no bundled Chromium.\n\n- 🗂️\n**Branching conversation graph**— a free-drag canvas of nodes (each node is one question + answer). Pan, zoom, drag to arrange; branch from any node. - ✍️\n**Streaming responses**— tokens render live as the model generates, like the tools you already love. - 📚\n**In-app model management**— browse open models (Llama, Qwen, Mistral, Gemma, Phi, DeepSeek, and more), pull them with progress, and remove them to reclaim disk. - 💾\n**Your data, your folder**— pick where conversations and settings are saved; everything persists across restarts as plain JSON. - 🎨\n**Minimal, Notion-inspired UI**— clean, compact, and out of your way. - 🧩\n**Provider-ready architecture**— Ollama today, with a clean seam for embedded or cloud backends next.\n\nA conversation is a **tree**. Each node holds one interaction — your question and the model's answer.\n\n```\n            ┌─ \"Which frontend framework?\" ─┐\n\"Build a    │                               ├─ \"How do I deploy React?\"\n web app?\" ─┤                               └─ \"Compare React vs Svelte\"\n            └─ \"What about the backend?\" ──── \"Show me an Express example\"\n```\n\nAsk a follow-up to extend a branch; branch again from any node to explore an alternative. When the model answers at a node, it sees **only the path from the root to that node** — so your alternate branches stay independent. This isolation is enforced in the Rust backend, not just the UI.\n\n[Rust toolchain](https://www.rust-lang.org/tools/install)(stable)[Node.js](https://nodejs.org)(for the Tauri CLI)[Ollama](https://ollama.com)running locally (install below)\n\nInstall once; after that you manage models entirely from OpenYoke's **Models** tab.\n\n```\n# macOS\nbrew install ollama                                   # or the .dmg from ollama.com/download\n\n# Windows\nwinget install Ollama.Ollama                          # or the installer from ollama.com/download\n\n# Linux\ncurl -fsSL https://ollama.com/install.sh | sh\n```\n\nMake sure it's running (`ollama serve`\n\n) — it listens on `http://127.0.0.1:11434`\n\n, the address OpenYoke connects to by default. You do **not** need to pull models from the terminal; do it from the Models tab.\n\n```\nnpm install\nnpx tauri dev\nnpx tauri build\ncd src-tauri\ncargo test\n```\n\nOn first launch OpenYoke asks you to choose a **storage folder**. Your conversations (full history and branch structure) and settings are saved there as JSON, so nothing is lost between sessions.\n\n**Your data**:`conversations.json`\n\nand`settings.json`\n\nin the folder you pick.**A tiny pointer**: a`config.json`\n\nin the OS app-data dir remembers*where*your folder is — the only thing stored outside it.**Model weights** are managed by Ollama in`~/.ollama/`\n\n, not by OpenYoke.\n\nNothing is transmitted off your machine. OpenYoke only talks to your local Ollama instance.\n\nOpenYoke is a **pure Tauri** app — a Rust backend and a dependency-free web UI in one native binary. The frontend calls the backend over Tauri's `invoke`\n\nbridge; the backend talks to Ollama over HTTP.\n\n```\n┌──────────────────────────────────────┐\n│  OpenYoke (native desktop app)        │\n│                                       │\n│  WebView UI (static/)                 │\n│      │  invoke() / Channel            │\n│      ▼                                │\n│  Rust backend (src-tauri/)            │──HTTP──▶  Ollama (:11434)\n│   • tree.rs   branching + context     │\n│   • ollama.rs model + streaming chat  │\n│   • storage.rs your data folder       │\n│   • catalog.rs model library          │\n└──────────────────────────────────────┘\n```\n\n`static/`\n\n— the graph + model-management UI (vanilla HTML/CSS/JS, no bundler).`src-tauri/src/tree.rs`\n\n— pure branching-tree logic and the context-isolation walk.`src-tauri/src/ollama.rs`\n\n— the single seam to Ollama (`list_models`\n\n,`chat_stream`\n\n,`pull_model`\n\n,`delete_model`\n\n).`src-tauri/src/storage.rs`\n\n— resolves the user-chosen storage folder.`src-tauri/src/catalog.rs`\n\n— the browsable model library (remote-refreshable, bundled fallback).\n\n- Provider abstraction for multiple backends (the\n`ollama`\n\nmodule is the seam) - Optionally bundle Ollama so no separate install is needed\n- Richer tool / function-calling integration\n- Multi-model agent mode (different models per branch)\n- Export a branch or the whole tree (Markdown / JSON)\n\nContributions are welcome — issues, ideas, and pull requests all help. See [CONTRIBUTING.md](/saicv8/OpenYoke/blob/main/CONTRIBUTING.md) to get started.\n\n[MIT](/saicv8/OpenYoke/blob/main/LICENSE) © OpenYoke contributors.\n\n**Keywords:** local-first AI · Ollama GUI · private ChatGPT alternative · offline LLM · open-source models · branching conversations · conversation tree · tree of thought · llama · mistral · qwen · Tauri · Rust · desktop AI app\n\nIf OpenYoke is useful to you, consider giving it a ⭐ — it genuinely helps.", "url": "https://wpnews.pro/news/openyoke-branch-ai-conversations-into-a-graph-with-local-or-cloud-models", "canonical_source": "https://github.com/saicv8/OpenYoke", "published_at": "2026-07-14 14:07:41+00:00", "updated_at": "2026-07-14 14:18:16.950804+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-tools", "ai-products", "developer-tools"], "entities": ["OpenYoke", "Ollama", "Llama", "Mistral", "Tauri", "Rust"], "alternates": {"html": "https://wpnews.pro/news/openyoke-branch-ai-conversations-into-a-graph-with-local-or-cloud-models", "markdown": "https://wpnews.pro/news/openyoke-branch-ai-conversations-into-a-graph-with-local-or-cloud-models.md", "text": "https://wpnews.pro/news/openyoke-branch-ai-conversations-into-a-graph-with-local-or-cloud-models.txt", "jsonld": "https://wpnews.pro/news/openyoke-branch-ai-conversations-into-a-graph-with-local-or-cloud-models.jsonld"}}