[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80989":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":14,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":43,"readmeContent":44,"aiSummary":45,"trendingCount":16,"starSnapshotCount":16,"syncStatus":46,"lastSyncTime":47,"discoverSource":48},80989,"matryca-plumber","MarcoPorcellato\u002Fmatryca-plumber","MarcoPorcellato","Local-first AI daemon for Logseq OG: background semantic indexing, link hygiene, and agent-ready CLI\u002FMCP — edits Markdown on disk (no cloud, no Logseq API). Karpathy LLM-Wiki inspired.","",null,"Python",58,4,1,41,0,18,26,5,55.7,"Apache License 2.0",false,"main",true,[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"agentic-memory","ai-agents","andrej-karpathy","autonomous-agents","knowledge-graph","llm","llm-wiki","llm-wiki-karpathy","logseq","markdown","matryca","mcp","model-context-protocol","outliner","pkm","rag","second-brain","2026-06-12 04:01:31","# Matryca Plumber\n\n[![CI](https:\u002F\u002Fgithub.com\u002FMarcoPorcellato\u002Fmatryca-plumber\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FMarcoPorcellato\u002Fmatryca-plumber\u002Factions\u002Fworkflows\u002Fci.yml)\n[![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fmatryca-plumber.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fmatryca-plumber\u002F)\n[![GitHub release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FMarcoPorcellato\u002Fmatryca-plumber?display_name=tag)](https:\u002F\u002Fgithub.com\u002FMarcoPorcellato\u002Fmatryca-plumber\u002Freleases)\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fmatryca-plumber.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fmatryca-plumber\u002F)\n\n[![Tests](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftests-550%2B%20passing-brightgreen)](https:\u002F\u002Fgithub.com\u002FMarcoPorcellato\u002Fmatryca-plumber\u002Factions\u002Fworkflows\u002Fci.yml)\n[![Coverage](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcoverage-%E2%89%A570%25-brightgreen)](https:\u002F\u002Fgithub.com\u002FMarcoPorcellato\u002Fmatryca-plumber\u002Fblob\u002Fmain\u002Fpyproject.toml#L135)\n[![Ruff](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fraw.githubusercontent.com\u002Fastral-sh\u002Fruff\u002Fmain\u002Fassets\u002Fbadge\u002Fv2.json)](https:\u002F\u002Fgithub.com\u002Fastral-sh\u002Fruff)\n[![mypy](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fmypy-strict-2b6cb0)](https:\u002F\u002Fgithub.com\u002FMarcoPorcellato\u002Fmatryca-plumber\u002Fblob\u002Fmain\u002FCONTRIBUTING.md)\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FMarcoPorcellato\u002Fmatryca-plumber)](LICENSE)\n[![Platform](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-macOS%20%7C%20Linux%20%7C%20Windows-lightgrey)](#-key-features--differentiators)\n[![Local-first](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flocal--first-100%25%20offline-2ea44f)](#-key-features--differentiators)\n[![MCP](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMCP-FastMCP%20stdio-6366f1)](#-what-does-it-actually-do)\n[![Logseq OG](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLogseq-OG%20Markdown-0052CC)](https:\u002F\u002Fgithub.com\u002Flogseq\u002Flogseq)\n[![Security](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fsecurity-policy-important)](SECURITY.md)\n[![Contributing](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcontributing-guide-blue)](CONTRIBUTING.md)\n[![Code of Conduct](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode%20of%20conduct-Contributor%20Covenant-4baaaa)](CODE_OF_CONDUCT.md)\n\n**Developed by [Marco Porcellato](https:\u002F\u002Fgithub.com\u002FMarcoPorcellato) · [Matryca.ai](https:\u002F\u002Fmatryca.ai)** — open-source local-first maintenance daemon for Logseq OG. The product name is **Matryca Plumber** (not “Matryca” alone). See [`docs\u002FBRANDING.md`](docs\u002FBRANDING.md).\n\n> **v1.8 — Edge performance on Ironclad.** Agentic Knowledge Management for Logseq OG: **enterprise-grade, local-first background AI** with Sovereign UI, typed CLI, and direct Markdown AST mutation (no Logseq HTTP API). **v1.8** adds no new semantic features — only **Zero-Prefill** prompts (`PagePromptSession`), **adaptive structured output**, bounded RAM, and cooperative bootstrap I\u002FO for **16 GB CPU-only laptops** and vaults up to **~10,000** pages. Optional FastMCP stdio reuses the same `graph_dispatch` contract. Inspired by [Andrej Karpathy's LLM-Wiki vision](https:\u002F\u002Fkarpathy.ai\u002Fblog). **100% native Logseq AST parity**, OCC, versioned AI authorship stamping.\n\n![Matryca Plumber — Agentic Knowledge Management for Logseq OG](images\u002Fmatryca-plumber-1-5-10-demo.gif)\n\nMatryca Plumber is a **100% headless, sandboxed** **standalone daemon + CLI** that turns your local Logseq graph into a high token-density agentic workspace — **no network APIs and no Logseq desktop JSON-RPC**. It treats your vault as a **tree of blocks**, not a flat document store. Logseq OG remains optional: humans and the daemon co-edit the **same** `.md` trees on disk.\n\n**Matryca Plumber** is not a one-shot script — it is an **enterprise-grade, local-first background AI daemon for Logseq**. It polls your graph on a duty cycle, calls a local LLM (LM Studio or Ollama), appends semantic indexes, runs optional cognitive lint modules, and logs every token transaction — **while you edit the same `.md` files in Logseq or leave the vault idle**. Optional **MCP-attached** sessions reuse the identical mutation plane for interactive queries; they are **not** required for background operation. Every write path mirrors Logseq's on-disk AST contract: page frontmatter at line 0, block properties contiguous to their parent bullet, namespace filenames encoded exactly like Logseq's Clojure Datalog layer, and **optimistic concurrency control** that aborts stale writes when you type during inference.\n\n**Matryca Plumber** turns your local graph into a high token-density agentic workspace by continuously polling your notes, running local LLMs (like LM Studio or Ollama), appending semantic indexes, and healing broken links—all completely offline, while you work or sleep.\n\n**Zero Cloud. Zero Data Leaks. 100% Native Logseq AST.**\n\n---\n\n## ⚠️ Important: Clone Your Graph First\n\nMatryca Plumber edits your local `.md` files directly. While it features safe Optimistic Concurrency Control (OCC) to prevent data loss, **we strongly recommend testing it on a clone of your graph first**. This allows you to see the AI in action and explore its capabilities without affecting your primary notes.\n\n**How to safely clone your graph (crucial if you use Logseq Sync):**\n1. Make a copy of your entire Logseq graph folder on your computer (e.g., duplicate your `MyGraph` folder and rename it to `MyGraph_Test`).\n2. Open Logseq, click on your graph name in the top left, and select **Add new graph**.\n3. Choose the new `MyGraph_Test` directory.\n4. **If you use Logseq Sync:** Do *not* enable Sync on this test graph. This ensures the AI's test edits remain strictly local and do not propagate to your other devices.\n5. Alternatively, for a minimal test graph:\n  a. Create an empty folder and add it as a new graph in Logseq.\n  b. Close Logseq; copy only pages\u002F, journals\u002F, assets\u002F from production.\n  c. Reopen and Re-index.\n6. Point Matryca Plumber's `.env` configuration (`LOGSEQ_GRAPH_PATH`) to this test folder.\n\nOnce you are comfortable with how Matryca Plumber behaves and have tuned the safety tiers, you can point it to your main graph.\n\n---\n\n## 🚀 Quick Install & Getting Started\n\nThe fastest way to get started is using [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F), the blazing-fast Python package manager.\n\n### 1. Try it instantly (Zero-install)\nRun the CLI directly without polluting your system. This **only opens the Sovereign UI** at [http:\u002F\u002F127.0.0.1:8500](http:\u002F\u002F127.0.0.1:8500) — it does **not** start graph maintenance until you complete the pre-flight checklist and click **Start Engine** (or run `matryca plumber start` separately).\n```bash\nuvx --from matryca-plumber matryca-plumber status\n```\n(`matryca-plumber status` is shorthand for `matryca plumber status`.)\n\n### 2. Global Installation (Recommended)\nInstall the binary to use the `matryca` command anywhere:\n```bash\nuv tool install matryca-plumber\n```\n\n### 3. Open the control room (recommended first step)\n```bash\nmatryca plumber status\n# same as: matryca-plumber status\n```\nThe browser opens the **Sovereign UI**. On **every** fresh visit, a **Pre-flight checklist** modal appears first (even if you already ran `matryca plumber start` in a terminal). Dismiss it with **Continue to dashboard** once the live checks are green, then click **Start Engine** in the header to launch the maintenance daemon from the UI.\n\n**Optional — headless daemon before opening the UI:**\n```bash\nmatryca plumber start    # background worker only; no browser\nmatryca plumber status   # UI still shows pre-flight; engine may already show IDLE\u002FRUNNING\n```\n\n### 4. Set it and forget it (Background Service)\nInstall it as a LaunchAgent\u002Fsystemd service so it wakes up with your OS:\n```bash\nmatryca service install\n```\n\n---\n\n## 🧠 What does it actually do?\n\nUnlike generic scripts, Matryca Plumber is a continuous background engine. When paired with a local LLM (**Gemma 4-E4b Instruct** via LM Studio or Ollama), it provides:\n\n- **Semantic Indexing**: Automatically generates summaries, suggested tags, and cross-references for your pages.\n- **Dangling Link Healing**: Finds broken `[[WikiLinks]]` and creates isolated seed pages for them.\n- **Entity Consolidation**: Suggests `alias::` properties for overlapping concepts.\n- **Auto-Split Dense Blocks**: Extracts oversized subtrees into new pages to keep your graph fast and readable.\n- **Claude Desktop Integration (FastMCP)**: Use Claude to query and mutate your Logseq graph natively. Set `MATRYCA_MCP_ENABLED=true` in `.env` only on machines where you trust the MCP host (stdio MCP is off by default; the host has full graph read\u002Fwrite with no separate authentication).\n\n---\n\n## 🖥️ The Sovereign UI\n\nMatryca Plumber is 100% headless, but it ships with a **Sovereign UI Cockpit** (`matryca plumber status` or `uvx … matryca-plumber status`). \nIt's a local React dashboard running on `http:\u002F\u002F127.0.0.1:8500` that provides:\n- **Pre-flight checklist** (modal on each UI open): operator guidance plus automated readiness checks before **Start Engine** is enabled.\n- **Live Graph Telemetry**: See exactly what the AI is indexing in real-time.\n- **Dynamic Impact**: Mathematically separates *Organic Human Mind* (your notes) from *Agent Cognition* (AI enhancements).\n- **Zero-Trust Security**: Every REST call requires a Bearer token (`X-Matryca-Token`). Set `MATRYCA_UI_TOKEN` on shared hosts (or `MATRYCA_UI_REQUIRE_EXPLICIT_TOKEN=true`); session bootstrap is loopback-only; split rate limits for authenticated vs anonymous API traffic.\n- **Trust & Safety Drawer**: Visually toggle what the AI is allowed to edit (Safe Mode, Augmented Mode, Surgeon Mode).\n\nSee [`SECURITY.md`](SECURITY.md) for the full operator hardening matrix (`MATRYCA_MCP_ENABLED`, graph path allowlist, shared LLM SSRF policy, log redaction).\n\n### Pre-flight checklist (what you see in the app)\n\nMatryca Plumber provisions missing runtime files automatically where possible (repo `.env` from `.env.example`, `matryca-l1\u002F`, cache dirs, `matryca-wiki.yml`). The modal still walks you through setup so nothing surprises you on first run. It is developed by **Marco Porcellato** at **[Matryca.ai](https:\u002F\u002Fmatryca.ai)** — the same attribution shown in the Sovereign UI pre-flight wizard.\n\n**Operator steps (same text as the UI wizard):**\n\n1. **Control room connection** — If you can read this dashboard, the local API on port `8500` is up. Keep the window open while the engine runs.\n\n2. **Logseq graph (test vault first)** — Point `LOGSEQ_GRAPH_PATH` at the **root** of a Logseq OG vault (the folder that contains `pages\u002F`). Use a **clone** for your first run; do not enable Logseq Sync on test graphs. In the UI: **Settings** (gear) → **Logseq Graph Path** → absolute path → Save.\n\n3. **Local LLM** — Start an OpenAI-compatible server (LM Studio, Ollama, etc.). In Settings set the base URL (e.g. `http:\u002F\u002Flocalhost:1234\u002Fv1`) and the **exact** model id, then **Refresh models** to confirm discovery.\n\n   **Matryca Plumber** (by Marco Porcellato · Matryca.ai) is built for **offline, CPU-only** use on a typical **16 GB RAM** machine — no cloud subscription or discrete GPU required. The **recommended and tested** model is **Gemma 4-E4b Instruct** — set the exact id `gemma-4-e4b-it` in Settings, then **Refresh models**. For CPU inference, prefer **GGUF** weights at **`Q4_K_M`** or **`Q5_K_M`**. We are actively testing additional open models to improve CPU-only, 16 GB setups; Gemma 4-E4b Instruct is our current default. Avoid large **MoE** models (e.g. Llama 4 Scout): full weights still require 60GB+ RAM.\n\n4. **First-run expectations** — **Phase 1** catalogs the entire graph (can take a long time on large vaults; v1.8 yields to the OS periodically during harvest). **Phase 2** processes roughly one LLM-heavy page per poll interval by default. After Phase 1, the daemon releases heavy in-memory indexes to keep RAM stable for long runs.\n\n**Live checks** (re-run anytime with **Re-run checks**):\n\n| Check | What it validates |\n|-------|-------------------|\n| Environment file | Repository `.env` exists (created from `.env.example` on first boot when possible). |\n| Logseq graph path | `LOGSEQ_GRAPH_PATH` is set and points at a valid vault root. |\n| L1 session memory | Sibling `matryca-l1\u002F` (or configured `MATRYCA_L1_PATH` \u002F wiki `memory_path`) is ready. |\n| Local LLM endpoint | `LLM_BASE_URL` passes SSRF policy and `GET \u002Fv1\u002Fmodels` responds; warns if the configured model id is not listed. |\n\n**Start Engine** stays disabled until every live check is green. If you started the daemon earlier with `matryca plumber start`, the UI may already show **IDLE** or **RUNNING** and **Start Engine** may be disabled — the pre-flight modal still opens so you can review settings; use **Pre-flight** in the header to reopen it later.\n\n---\n\n## ✨ Key Features & Differentiators\n\n* 🤖 **100% Local-First & Headless:** No Logseq HTTP API required. It edits the `.md` files directly using atomic file I\u002FO.\n* 📐 **Exact Logseq AST Compliance:** True line-0 page frontmatter, block properties at +2 indent, and exact namespace encoding. Other tools break your graph; Matryca Plumber keeps it pristine.\n* 🔐 **Optimistic Concurrency Control:** It snapshots `st_mtime` before inference and acquires the page lock **only for the write**. If you edited in Logseq while the model was thinking, the commit aborts. **No silent data loss** — and Logseq can still save during long local runs.\n* 🪟 **Windows, macOS & Linux Support:** Runs safely in the background everywhere using a robust cross-platform lock (`.matryca_plumber_daemon.lock`).\n* ⚡ **Context Acceleration Shield:** Shrinks megabyte-class pages to Phase 1 summaries or semantic skeletons before they reach the local LLM — essential on CPU-only hardware.\n* 🛡️ **TRIZ-governed LLM resilience:** Caps completion tokens, balanced-brace JSON extraction, prose sanitization on compression\u002Fhistory paths, stateless ontology reports, and an 8k block-catalog cap on semantic index prompts — see [`docs\u002Fresilience-llm-json-triz.md`](docs\u002Fresilience-llm-json-triz.md).\n* 🖥️ **Edge computing profile (v1.8):** KV-cache-aligned prompts (`PagePromptSession`), bounded RAM (BM25 postings-lite, semantic cache LRU, post-bootstrap teardown), and cooperative bootstrap I\u002FO — tuned for **16 GB laptops** and vaults up to **~10,000** pages. See [docs\u002Fv1.8-OPTIMIZATION-PLAN.md](docs\u002Fv1.8-OPTIMIZATION-PLAN.md).\n\n---\n\n## 🛡️ Trust & Safety Risk Tiers\n\nYou are in control. Nothing mutates your prose unless you explicitly enable it in the UI.\n\n| Mode | Risk | What it allows |\n|------|------|----------------|\n| 🟢 **Safe Mode** | Read-only | Semantic routing cache, entity consolidation (`alias::`), property hygiene — **never edits your bullet text**. |\n| 🟠 **Augmented Mode** | Side-blocks | **Heal Dangling Links**, **Backpropagate Links** (appends foldable context sections) — your original bullets stay intact. |\n| 🔴 **Surgeon Mode** | Inline edits | **Inline Semantic Corrections** (wraps concepts in `[[WikiLinks]]`), **Auto-Split Dense Blocks** — **strictly opt-in**. |\n\n---\n\n## ⚙️ Configuration Quickstart\n\nCopy `.env.example` to `.env`. The only **required** variable is your graph path:\n\n```env\nLOGSEQ_GRAPH_PATH=\u002Fabsolute\u002Fpath\u002Fto\u002Fyour\u002FLogseq\u002Fgraph\nMATRYCA_LM_BASE_URL=http:\u002F\u002Flocalhost:1234\u002Fv1   # LM Studio or Ollama endpoint\nMATRYCA_LM_MODEL=gemma-4-e4b-it                # Gemma 4-E4b Instruct — tested default\n\n# Optional: Claude Desktop \u002F Cursor MCP (off by default)\nMATRYCA_MCP_ENABLED=true\n```\n\nOn first start (daemon, CLI, MCP, or UI), Matryca Plumber **automatically creates** anything missing for a healthy runtime:\n\n- **`logs\u002F`** (or paths from `MATRYCA_PLUMBER_LOG_PATH` \u002F `MATRYCA_LOGURU_LOG_PATH`)\n- **`\u003Cparent-of-your-vault>\u002Fmatryca-l1\u002F`** — session rules beside the vault (not inside `pages\u002F`); optional override via `MATRYCA_L1_PATH`\n- **`\u003Cvault>\u002F.matryca_semantic_cache\u002F`**, **`templates\u002F`**, and **`matryca-wiki.yml`** (from `matryca-wiki.example.yml` when absent)\n\nSee [`docs\u002Fopenspec\u002Fruntime-bootstrap.md`](docs\u002Fopenspec\u002Fruntime-bootstrap.md) for rationale (L1 vs L2, idempotency, and what is intentionally *not* auto-created).\n\n*(See [docs\u002FARCHITECTURE.md](docs\u002FARCHITECTURE.md) for advanced thermal pacing, context compression, and deep linter settings. Copy the full template from `.env.example` — it documents UI auth, rate limits, graph allowlists, and log redaction.)*\n\n### Edge profile (large vaults \u002F 16 GB RAM)\n\nCopy the **v1.8 Edge computing & performance** block from [`.env.example`](.env.example). Highlights:\n\n| Knob | Why |\n|------|-----|\n| `MATRYCA_BOOTSTRAP_YIELD_EVERY` | Keeps macOS\u002FWindows responsive during Phase 1 file scans |\n| `MATRYCA_RAM_BUDGET_MB` | Logs when daemon RSS exceeds a soft cap |\n| `MATRYCA_BM25_MODE=ondemand` | Trade query latency for lower steady-state RAM |\n| `MATRYCA_LLM_CLUSTER_HISTORY=false` | Shorter Ermes history — better KV reuse in cluster mode |\n| `MATRYCA_CPU_SANDBOX=true` | Pin Plumber to idle cores; pair with manual LLM core mask |\n| `MATRYCA_GRAPH_READ_MMAP=true` | Kernel-paged reads during Phase 1 regex catalog path |\n\nInstall CPU affinity support: `uv sync --extra edge` or `pip install matryca-plumber[edge]` (`psutil`).\n\nDeep dive: [docs\u002Fv1.8-OPTIMIZATION-PLAN.md](docs\u002Fv1.8-OPTIMIZATION-PLAN.md) · [docs\u002Fv1.8-SOFTWARE-EDGE-PLAN.md](docs\u002Fv1.8-SOFTWARE-EDGE-PLAN.md) · [docs\u002Fopenspec\u002Fllm-performance.md](docs\u002Fopenspec\u002Fllm-performance.md)\n\n**Load testing:** `uv run python scripts\u002Fgen_synthetic_graph.py \u002Fpath\u002Fto\u002Fgraph --count 1000` · **Slow CI:** `make perf`\n\n---\n\n## 🧑‍💻 Developer Setup\n\nWant to contribute or run from source?\n\n```bash\ngit clone [https:\u002F\u002Fgithub.com\u002FMarcoPorcellato\u002Fmatryca-plumber.git](https:\u002F\u002Fgithub.com\u002FMarcoPorcellato\u002Fmatryca-plumber.git)\ncd matryca-plumber\nmake install\n\n# Build the React frontend\ncd frontend && npm install && npm run build && cd ..\n\n# Run tests (550+ passing, Mypy strict)\nmake check\n\n# Optional: slow memory \u002F harvest soak tests\nmake perf\n```\n\n---\n\n## 📚 Documentation Map\n\n| Document | Description |\n|----------|-------------|\n| [`SYSTEM_PROMPT.md`](SYSTEM_PROMPT.md) | Agent discipline, `made-by::` authorship, OCC rules. |\n| [`docs\u002FARCHITECTURE.md`](docs\u002FARCHITECTURE.md) | Data planes, Plumber lifecycle, RMW locking, v1.8 edge performance. |\n| [`docs\u002Fv1.8-OPTIMIZATION-PLAN.md`](docs\u002Fv1.8-OPTIMIZATION-PLAN.md) | v1.8 scope, env vars, load testing. |\n| [`docs\u002Fv1.8-SOFTWARE-EDGE-PLAN.md`](docs\u002Fv1.8-SOFTWARE-EDGE-PLAN.md) | CPU sandbox, frozen KV prefix, adaptive LLM, mmap reads. |\n| [`docs\u002Fopenspec\u002Fllm-performance.md`](docs\u002Fopenspec\u002Fllm-performance.md) | LLM prompt layout, memory, and I\u002FO contracts. |\n| [`docs\u002FBRANDING.md`](docs\u002FBRANDING.md) | Product name (**Matryca Plumber**), Matryca.ai attribution, writing rules. |\n| [`docs\u002Fopenspec\u002Fruntime-bootstrap.md`](docs\u002Fopenspec\u002Fruntime-bootstrap.md) | Startup provisioning: logs, L1, cache, wiki YAML. |\n| [`docs\u002Fopenspec\u002Fl1-l2-routing.md`](docs\u002Fopenspec\u002Fl1-l2-routing.md) | L1 memory vs L2 graph routing for agents. |\n| [`docs\u002FPROJECT_DIARY.md`](docs\u002FPROJECT_DIARY.md) | Maintainer log, phase history, crushed bottlenecks. |\n| [`CONTRIBUTING.md`](CONTRIBUTING.md) | Setup, `uv` commands, `make check` standards. |\n| [`SECURITY.md`](SECURITY.md) | Vulnerability reporting and `.env` hardening controls. |\n\n## License\nApache-2.0 — see [LICENSE](LICENSE).\n\n![Matryca Plumber Cover](images\u002F20260519-Logseq-Matryca-LLM-Wiki-copertina-github.jpg)\n","Matryca Plumber 是一个为Logseq OG设计的本地优先后台AI守护进程，旨在将你的笔记转化为具有自主索引功能的工作空间。该项目使用Python编写，支持完全离线运行，确保零数据泄露，并提供可选的MCP服务器以增强功能。其核心特点包括自动化的知识图谱构建、基于大语言模型的智能代理以及直接操作Markdown AST的能力，无需依赖Logseq HTTP API。特别适合需要高效管理和利用个人或团队知识库的场景，如研究、写作和个人知识管理等。",2,"2026-06-11 04:03:06","CREATED_QUERY"]