
Company News
Free Business Plan Upgrades for Open Source Maintainers
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.
@danielblomma/cortex-mcp
Advanced tools
Local, repo-scoped context platform for coding assistants. Semantic search, graph relationships, and architectural rule context.
The context layer for AI-assisted software engineering.
Cortex is a local, repository-scoped context engine for coding assistants. It parses your source code with tree-sitter, indexes it into a structured knowledge graph of entities (files, symbols, rules, ADRs) and their relationships (calls, defines, constrains, implements, supersedes), and exposes that context through CLI commands. MCP remains available as a compatibility and integration bridge for clients that support it.
Where a general-purpose AI assistant sees your codebase as a pile of text files, Cortex gives it a precise map: what exists, how it is connected, which rules govern it, and which parts are source-of-truth versus deprecated.
Cortex runs entirely on the developer's machine. Source code never leaves the host.
Cortex is designed for engineering teams that rely on AI assistants for non-trivial work on real codebases. Use it when:
Cortex is not a replacement for your editor, your version control, or your coding assistant. It is the grounding layer that makes those assistants act with knowledge of your specific repository.
cortex init --bootstrap) scaffolds everything needed for local indexing, git hooks, CLI retrieval, and optional MCP compatibility.Cortex operates as a five-stage pipeline between your repository and your AI assistant.
CALLS, DEFINES, CONSTRAINS, IMPLEMENTS, IMPORTS, SUPERSEDES).cortex ... --json, with MCP exposing equivalent tool responses when enabled.Git hooks keep the index fresh on every checkout, pull, commit, and rewrite. A live TUI dashboard (cortex dashboard) shows what Cortex adds to the repository in real time.
Modern coding assistants are bottlenecked by context, not by model capability. Feeding a model more files rarely helps; feeding it the right files almost always does.
Cortex is built on one principle: prefer retrieval quality over analysis completeness. A smaller, sharper context package outperforms a broad dump of files. Every component — from tree-sitter parsing to graph traversal to rule filtering — exists to raise the signal-to-noise ratio of what the assistant sees.
The result is an assistant that behaves as if it already knows your codebase, because — through Cortex — it does.

