Cortex
by Remskill
README.md
# ๐ง Cortex: Open-Source AI Memory for your Codebase. Works with Claude CLI and others
### Never Explain Your Codebase Twice.
[](LICENSE)
[](https://github.com/Remskill/Cortex)
[](https://buymeacoffee.com/denys_medvediev)



[](https://www.typescriptlang.org/)
[](https://nodejs.org/)
[](https://www.postgresql.org/)
[](https://www.docker.com/)
[](https://modelcontextprotocol.io/)
[๐ฏ What is Cortex](#-what-is-cortex) ยท [๐ฅ Who Needs It](#-who-needs-cortex) ยท [โก How It Works](#-how-it-works) ยท [๐ Quick Start](#-quick-start) ยท [๐ Docs](#๏ธ-mcp-tools-reference) ยท [โ FAQ](#-faq)
---
## ๐ฏ What is Cortex?
Cortex is a **semantic memory layer** for AI coding assistants. It indexes your codebase into a vector database, so AI can find relevant code by meaning โ not just keywords.
<table>
<tr>
<td width="50%">
### โ Without Cortex
```
You: "Add payment processing"
Claude Code:
โ Reads CLAUDE.md (if exists)
โ Reads README.md
โ Maybe searches some files
โ Picks random agents (unpredictable)
โ Misses your PaymentService
โ Creates duplicate from scratch
```
</td>
<td width="50%">
### โ
With Cortex
```
You: "Add payment processing"
Claude Code:
โ Reads CLAUDE.md (finds Cortex instructions)
โ Loads Cortex memory agent
โ Queries MCP: "payment processing"
โ Gets: PaymentService, StripeClient, docs
โ Extends YOUR existing code
```
</td>
</tr>
</table>
---
## ๐ฅ Who Needs Cortex?
| You should use Cortex if... | Why it helps |
|----------------------------|--------------|
| ๐ข Your codebase has **20+ files** | AI can't hold everything in context |
| ๐ You've had AI **rewrite existing code** | Cortex finds it first |
| ๐ You have **docs AI keeps ignoring** | Semantic search surfaces them |
| ๐ค Your team has **established patterns** | AI learns and follows them |
| ๐ธ You want **free, local, private** | No cloud, no API costs |
---
## โก How It Works
```mermaid
flowchart TB
subgraph INPUT["๐ Your Codebase"]
A1[src/services/payment.ts]
A2[src/utils/logger.ts]
A3[docs/API.md]
A4[README.md]
end
subgraph CORTEX["๐ง Cortex Processing"]
B1[๐ Chunk Files]
B2[๐ข Generate Embeddings]
B3[(๐๏ธ Vector Database)]
end
subgraph QUERY["๐ค AI Assistant"]
C1["User: Add email notifications"]
C2[๐ cortex_query]
C3[๐ Results]
C4[โ
Writes Code]
end
A1 & A2 & A3 & A4 --> B1
B1 --> B2
B2 --> B3
C1 --> C2
C2 -->|"search: notification"| B3
B3 -->|"Found: NotificationService, EmailClient, logging patterns"| C3
C3 --> C4
```
| Step | What Happens |
|:----:|--------------|
| **1๏ธโฃ Index** | Cortex chunks your code into ~1024 char pieces and creates semantic embeddings |
| **2๏ธโฃ Query** | AI asks natural language questions: "how do we handle notifications?" |
| **3๏ธโฃ Build** | AI receives relevant files and patterns, writes consistent code |
---
## ๐ Quick Start
### Step 1 ยท Add Cortex
```bash
cd your-project
git submodule add https://github.com/Remskill/Cortex.git cortex
cd cortex && cp .env.example .env && npm install
```
### Step 2 ยท Configure Ignore Patterns
> โ ๏ธ **Do this BEFORE syncing!** Skips junk to be added to your memory.
```bash
cp docs/.cortexignore.default ../.cortexignore
```
### Step 3 ยท Start Services
```bash
docker-compose up -d
```
Wait for model to be ready

> โฑ๏ธ First run downloads the embedding model (~274MB, 2-5 min)
### Step 4 ยท Initialize
```bash
npm run setup
```
### Step 5 ยท Configure MCP
Create `.mcp.json` in your **project root**:
```json
{
"mcpServers": {
"cortex": {
"command": "npx",
"args": ["tsx", "cortex/src/server.ts"],
"env": {
"DATABASE_URL": "postgres://cortex:cortex-dev-pass-123@localhost:5433/cortex",
"OLLAMA_URL": "http://localhost:11434"
}
}
}
}
```
### Step 6 ยท Restart Claude Code
Run `/exit` and reopen. Verify with `/mcp` โ should see `cortex: connected`

### Step 7 ยท Install Git Hook
> ๐ด **Required** โ keeps AI memory in sync with your code
```bash
npm run hook:install
```
### Step 8 ยท Create Cortex Memory Agent (Recommended)
> ๐ก **Why?** Agents ensure Claude Code automatically queries Cortex before implementing features.
**Option A: Using Claude Code CLI** (recommended)
```bash
/agents
# โ Select "Create new agent"
# โ Follow prompts to create an agent for searching codebase patterns
# โ Name it something like "cortex-memory-agent"
```
**Option B: Copy example agent**
```bash
# Copy the pre-built agent definition
cp cortex/docs/cortex-memory-agent.md .claude/agents/cortex-memory-agent.md
```
See [`docs/cortex-memory-agent.md`](docs/cortex-memory-agent.md) for a complete agent example.
### Step 9 ยท Add to CLAUDE.md
Tell Claude cli to always use your Cortex agent:
```markdown
## Cortex Memory
**ALWAYS use the cortex-memory-agent before implementing ANY feature.**
This agent will query Cortex to find existing patterns and prevent code duplication.
Manual query example:
cortex_query("what you're building")
```
### โ
Done!
```typescript
cortex_query("how we handle API errors")
cortex_query("existing notification system")
cortex_query("database connection patterns")
```
---
## ๐ Git Auto-Sync
After installing the hook, Cortex syncs automatically on every commit:
```bash
git commit -m "Add new feature"
# ๐ Syncing changed files...
# โ
src/feature.ts (12 chunks)
# โ
docs/FEATURE.md (5 chunks)
```
| Benefit | Description |
|---------|-------------|
| ๐ค **Zero effort** | Happens automatically |
| โก **Incremental** | Only changed files |
| ๐ฏ **Always fresh** | AI never sees stale code |
---
## ๐ ๏ธ MCP Tools Reference
| Tool | Purpose |
|------|---------|
| `cortex_query` | Search by meaning |
| `cortex_sync` | Manual file sync |
| `cortex_stats` | Database stats |
| `cortex_init` | Health check |
| `cortex_list_files` | List indexed files |
| `cortex_delete` | Remove from index |
### Query Examples
```typescript
// Find existing implementations
cortex_query("payment processing")
cortex_query("user session management")
// Find patterns
cortex_query("how we handle errors in API routes")
cortex_query("state management approach")
// Find documentation
cortex_query("deployment process")
cortex_query("environment configuration")
```
> ๐ก **Tip**: Be specific. `"how we validate user input in forms"` beats `"validation"`.
---
## ๐ Configuration
### .cortexignore
Controls what gets indexed. Copy the default:
```bash
cp cortex/docs/.cortexignore.default .cortexignore
```
**Auto-excluded**: `node_modules`, `dist`, `build`, `.git`, binary files
### .cortexconfig.json (Optional)
```json
{
"maxFileSize": 52428800
}
```
> 52428800 = 50MB. Also accepts `"50MB"` string format.
---
## ๐ป System Requirements
| Component | Minimum |
|-----------|---------|
| Docker | Docker Desktop or Engine |
| RAM | 4GB (8GB recommended) |
| Disk | ~2GB for models |
| Node.js | v18+ |
---
## ๐ง Troubleshooting
<details>
<summary><strong>Services won't start</strong></summary>
```bash
docker ps # Is Docker running?
docker-compose logs # Check errors
docker-compose down && docker-compose up -d
```
</details>
<details>
<summary><strong>No results from queries</strong></summary>
```typescript
cortex_stats() // Check if data exists
cortex_list_files() // List what's indexed
```
If empty, run `npm run db:sync`
</details>
<details>
<summary><strong>Emergency reset</strong></summary>
```bash
docker-compose down -v # Delete all data
docker-compose up -d # Fresh start
npm run setup # Reinitialize
```
</details>
---
## โ FAQ
<details>
<summary><strong>Is it really free?</strong></summary>
Yes. MIT licensed, no API costs, no subscriptions. Embeddings run locally via Ollama.
</details>
<details>
<summary><strong>Does my code leave my machine?</strong></summary>
No. Everything runs in local Docker containers. Your code never leaves localhost.
</details>
<details>
<summary><strong>What languages work?</strong></summary>
All of them. Cortex indexes text content โ TypeScript, Python, Go, Rust, Java, C++, Markdown, everything.
</details>
<details>
<summary><strong>How is this different from grep?</strong></summary>
Grep finds exact text matches. Cortex finds **meaning**:
- Search `"user authentication"` โ finds login handlers, JWT code, session management
- Even if none of those files contain the words "user authentication"
</details>
---
## ๐ค Contributing
All contributions welcome:
- ๐ Bug reports
- ๐ก Feature ideas & suggestions
- ๐ Documentation improvements
- ๐ง Code contributions
**Have an idea?** Open a [GitHub Issue](https://github.com/Remskill/Cortex/issues) โ we discuss everything!
Fork โ Branch โ PR โ We'll review and merge together.
---
## ๐ Similar Projects
If Cortex isn't the right fit, check out **[Zep](https://www.getzep.com/)** โ they solve a similar problem (agent context/memory) with a different approach. We discovered them after building Cortex and found the ideas surprisingly similar. Worth exploring if you need alternatives!
---
## ๐ Support
<a href="https://buymeacoffee.com/denys_medvediev">
<img src="https://img.shields.io/badge/โ-Buy%20Me%20a%20Coffee-yellow.svg?style=for-the-badge" alt="Buy Me a Coffee">
</a>
---
## ๐ Links
[GitHub](https://github.com/Remskill/Cortex) ยท [Issues](https://github.com/Remskill/Cortex/issues) ยท [LinkedIn](https://www.linkedin.com/in/denysmedvediev/)
---
<div align="center">
**Made with โค๏ธ by [Denys Medvediev](https://buymeacoffee.com/denys_medvediev)**
โญ **Star this repo if it helps you!** โญ
</div>
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues