Loredex
unlistedby 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.
๐ฎ Loredex for Obsidian
The Obsidian and MCP dashboard layer for loredex โ shared memory, handoffs, and focused views for coding-agent teamwork.
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 fast | Install |
| Connect my agent to Obsidian's local MCP server | Setup |
| Understand how this fits into the full loredex framework | Main repo |
| See the visual story behind the product | loredex infographic gallery |
| Check security and localhost network behavior | Network use disclosure |
๐ Table of Contents
- Quick Actions
- Why this plugin exists
- Requirements
- Network use disclosure
- Install
- Setup
- Commands
- Settings
- Security model
- Development
- Related
- License
๐งญ 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 server | Opening the dashboard, syncing the vault from inside Obsidian, watching handoffs, and exposing active_note to agents |
| Setting the shared knowledge structure | Making 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 togitand reads the vault through Nodefs) - 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
- Open your loredex vault (
~/Loredexby default) as an Obsidian vault, if you haven't already. - Enable the plugin. A bearer token is generated automatically.
- 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
| Command | What it does |
|---|---|
| Open product dashboard | Opens _index/Dashboard.base โ the native Bases database over every note, handoff, and project |
| Sync vault | git pull โ rebuild indexes โ commit โ push |
| Copy MCP server config for coding agents | Clipboard-ready snippet with your port + token |
| Restart MCP server | Rebind after changing port/token |
Settings
| Setting | Default | |
|---|---|---|
| MCP server | on | Streamable HTTP on localhost |
| Port | 28428 | |
| Bearer token | generated | regenerate any time (then re-add the agent config) |
| Git sync | on | pull/commit/push during sync command |
| Handoff check interval | 5 min | status-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.