
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Persistent project context for AI coding agents using linked markdown plans with hybrid search
Persistent project context for AI coding agents using linked markdown plans with relationship tracking and hybrid search.
AnchorMD requires Bun runtime.
curl -fsSL https://bun.sh/install | bash
macOS: For full search support (semantic + hybrid), install Homebrew SQLite:
brew install sqlite
This is needed because macOS ships with Apple's SQLite which doesn't support extension loading. Lexical search (BM25) works without it.
bun add -g anchormd
# Initialize in your project
anchormd init
# Edit the project overview
anchormd write anchor
# Create a plan
echo '---
name: auth
description: Authentication system
status: planned
---
# Authentication
JWT-based auth. See [[database]] for schema.
Uses POST /api/auth/login endpoint.
Config in src/auth/config.ts.
' | anchormd write auth
# View project context
anchormd context
# List all plans
anchormd ls
# Read a specific plan
anchormd read auth
# Read a specific section
anchormd read auth#authentication
# View project stats
anchormd status
| Command | Description |
|---|---|
anchormd init [--no-qmd] | Initialize AnchorMD in the current project |
anchormd context | Print project overview and plan summary table |
anchormd write <name> [--from <file>] | Write or update a plan (reads from file, stdin, or editor) |
anchormd ls [--status <s>] [--json] | List all plans, optionally filtered by status |
anchormd read <name[#section]> | Read a plan or a specific section via deep link |
anchormd find <query> [--semantic] [--hybrid] [--limit <n>] [--json] | Search plans with deep links to matching sections |
anchormd reindex | Rebuild the index graph and search database |
anchormd status | Show plan count, links, weak edges, and QMD status |
Plans are markdown files with YAML frontmatter stored in .anchor/plans/. Each plan has:
planned, in-progress, built, deprecatedPlans reference each other using wiki-style links:
[[plan-name]] creates an explicit edge in the graph[[plan-name#section]] links to a specific sectionAnchorMD extracts entity references from plan content:
src/auth/config.ts, lib/utils.jsmodel User, UserSchemaGET /api/users, POST /api/auth/logindeploy.sh, npm run buildWhen two plans reference the same entity (e.g., both mention src/auth/config.ts), AnchorMD creates a weak edge between them. This surfaces implicit relationships that weren't explicitly linked.
The index graph (.anchor/index.json) tracks all plans, their links, entities, and weak edges. It's rebuilt automatically when plans are written, or manually via anchormd reindex.
AnchorMD uses QMD for search. Three modes are available:
brew install sqlite on macOS)Search results include deep links to the most relevant section:
$ anchormd find "sentiment analysis"
1. [0.823] myproject/analytics-prd.md
→ analytics-prd#sentiment-tab
Use the deep link directly: anchormd read analytics-prd#sentiment-tab
Configuration is stored in .anchor/config.json:
{
"qmd": true,
"collectionName": "my-project"
}
AnchorMD stores all search data in a single central database at ~/.anchormd/anchormd.sqlite. Each project is registered as a named collection, enabling:
If you used an earlier version with per-project .anchor/search.sqlite:
bun add -g anchormd@latest
anchormd reindex # auto-migrates to central DB
The old .anchor/search.sqlite can be safely deleted.
AnchorMD ships with a skill file at skill/SKILL.md for integration with Claude Code. The skill teaches Claude to:
anchormd context at session start.anchor/
config.json # Project configuration
index.json # Relationship graph
plans/
anchor.md # Project overview (created on init)
*.md # Your plan files
~/.anchormd/
anchormd.sqlite # Central search database (shared across all projects)
MIT
FAQs
Persistent project context for AI coding agents using linked markdown plans with hybrid search
We found that anchormd demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.