claude and/or codex CLI in PATHnpm i -g @danielblomma/cortex-mcp
To upgrade an already-scaffolded project to a new Cortex version:
npm i -g @danielblomma/cortex-mcp
cortex init --force # re-scaffolds .context runtime + .context/scripts
cortex bootstrap # rebuilds and safely restarts a verified running daemon
cortex update
cortex init --force preserves per-project files: .context/config.yaml,
.context/rules.yaml, .context/enterprise.yml, and your notes/decisions.
It repairs existing Enterprise config permissions to 0600 without rewriting
the file. An npm update alone does not replace code already loaded by the
per-user daemon; cortex bootstrap performs the verified restart.
Version-specific notes (see CHANGELOG.md for details):
cortex init --force now uses versioned ownership metadata to
remove only unmodified obsolete Cortex-managed files. Unknown files and
protected configuration, rules, ontology, Enterprise, and agent-instruction
content remain user-owned; modified obsolete files and unsafe collisions
fail the upgrade instead of being overwritten or deleted.sudo cortex enterprise install --api-key-stdin. Enterprise endpoints must
use HTTPS (loopback HTTP remains available for local development). Existing
Enterprise users must rerun that stdin install after cortex bootstrap;
enrollment is deliberately not inferred from repository config. Verify
cortex enterprise status --json reports
enterprise.host_identity_bound: true. One Enterprise endpoint is supported
per OS user because organization skills and host process detection are
user-global; an explicit install may rotate its API key. Before upgrading
legacy organization skills without Cortex ownership markers, back up and
move the exact reviewed directories listed by
~/.cortex/skills.local.json out of the Claude/Codex discovery roots.cortex update after upgrading triggers a full re-embed automatically
(~2 min per 1000 entities plus a one-time model download). The
CORTEX_EMBED_MAX_CHARS env var is removed and silently ignored.
Existing projects keep their old ranking weights in config.yaml; the
recommended block is now semantic: 0.55, graph: 0.10, trust: 0.20, recency: 0.15. If you use MCP, restart the MCP server after
re-embedding. The first search after a re-embed can hit a stale
embeddings cache — re-run the query.From the repository you want to index:
cortex init --bootstrap
This will:
.context/, .context/scripts/, the local context runtime (.context/mcp compatibility path), .githooks/, and docs filescortex connect or cortex init --connectDisable watcher setup:
cortex init --bootstrap --no-watch
Check context status:
cortex status
The plugins/cortex directory is a dual-manifest agent plugin: five behavior
skills (using-cortex, repo-research, change-impact, pattern-review,
context-review), a SessionStart bootstrap that re-injects Cortex
instructions after new sessions, /clear, and compaction (Claude Code), and
an MCP config that follows the active workspace.
Claude Code:
/plugin marketplace add DanielBlomma/cortex
/plugin install cortex@cortex
Codex discovers the same skills through .codex-plugin/plugin.json; repos
initialized with cortex init also get an AGENTS.md bootstrap section as a
fallback when the plugin is not installed. The CLI remains the engine — the
plugin only adds the behavior layer, and cortex connect stays opt-in.
Use the CLI as the default local agent interface:
cortex search "authentication flow" --json
cortex related file:src/auth.ts --json
cortex impact "payment service" --json
cortex rules --json
cortex explain "where retries are configured" --json
cortex pattern-evidence src/auth.ts --query "error handling" --json
These commands read the same local graph, embeddings, and rules used by the MCP server, but they do not require an MCP client registration.
MCP remains supported for clients that need it. Register MCP clients explicitly:
cortex connect
Then verify the client registration:
Claude:
claude mcp list
Codex:
codex mcp list
Install via Claude Code plugin marketplace:
/plugin marketplace add DanielBlomma/cortex
/plugin install cortex@cortex-marketplace
/plugin enable cortex
Then initialize Cortex in your target repository. If you want the plugin to call the local MCP server, also run cortex connect from that repository:
cortex init --bootstrap
cortex connect
If client registration is unavailable, configure MCP manually.
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"cortex": {
"command": "cortex",
"args": ["mcp"],
"env": {
"CORTEX_PROJECT_ROOT": "/absolute/path/to/your-project"
}
}
}
}
Codex (~/.config/codex/mcp-config.json):
{
"mcpServers": {
"cortex-myproject": {
"command": "cortex",
"args": ["mcp"],
"cwd": "/absolute/path/to/your-project"
}
}
}
If you run Node.js inside WSL but use Claude Desktop or another MCP client on Windows:
# In a WSL terminal
npm i -g @danielblomma/cortex-mcp
cd /mnt/c/Users/yourname/your-project
cortex init --bootstrap
%APPDATA%\Claude\claude_desktop_config.json):{
"mcpServers": {
"cortex": {
"command": "wsl.exe",
"args": ["--distribution", "Ubuntu", "--exec", "cortex", "mcp"],
"env": {
"CORTEX_PROJECT_ROOT": "C:\\Users\\yourname\\your-project",
"CORTEX_AUTO_BOOTSTRAP_ON_MCP": "1"
}
}
}
}
Cortex automatically converts Windows paths (e.g. C:\Users\...) to WSL paths (/mnt/c/Users/...).
For projects on the WSL filesystem (e.g. ~/projects/myapp), use the WSL path directly:
{
"mcpServers": {
"cortex": {
"command": "wsl.exe",
"args": ["--distribution", "Ubuntu", "--exec", "cortex", "mcp"],
"env": {
"CORTEX_PROJECT_ROOT": "/home/yourname/projects/myapp",
"CORTEX_AUTO_BOOTSTRAP_ON_MCP": "1"
}
}
}
}
Notes:
/mnt/ paths (Windows filesystem) automatically uses poll mode since inotify is unreliable across filesystem boundaries.~/...) rather than /mnt/c/....context.searchRanked context search across indexed entities.
Input:
query (string, required)top_k (int, 1-20, default 5)include_deprecated (bool, default false)include_content (bool, default false)context.get_relatedFetch entity relationships from the graph.
Input:
entity_id (string, required)depth (int, 1-3, default 1)include_edges (bool, default true)context.impactTraverse likely impact paths across config, code and SQL starting from an entity id or query.
Input:
entity_id (string, optional) — either entity_id or query is requiredquery (string, optional)depth (int, 1-4, default 2)top_k (int, 1-20, default 8)include_edges (bool, default true)profile ("all" | "config_only" | "config_to_sql" | "code_only" | "sql_only", default "all")sort_by ("impact_score" | "shortest_path" | "semantic_score" | "graph_score" | "trust_score", default "impact_score")context.get_rulesList indexed rules and optionally include inactive rules.
Input:
scope (string, optional)include_inactive (bool, default false)context.reloadReload the RyuGraph connection after updates/maintenance.
Input:
force (bool, default true)A live TUI that shows what Cortex adds to your repository at a glance.
cortex dashboard

