# amdb: AI Context Generator


## ⚡ The Context Problem
AI coding assistants (Cursor, Windsurf, Claude) are powerful, **but they are blind**. They only see the files you open. They lack the deep, structural understanding of your entire codebase that you have in your head.
**`amdb` (Agent Memory Database) solves this.** It scans your local project, builds a vector index of your code, and generates a **single, highly-optimized Markdown context file**. Feed this file to your AI, and watch it instantly understand your project's architecture, dependencies, and logic.
---
## 📦 Installation
Install `amdb` directly from the source.
```bash
# Clone and install locally
cargo install amdb
```
> **Note:** Ensure you have the Rust toolchain installed (`cargo`).
---
## 🚀 Quick Start
### 1. Initialize Project
Run this in your project root. `amdb` will scan your code (Rust, Python, JS/TS), extract symbols, and build a vector database in a hidden `.database/` folder.
```bash
amdb init
```
### 2. Generate Context
Create a full project summary. This generates `.amdb/context.md`, which contains a compressed map of your entire codebase.
```bash
amdb generate
```
**🔥 Pro Tip:** Drag and drop `.amdb/context.md` into your AI chat (Cursor/Claude) to give it "God Mode" understanding of your project.
---
## 🧠 Advanced Usage: Focus Mode
For large projects, a full context might be too big. Use **Focus Mode** to generate a summary relevant to a specific feature or bug. `amdb` uses vector search to find the most relevant files.
```bash
# Example: generating context for authentication logic
amdb generate --focus "login authentication jwt"
```
This creates a targeted summary (e.g., in `.amdb/`) containing only the symbols and files relevant to "login authentication jwt".
---
## 🛠 Supported Languages
`amdb` uses robust Tree-sitter parsers to fully understand the syntax and structure of:
- **Rust** (`.rs`)
- **Python** (`.py`)
- **JavaScript** (`.js`)
- **TypeScript** (`.ts`, `.tsx`)
---
## 📝 Git Configuration
`amdb` generates local files that should usually be ignored by Git.
Add this to your `.gitignore`:
```text
.database/
.amdb/
<p align="center">
Generated by amdb • The Missing Memory for AI Agents
</p>