Loredex

unlisted

by Ahmed Tawfeeq

Live product dashboard, cross-team handoff alerts, and an MCP server for your loredex knowledge vault โ€” AI agents read and file knowledge while you browse it.

Updated 23d agoMIT
View on GitHub

๐Ÿ”ฎ Loredex for Obsidian

The Obsidian and MCP dashboard layer for loredex โ€” shared memory, handoffs, and focused views for coding-agent teamwork.

release core: loredex license: MIT

loredex ecosystem ย ยทย  ๐Ÿ“– loredex (CLI + core) ย ยทย  ๐Ÿ–ฅ๏ธ Desktop app ย ยทย  ๐Ÿ”ฎ Obsidian plugin (you are here)

Part of the loredex ecosystem โ€” the CLI, Claude Code plugin, vault spec, and all core logic live in the main repo: ahmedtawfeeq1/loredex. This plugin embeds that package as a library and re-hosts it inside Obsidian.


Loredex is the universal control system for coding-agent teamwork across products and projects. This plugin is the visual dashboard and in-app MCP layer that lets teams browse shared memory, track handoffs, and work from focused views inside Obsidian:

๐Ÿš€ Quick Actions

I want to...Go here
Install the plugin fastInstall
Connect my agent to Obsidian's local MCP serverSetup
Understand how this fits into the full loredex frameworkMain repo
See the visual story behind the productloredex infographic gallery
Check security and localhost network behaviorNetwork use disclosure

๐Ÿ“‘ Table of Contents

๐Ÿงญ Why This Plugin Exists

Use the main loredex repo for...Use loredex-obsidian for...
Routing markdown into the vault, running adopt, route, curate, handoff, and the CLI MCP serverOpening the dashboard, syncing the vault from inside Obsidian, watching handoffs, and exposing active_note to agents
Setting the shared knowledge structureMaking that structure visible and agent-accessible where you actually read it
  • ๐Ÿ“Š Native dashboard โ€” one click (ribbon or command) opens _index/Dashboard.base, the Obsidian Bases database loredex generates: latest notes, open handoffs, by-project cards, stale list. Sortable, filterable, 100% native UI.
  • ๐Ÿ”” Handoff badge โ€” the status bar shows how many cross-team handoffs are open across the product. Click it to open the dashboard.
  • โ‡… Vault sync โ€” one command pulls the shared vault repo (rebase + autostash), rebuilds the indexes, commits, and pushes. Same conflict-free merge driver the CLI uses for generated files.
  • ๐Ÿค– MCP server inside Obsidian โ€” serves the vault to coding agents (Claude Code, Cursor, Codex CLI) over Streamable HTTP on localhost. All six loredex MCP tools (vault_search, vault_note, handoffs_open, handoff_consume, product_state, vault_store) plus one only Obsidian can provide: active_note โ€” the note you're looking at right now.

Requirements

  • Obsidian โ‰ฅ 1.9 (the dashboard uses the core Bases plugin) ยท desktop only (isDesktopOnly โ€” the plugin shells out to git and reads the vault through Node fs)
  • A loredex vault (npx loredex init โ€” see the main repo)

Network use disclosure

When the MCP server is enabled (default: on), the plugin listens on 127.0.0.1 only โ€” it never binds a public interface and never makes outbound network requests. Every request must carry a bearer token generated on first load (Settings โ†’ Loredex). Turn the server off in settings and the plugin opens no sockets at all. Git sync runs git against whatever remote you configured for your vault repo; the plugin adds no remotes.

Install

Not yet in the community plugin directory. Two options:

BRAT (recommended โ€” auto-updates): install BRAT, then Add beta plugin โ†’ ahmedtawfeeq1/loredex-obsidian.

Manual: grab main.js + manifest.json from the latest release, drop them in <vault>/.obsidian/plugins/loredex/, reload Obsidian, enable the plugin.

Setup

  1. Open your loredex vault (~/Loredex by default) as an Obsidian vault, if you haven't already.
  2. Enable the plugin. A bearer token is generated automatically.
  3. Run the command โ€œLoredex: Copy MCP server config for coding agentsโ€ and add it to your agent. Recommended: user-scope config so the token never lands in a committed .mcp.json:
claude mcp add --scope user --transport http loredex-obsidian \
  http://127.0.0.1:28428/mcp --header "Authorization: Bearer <your-token>"

Agents connected this way search and file into the vault while Obsidian is open โ€” no separate process. (Without Obsidian running, agents use the CLI's stdio server instead: npx -y loredex mcp. Same tools, minus active_note.)

Commands

CommandWhat it does
Open product dashboardOpens _index/Dashboard.base โ€” the native Bases database over every note, handoff, and project
Sync vaultgit pull โ†’ rebuild indexes โ†’ commit โ†’ push
Copy MCP server config for coding agentsClipboard-ready snippet with your port + token
Restart MCP serverRebind after changing port/token

Settings

SettingDefault
MCP serveronStreamable HTTP on localhost
Port28428
Bearer tokengeneratedregenerate any time (then re-add the agent config)
Git synconpull/commit/push during sync command
Handoff check interval5 minstatus-bar badge refresh

Security model

The vault is treated as untrusted input end to end โ€” same rules as the loredex CLI. Note content returned to agents is framed as data, never instructions, control characters are stripped, and lengths are bounded. Note paths are resolved with realpath and must land inside the vault (symlink escapes rejected). The server is stateless: every request gets a fresh MCP server instance reading current vault state.

Development

npm install          # installs the loredex core from npm
npm run typecheck
npm run build        # bundles src/main.ts โ†’ main.js (CJS, obsidian external)
npm run smoke        # boots the HTTP server against a temp vault, drives a real MCP session
npm run dev          # esbuild watch mode

npm run smoke is the fast loop โ€” it proves auth, initialize, tools/list, and a real vault_search without launching Obsidian.

Related

  • loredex โ€” the main repo: CLI, Claude Code plugin, MCP server, vault spec, and all core logic (this plugin embeds it as a library)

License

MIT ยฉ Ahmed Tawfeeq โ€” PM & Head of AI, Founder @ genudo.ai

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.