The dashboard displays:
Options:
--interval <sec> — auto-refresh interval (default: 2 seconds).r to force refresh, q to quit.cortex init [path] [--force] [--bootstrap] [--connect] [--no-connect] [--watch] [--no-watch]
cortex connect [path] [--skip-build]
cortex mcp
cortex bootstrap
cortex update
cortex search <query> [--json]
cortex related <entity-id> [--json]
cortex impact <query|entity-id> [--json]
cortex rules [--json]
cortex explain <query|entity-id> [--json]
cortex pattern-evidence <file-path|entity-id> [--query <text>] [--top-k <n>] [--json]
cortex status
cortex dashboard [--interval <sec>]
cortex watch [start|stop|status|run|once] [--interval <sec>] [--debounce <sec>] [--mode <auto|event|poll>]
cortex help
Enterprise context.review includes bounded repo-local pattern context by
default. This evidence is advisory and does not change policy validator totals,
workflow approval, or review trust.
Optional MCP inputs:
include_pattern_evidence — enable or disable pattern context (default true).pattern_query — shared pattern query; otherwise Cortex derives one per file.pattern_top_k — evidence items per locality tier, from 1 to 5 (default 2).pattern_limit — analyzed review targets, from 1 to 25 (default 10).The response adds pattern_review with deterministic targets, the canonical
review question, cited evidence tiers, explicit repository fallback, unindexed
status, and omitted-file counts. Pattern evidence never constitutes automatic
code approval. Enterprise pattern review is lexical-only and never downloads an
embedding model or calls an external service.
Every target uses the same response fields. status is one of
local_evidence, repo_fallback, no_evidence, not_indexed, or error;
local_pattern_found and fallback_used are always explicit booleans, and
evidence_order plus all four tiers are always present. Unavailable evidence
uses empty tiers and sanitized messages rather than local paths or runtime
errors.
This repository includes two GitHub Actions workflows:
Release Bump (.github/workflows/release-bump.yml)
workflow_dispatch from mainpatch/minor/major)package.json, server.json, plugin manifests)vX.Y.ZRelease Publish (.github/workflows/release-publish.yml)
v*.*.*@danielblomma/cortex-mcp to npm via npm trusted publishing (GitHub OIDC)Required npm configuration:
@danielblomma/cortex-mcp on npmjs.comDanielBlomma/cortexrelease-publish.ymlEmbedding generation tunes itself to the machine: the number of parallel workers, memory limits for long files, token budget, and skip-work caching are all derived from the available CPU cores, RAM, and repository size at run time (container memory limits included). No configuration is needed — on a laptop or a CI runner, cortex picks safe settings by itself.
The embedding token budget defaults to auto, which is quality-first but
memory-aware. Cortex starts from the embedding model's own maximum context and
only lowers the cap when the local memory headroom is unlikely to fit that
model/context combination. Degraded auto runs are explicit in logs, for example
token_budget=auto_degraded reason=memory_headroom cap=2048. To force a
specific capped run, set CORTEX_EMBED_MAX_TOKENS to a number such as 2048;
set it to model or full to force the full-model baseline even on tight
machines. When several cortex instances share one machine, set
CORTEX_EMBED_THREADS to give each its fair share of cores.
For experiments on very large repositories, CORTEX_EMBED_TEXT_PROFILE=compact-files
compacts only large file-level embedding records while keeping chunk-level
embedding text full. The default remains full; use the compact profile only
with a before/after semantic quality check because file-level compaction can
change retrieval behavior.
cortex init --bootstrap)..context/.mcp/dist/server.js missing:
Run cortex bootstrap (or re-run cortex init --bootstrap).claude or codex not found during cortex connect:
MCP registration is skipped for that client; use manual config above if needed.cortex update, then rerun the CLI query. If you use MCP, reconnect the client or call context.reload.frontend/ hosts the cortex website (GitHub Pages, deployed on push to main):
product overview plus bootstrap evaluation metrics.benchmark/bootstrapbench/ runs cortex bootstrap against 69 pinned
real-world repositories in isolated containers and extracts chunk, embedding
and graph statistics. See benchmark/bootstrapbench/README.md.MIT
FAQs
Local, repo-scoped context platform for coding assistants. Semantic search, graph relationships, and architectural rule context.
The npm package @danielblomma/cortex-mcp receives a total of 367 weekly downloads. As such, @danielblomma/cortex-mcp popularity was classified as not popular.
We found that @danielblomma/cortex-mcp 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.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.