npx claudepluginhub arockwell/emdxKnowledge base skills for Claude Code. Save research, maintain session memory, and keep knowledge current across conversations.
Save everything. Search by meaning. Track what's next.
AI sessions start from zero. emdx doesn't. Save your research, search it by meaning, and track what's left. One CLI, local SQLite, nothing vanishes.

# Save findings as you go
$ emdx save "Token refresh fails when clock skew > 30s..." --title "Auth Bug Analysis"
✅ Saved as #42: Auth Bug Analysis
# Track what needs doing
$ emdx task add "Fix token refresh bug" --cat FIX
$ emdx task add "Add rate limiting" --cat FEAT
# Search by meaning, not just keywords
$ emdx find "how we handle token expiry" --mode semantic
🔍 Found 4 results
# Ask your KB directly
$ emdx find --ask "What causes the auth failures?"
💡 Based on 3 documents: Token refresh fails when clock skew exceeds 30s...
# Distill everything into a briefing for your team
$ emdx distill "auth" --for coworkers --save
✅ Saved as #46: Distilled: auth
uv tool install emdx # or: pip install emdx
emdx --help
Use emdx as a Claude Code plugin for built-in skills:
$ claude --plugin-dir /path/to/emdx
Skills give Claude Code native access to your knowledge base — save research, manage tasks, and maintain session memory without leaving the conversation.
| Skill | What it does | Invoke |
|---|---|---|
| work | Pick up a task, research, implement, test, mark done | /emdx:work [task_id] |
| investigate | Deep-dive a topic: KB search + source code + gap analysis | /emdx:investigate <topic> |
| review | Run all KB quality checks, produce prioritized fix plan | /emdx:review [focus] |
| prioritize | Triage ready tasks by epic progress, deps, category, age | /emdx:prioritize |
| bootstrap | Generate foundational KB docs from a new codebase | /emdx:bootstrap [focus] |
| research | Search KB for prior art before starting new work | /emdx:research <topic> |
| save | Persist findings, analysis, or decisions to KB | /emdx:save [content] |
| tasks | Add tasks, plan subtasks, get briefs, track status | /emdx:tasks [action] |
See Skills Reference for detailed documentation.
Files, notes, piped command output — anything you save becomes searchable. Tag things so you can find them by topic later.
# Save a file
$ emdx save --file meeting-notes.md
✅ Saved as #12: meeting-notes
# Save a quick note
$ emdx save "the auth bug is in token refresh" --title "Auth Bug"
✅ Saved as #13: Auth Bug
# Pipe in anything
$ docker logs api --since 1h | emdx save --title "API errors"
✅ Saved as #14: API errors
# Tag things so you can slice by topic
$ emdx tag 12 planning active
$ emdx tag 13 bugfix security
# Find by keyword — full-text search across everything
$ emdx find "auth"
🔍 Found 3 results for 'auth'
# Or filter by tags
$ emdx find --tags "security"
Organize work with tasks, epics, and categories.
# Create tasks as you discover work
$ emdx task add "Fix token refresh bug" --cat FIX
$ emdx task add "Add rate limiting to API" --cat FEAT --epic 42
# See what's ready to work on
$ emdx task ready
# Mark progress
$ emdx task active 15
$ emdx task done 15
# Group work under epics
$ emdx task epic list
Search by meaning, get AI-powered answers, and explore your knowledge base in new ways:
# Semantic search — "rate limiting" finds docs about throttling, backoff, quotas
$ emdx find "how we handle rate limiting" --mode semantic
# Ask your KB directly (needs API key)
$ emdx find --ask "What did we decide about the API redesign?"
# Add inline citations to any AI answer
$ emdx find --ask --cite "how does auth work?"
# Build a position paper with arguments for and against
$ emdx find --think "rewrite the API in Rust"
# Devil's advocate — find evidence against a position
$ emdx find --think --challenge "rewrite the API in Rust"
# Socratic debugging — diagnostic questions from your bug history
$ emdx find --debug "TUI freezes on click"
# Serendipity — surface surprising but related documents
$ emdx find --wander "machine learning"
# Build a context package and pipe it to Claude
$ emdx find --context "How does auth work?" | claude
# Distill content for a specific audience
$ emdx distill "deployment" --for coworkers
$ emdx distill "auth" --for docs --save
Set up watches that alert you when new documents match:
$ emdx find --watch "deployment"
👁️ Standing query #1 saved: deployment