{"id":"63641bf6-02fb-4c64-9028-4149ad69b97e","slug":"grafyn","kind":"mcp","name":"Grafyn","summary":"Local-first workspace for building a personal cognitive twin from notes, evidence, and AI-assisted reasoning.","owner":"WKJBryan","repoUrl":"https://github.com/WKJBryan/Grafyn","license":"AGPL-3.0","licenseTier":"strong-copyleft","trust":"community","stars":3,"match":null,"fewStars":true,"format":"mcp","createdAt":"2025-12-31T09:26:22.000Z","addedAt":"2026-10-21T16:33:09.660Z","logoUrl":"https://avatars.githubusercontent.com/u/227426514?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["productivity","memory-knowledge","files-documents"],"tags":["cognitive-digital-twins","desktop-app","knowledge-graph","local-first","note-taking","personal-knowledge-management","privacy-preserving","tauri"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-26T00:58:09.593Z","sample":false,"url":"https://conduits.dev/tools/grafyn","language":"Rust","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"<p align=\"center\">\n  <img src=\"frontend/src-tauri/icons/icon.png\" alt=\"Grafyn\" width=\"128\" height=\"128\">\n</p>\n\n<h1 align=\"center\">Grafyn</h1>\n\n<p align=\"center\">\n  A local-first knowledge vault and multi-model AI canvas that captures the evidence for your personal digital twin.\n  <br>\n  <strong>Windows</strong> &middot; <strong>macOS</strong> &middot; <strong>Linux</strong>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/WKJBryan/Grafyn/releases/latest\"><img src=\"https://img.shields.io/github/v/release/WKJBryan/Grafyn?style=flat-square&color=blue\" alt=\"Release\"></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-GPL--3.0-green?style=flat-square\" alt=\"License: GPL-3.0\"></a>\n  <a href=\"https://github.com/WKJBryan/Grafyn/actions/workflows/test.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/WKJBryan/Grafyn/test.yml?branch=main&style=flat-square&label=tests\" alt=\"Tests\"></a>\n  <a href=\"https://github.com/WKJBryan/Grafyn/releases\"><img src=\"https://img.shields.io/github/downloads/WKJBryan/Grafyn/total?style=flat-square&color=orange\" alt=\"Downloads\"></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"#install\">Install</a> &middot;\n  <a href=\"#what-you-get\">What You Get</a> &middot;\n  <a href=\"#the-twin\">The Twin</a> &middot;\n  <a href=\"#privacy--your-data\">Privacy</a> &middot;\n  <a href=\"#project-status\">Status</a> &middot;\n  <a href=\"CONTRIBUTING.md\">Contributing</a>\n</p>\n\n---\n\n**Grafyn is three things that feed each other:**\n\n1. **A knowledge vault** — plain markdown notes with `[[wikilinks]]`, full-text search, and an auto-organized knowledge graph. Your files, on your disk, readable by anything.\n2. **A multi-model canvas** — ask several AI models the same question side by side, with your own notes automatically retrieved as context. Compare, branch, make them debate.\n3. **A twin evidence recorder** — as you work, Grafyn captures how you think: what you accept, reject, correct, and prefer. That evidence powers an experimental retrieval-based \"digital twin\" today, and exports cleanly for whatever you want to train tomorrow.\n\nEverything runs on your machine. The only thing that ever leaves it is the prompt context you send to the AI models you choose.\n\n> **Early development** — the vault and canvas are solid daily tools; the twin is an honest experiment. See [Project Status](#project-status) for exactly what's stable.\n\n## Install\n\nDownload the latest installer from [Releases](https://github.com/WKJBryan/Grafyn/releases/latest):\n\n| Platform | File |\n|----------|------|\n| Windows x64 | `Grafyn_*_x64-setup.exe` |\n| Windows ARM64 | `Grafyn_*_arm64-setup.exe` |\n| macOS Apple Silicon | `Grafyn_*_aarch64.dmg` |\n| Linux Debian/Ubuntu | `grafyn_*_amd64.deb` |\n| Linux Universal | `grafyn_*_amd64.AppImage` |\n\nGrafyn auto-updates after installation.\n\n**First run** walks you through two things:\n\n1. **Vault path** — where your markdown notes live (default `~/Documents/Grafyn/vault/`). Point it at an existing folder of markdown and Grafyn indexes it.\n2. **OpenRouter API key** — powers the canvas, note distillation, and twin answers. Optional if you only want the vault, or run models locally via [Ollama](https://ollama.com/) instead.\n\nTo build from source instead, see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## What You Get\n\n### A vault that organizes itself\n\nWrite markdown with `[[wikilinks]]`; Grafyn builds the backlink graph, full-text search (Tantivy), and a D3 graph view. Topic hubs are created and maintained automatically — broad clusters, not a folder per stray tag. A background service continuously suggests links you missed, and a vault optimizer tidies note structure with per-change rollback and a daily write cap.\n\nAlready have your thinking scattered across AI chats? **Import conversations** from ChatGPT, Claude, Grok, and Gemini exports — plus DOCX and PDF documents — as linked, searchable notes. Larger \"container\" notes can be distilled into focused atomic notes with a topic hub index.\n\n### A canvas for working with many models at once\n\nSend one prompt to multiple models (any OpenRouter model, or local Ollama models) and watch them stream side by side. Branch from any answer, add models to a comparison, regenerate, or start a structured **debate** where models critique and synthesize. The canvas retrieves relevant notes from your vault as context automatically — keyword search boosted by your link graph — and can pin notes you always want included. Sessions persist and export back into the vault as notes.\n\n### Your notes, everywhere your AI agents are\n\nGrafyn bundles `grafyn-mcp`, a native [MCP](https://modelcontextprotocol.io/) server, so Claude Desktop and other MCP clients can search, read, and write your vault directly. Settings generates the config snippet with your paths filled in:\n\n```json\n{\n  \"mcpServers\": {\n    \"grafyn\": {\n      \"command\": \"path/to/grafyn-mcp\",\n      \"args\": [\"--vault\", \"path/to/vault\", \"--data\", \"path/to/data\"]\n    }\n  }\n}\n```\n\nIt shares the vault and indexes with the app, falling back to read-only search when the app holds the index writer.\n\n## The Twin\n\nThe long-term bet: the hardest part of a personal AI isn't the model — it's the evidence. Grafyn is built to capture that evidence as a side effect of work you're doing anyway.\n\nAs you use the canvas, feedback controls (`Matches Me`, `Not Me`, `Correct`, `Rank`, `Capture Insight`) and passive signals (what you branch from, promote, export) become **evidence-linked records** of your facts, preferences, and reasoning patterns — specific claims you can trace back to the exact prompts and sessions that support them, never broad personality labels. You review everything in the **Twin Workspace** (`/twin`): endorse, reject, mark private or no-train.\n\nWhat that enables today, all **experimental**:\n\n- **Advisor mode** — a decision-support assistant grounded in your reviewed records and notes.\n- **Simulation mode** — a first-person twin voice, gated behind an explicit Twin Identity setup (name, role, source boundaries), reasoning from your reviewed Constitution and evidence.\n- **Decision Mirror** — sealed predictions of what you'd choose, recorded before you choose, so twin accuracy can be measured honestly later.\n\nRecords you mark `rejected`, `private`, or `no_train` are never used in live answers. Rejected records are kept only as negative evidence for export.\n\n**Training happens outside Grafyn, by design.** The app's job is capture and export: reviewed records ship as clean JSONL bundles (approved / candidate / rejected splits) for whatever pipeline you point them at — RAG today, preference models or fine-tuning later. The accuracy machinery that would make twin answers trustworthy (embedding-based retrieval, temporal validity, calibrated confidence) is roadmap work, tracked openly in [TWIN_ACCURACY_ROADMAP.md](TWIN_ACCURACY_ROADMAP.md). The full design is in [TWIN_RAG_SPEC.md](TWIN_RAG_SPEC.md).\n\n## Privacy & Your Data\n\n- **Local-first, no hosted backend.** Notes, indexes, twin evidence, canvas sessions — all files on your disk. Delete the folder and it's gone.\n- **What leaves your machine:** only the prompt context sent to the model runtime you configured (OpenRouter, or nothing external at all with Ollama). Optional web search is per-prompt and visible.\n- **Your API key** is stored in the OS keychain, not in config files.\n- **Twin evidence is yours.** Nothing is trained on your data by Grafyn; exports exist so *you* can train elsewhere, on your terms.\n\n## Project Status\n\n| Area | Status |\n|------|--------|\n| Knowledge vault (notes, wikilinks, full-text search) | ✅ Stable |\n| Knowledge graph + topic hub clustering | ✅ Stable |\n| Multi-LLM Canvas with graph-aware note context | ✅ Stable |\n| Conversation import (ChatGPT, Claude, Grok, Gemini) | ✅ Stable |\n| Local model support via Ollama | ✅ Stable |\n| Background link discovery | ✅ Stable |\n| Vault Optimizer (background vault improvements) | ✅ Stable |\n| Structured vault migration (preview/apply/rollback) | ✅ Stable |\n| MCP server (`grafyn-mcp`) for Claude Desktop / Codex Desktop | ✅ Stable |\n| Native RAG twin (Advisor + Simulation modes) | 🧪 Experimental |\n| Twin Identity, Constitution, Decision Mirror | 🧪 Experimental |\n| Twin evidence capture and review dashboard | 🧪 Experimental |\n| Preference / ranking model from export bundles | 🔲 Not started |\n| Local adapters or fine-tuning from reviewed evidence | 🔲 Not started |\n\nTwin data capture and export are dependable today; twin *accuracy* is not yet a claim we make — see [TWIN_ACCURACY_ROADMAP.md](TWIN_ACCURACY_ROADMAP.md) for what's missing and in what order.\n\n## Architecture\n\nOne desktop binary: Vue 3 frontend, Rust backend, local filesystem storage.\n\n```text\nTauri Desktop App\n├── Vue 3 Frontend        Notes · Graph · Canvas · Twin Workspace\n├── Rust Backend          Knowledge store · Tantivy search · Graph index\n│                         Canvas sessions · Twin evidence store · LLM runtimes\n├── grafyn-mcp            Native MCP server (stdio) sharing the same vault\n└── ~/Documents/Grafyn/   vault/ (markdown) · data/ (indexes, sessions, twin)\n```\n\n| Layer | Technology |\n|-------|------------|\n| Frontend | Vue 3, Vite, Pinia, D3.js |\n| Desktop | Tauri 1.8 |\n| Backend | Rust |\n| Search | Tantivy |\n| LLM runtime | OpenRouter (reqwest) · Ollama for local models |\n| MCP | rmcp over stdio |\n| Updates | Cloudflare R2 + Workers |\n\nDeeper architecture notes live in [CLAUDE.md](CLAUDE.md).\n\n## Contributing\n\nContributions are welcome — the project has a full CI pipeline (tests, lint, multi-platform release smoke) and firm product rules around twin data ethics and local-first storage. Start with [CONTRIBUTING.md](CONTRIBUTING.md) for setup, test commands, and the rules that keep the twin honest.\n\n## License\n\n[GPL-3.0](LICENSE) — Grafyn is free software; improvements to it stay free.\n"}