{"_id":"@aakashpawar/repo-memory","_rev":"4-bbc4a772cd68beb47036249aeee5e95b","name":"@aakashpawar/repo-memory","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@aakashpawar/repo-memory","version":"1.0.0","keywords":["ai","agents","code-indexing","repository","memory","developer-tools","cli","tree-sitter","ast"],"license":"MIT","_id":"@aakashpawar/repo-memory@1.0.0","maintainers":[{"name":"aakashpawar","email":"aakashpawar1999@gmail.com"}],"bin":{"repo-memory":"dist/cli.js"},"dist":{"shasum":"fbc5e16b9eaaba328b289b316e7bd82087621ef8","tarball":"https://registry.npmjs.org/@aakashpawar/repo-memory/-/repo-memory-1.0.0.tgz","fileCount":17,"integrity":"sha512-HvXfoEXBksLP/4lRM8d3lmIP4Ss7nGIuV17cTVV5GW1xGNydHsGZ0o9j0OTWeshnt4wi+53OcE/zj3JYhf2nyQ==","signatures":[{"sig":"MEUCIEUB2xON2GT5Fg0aUdW/xsN7nyPwIa239A4hf6COJvCVAiEAytiMbFbg6Q3tAjuukSMhiL8Uzv5NvirSb/pgg14Pssw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205332},"main":"dist/cli.js","type":"module","types":"./dist/cli.d.ts","engines":{"node":">=18.0.0"},"gitHead":"4ff5fc8b3c6b8061beb62393d69ef40a47d3b7a6","scripts":{"dev":"tsup src/cli.ts --format esm --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/cli.ts --format esm --dts --clean","start":"node dist/cli.js","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"aakashpawar","email":"aakashpawar1999@gmail.com"},"_npmVersion":"10.9.0","description":"🧠 Create a persistent brain for any code repository — instant context for AI agents","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","ignore":"^7.0.3","commander":"^13.1.0","fast-glob":"^3.3.3","tree-sitter":"^0.22.4","xxhash-wasm":"^1.1.0","better-sqlite3":"^11.8.1","tree-sitter-python":"^0.23.6","tree-sitter-javascript":"^0.23.1","tree-sitter-typescript":"^0.23.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.7","typescript":"^5.7.3","@types/node":"^22.13.5","@types/better-sqlite3":"^7.6.12"},"_npmOperationalInternal":{"tmp":"tmp/repo-memory_1.0.0_1772479212564_0.3023968401961268","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aakashpawar/repo-memory","version":"1.0.1","keywords":["ai","agents","code-indexing","repository","memory","developer-tools","cli","tree-sitter","ast"],"author":{"url":"https://github.com/aakashpawar1999","name":"Aakash Pawar"},"license":"MIT","_id":"@aakashpawar/repo-memory@1.0.1","maintainers":[{"name":"aakashpawar","email":"aakashpawar1999@gmail.com"}],"homepage":"https://github.com/aakashpawar1999/repo-memory#readme","bugs":{"url":"https://github.com/aakashpawar1999/repo-memory/issues"},"bin":{"repo-memory":"dist/cli.js"},"dist":{"shasum":"5336a3ca178635486c5b7d5aacb81288b2d63698","tarball":"https://registry.npmjs.org/@aakashpawar/repo-memory/-/repo-memory-1.0.1.tgz","fileCount":18,"integrity":"sha512-YR9g9CbcIO4eKEUIJl4sOjWRGU2CMzr0+x+qaYIVElTXmCmfDNX22ZI3YzLitcvrT7SDSLWJaVKsFEiLe4t7CA==","signatures":[{"sig":"MEYCIQD4cgyVnI69raS/w336DfyJ4h6xI1fClrliCxr0MCag5AIhAO2FWE8Jm+7DEu9BFXx3B0CpcM2zFfj/spuFDDnzAI5i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207472},"main":"dist/cli.js","type":"module","types":"./dist/cli.d.ts","engines":{"node":">=18.0.0"},"gitHead":"08f1e977de882afbc48ab4ea1b15869668f0a5f0","scripts":{"dev":"tsup src/cli.ts --format esm --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/cli.ts --format esm --dts --clean","start":"node dist/cli.js","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"aakashpawar","email":"aakashpawar1999@gmail.com"},"repository":{"url":"git+https://github.com/aakashpawar1999/repo-memory.git","type":"git"},"_npmVersion":"10.9.0","description":"🧠 Create a persistent brain for any code repository — instant context for AI agents","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","ignore":"^7.0.3","commander":"^13.1.0","fast-glob":"^3.3.3","tree-sitter":"^0.22.4","xxhash-wasm":"^1.1.0","better-sqlite3":"^11.8.1","tree-sitter-python":"^0.23.6","tree-sitter-javascript":"^0.23.1","tree-sitter-typescript":"^0.23.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.7","typescript":"^5.7.3","@types/node":"^22.13.5","@types/better-sqlite3":"^7.6.12"},"_npmOperationalInternal":{"tmp":"tmp/repo-memory_1.0.1_1772479492614_0.4708760202226612","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aakashpawar/repo-memory","version":"1.0.2","keywords":["ai","agents","code-indexing","repository","memory","developer-tools","cli"],"author":{"url":"https://github.com/aakashpawar1999","name":"Aakash Pawar"},"license":"MIT","_id":"@aakashpawar/repo-memory@1.0.2","maintainers":[{"name":"aakashpawar","email":"aakashpawar1999@gmail.com"}],"homepage":"https://github.com/aakashpawar1999/repo-memory#readme","bugs":{"url":"https://github.com/aakashpawar1999/repo-memory/issues"},"bin":{"repo-memory":"dist/cli.js"},"dist":{"shasum":"f784a83df4218960e8999837a92d7f231c9051a3","tarball":"https://registry.npmjs.org/@aakashpawar/repo-memory/-/repo-memory-1.0.2.tgz","fileCount":18,"integrity":"sha512-MzCDBUMvKwP/f0/IjfpC5GWtRtxEPq04kNHcmIO/sFe7NA49Pwuy8yLTrJegBrYwWrzOLmWGTY8NuLhvIgeSLQ==","signatures":[{"sig":"MEUCIQDVN8o/kY1USFuKDz4yLp3ftPwsvryoZ9Wx3nFRcEJNvQIgEUpenjlpQqyMhDnpD01K1Es3AQGaWpL+bCWrU0UjKug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207583},"main":"dist/cli.js","type":"module","types":"./dist/cli.d.ts","engines":{"node":">=18.0.0"},"gitHead":"65eed00e3571e4ebbb7571103146d6482d493287","scripts":{"dev":"tsup src/cli.ts --format esm --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/cli.ts --format esm --dts --clean","start":"node dist/cli.js","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"aakashpawar","email":"aakashpawar1999@gmail.com"},"repository":{"url":"git+https://github.com/aakashpawar1999/repo-memory.git","type":"git"},"_npmVersion":"10.9.0","description":"🧠 Create a persistent brain for any code repository — instant context for AI agents","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","ignore":"^7.0.3","commander":"^13.1.0","fast-glob":"^3.3.3","xxhash-wasm":"^1.1.0","better-sqlite3":"^11.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.7","typescript":"^5.7.3","@types/node":"^22.13.5","@types/better-sqlite3":"^7.6.12"},"_npmOperationalInternal":{"tmp":"tmp/repo-memory_1.0.2_1772479986309_0.6603553684976247","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aakashpawar/repo-memory","version":"1.0.3","description":"🧠 Create a persistent brain for any code repository — instant context for AI agents","type":"module","main":"dist/cli.js","bin":{"repo-memory":"dist/cli.js"},"scripts":{"build":"tsup src/cli.ts --format esm --dts --clean","dev":"tsup src/cli.ts --format esm --watch","start":"node dist/cli.js","test":"vitest run","test:watch":"vitest","lint":"tsc --noEmit","prepublishOnly":"npm run build"},"keywords":["ai","agents","code-indexing","repository","memory","developer-tools","cli"],"author":{"name":"Aakash Pawar","url":"https://github.com/aakashpawar1999"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/aakashpawar1999/repo-memory.git"},"homepage":"https://github.com/aakashpawar1999/repo-memory#readme","bugs":{"url":"https://github.com/aakashpawar1999/repo-memory/issues"},"engines":{"node":">=18.0.0"},"dependencies":{"better-sqlite3":"^11.8.1","chalk":"^5.4.1","commander":"^13.1.0","fast-glob":"^3.3.3","ignore":"^7.0.3","ora":"^8.2.0","xxhash-wasm":"^1.1.0"},"devDependencies":{"@types/better-sqlite3":"^7.6.12","@types/node":"^22.13.5","tsup":"^8.4.0","typescript":"^5.7.3","vitest":"^3.0.7"},"_id":"@aakashpawar/repo-memory@1.0.3","gitHead":"d2a7b0495b1aad0eacfbb4c4cc2caa3f56d91516","types":"./dist/cli.d.ts","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-OjKeEmKzY2VlB/HRBCMTlqzyyLiTy8p2Qy3+iW6FN5CjGmTv1NsThZQydXxX1WwpdHOy5goNv4IoaADC+XGSbw==","shasum":"781f6c67caef8cd543bca2fabfc1a63b1afc5017","tarball":"https://registry.npmjs.org/@aakashpawar/repo-memory/-/repo-memory-1.0.3.tgz","fileCount":18,"unpackedSize":207988,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDX46DqJgf2WGpXlGYIcRgsnj5HSnB/1+DOQ3SaDH8pEwIgAwuTO7FTiuKZCIlaNxzKx/5CKIw77cpFAEOfUlblA0Q="}]},"_npmUser":{"name":"aakashpawar","email":"aakashpawar1999@gmail.com"},"directories":{},"maintainers":[{"name":"aakashpawar","email":"aakashpawar1999@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/repo-memory_1.0.3_1772480882378_0.8344096868601774"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-02T19:20:12.457Z","modified":"2026-03-02T19:48:02.653Z","1.0.0":"2026-03-02T19:20:12.743Z","1.0.1":"2026-03-02T19:24:52.824Z","1.0.2":"2026-03-02T19:33:06.490Z","1.0.3":"2026-03-02T19:48:02.533Z"},"bugs":{"url":"https://github.com/aakashpawar1999/repo-memory/issues"},"author":{"name":"Aakash Pawar","url":"https://github.com/aakashpawar1999"},"license":"MIT","homepage":"https://github.com/aakashpawar1999/repo-memory#readme","keywords":["ai","agents","code-indexing","repository","memory","developer-tools","cli"],"repository":{"type":"git","url":"git+https://github.com/aakashpawar1999/repo-memory.git"},"description":"🧠 Create a persistent brain for any code repository — instant context for AI agents","maintainers":[{"name":"aakashpawar","email":"aakashpawar1999@gmail.com"}],"readme":"# 🧠 repo-memory\n\n[![npm version](https://img.shields.io/npm/v/@aakashpawar/repo-memory.svg)](https://www.npmjs.com/package/@aakashpawar/repo-memory)\n[![license](https://img.shields.io/npm/l/@aakashpawar/repo-memory.svg)](https://github.com/aakashpawar1999/repo-memory/blob/main/LICENSE)\n[![node](https://img.shields.io/node/v/@aakashpawar/repo-memory.svg)](https://nodejs.org)\n\n> Create a persistent brain for any code repository — instant context for AI agents.\n\n**One command. Zero LLM dependency. Works offline.**\n\n```bash\nnpx @aakashpawar/repo-memory init\n```\n\nrepo-memory scans your codebase, parses every function/class/module, maps dependencies, detects conventions, and generates a structured `MEMORY.md` that any AI agent can instantly consume — like giving it the institutional knowledge of a super-senior developer.\n\n## Why?\n\nEvery time an AI agent starts a new session, it:\n\n- 🔄 Wastes tokens re-scanning the repo structure\n- 🔍 Doesn't know where key logic lives (file + line numbers)\n- 🧩 Loses context about patterns, conventions, and relationships\n- 💸 Increases overhead by rebuilding context from scratch\n\n**repo-memory** solves this with a single `MEMORY.md` file that persists between sessions.\n\n## Installation\n\n```bash\n# Install globally\nnpm install -g @aakashpawar/repo-memory\n\n# Or run directly with npx (no install needed)\nnpx @aakashpawar/repo-memory init\n```\n\n## Quick Start\n\n```bash\n# Initialize & index your project\ncd your-project\nrepo-memory init\n\n# Update after changes (fast — only re-indexes modified files)\nrepo-memory update\n\n# Search for symbols\nrepo-memory query \"payment processing\"\n\n# Get details about a specific symbol\nrepo-memory show PaymentService\n\n# Health check\nrepo-memory doctor\n```\n\n## What It Generates\n\n### `MEMORY.md` — Your Codebase Brain\n\n```markdown\n# 🧠 Repository Memory\n\n> my-app | 247 files | 1,832 symbols | Primary: TypeScript\n\n## 📋 Project Overview\n\n- Type: Next.js application\n- Package Manager: pnpm\n- Build: `pnpm build` | Test: `pnpm test`\n\n## 🏗️ Architecture Map\n\nsrc/ (203 files)\n├── app/ (15 files)\n├── components/ (42 files)\n│ ├── ui/\n│ └── features/\n├── lib/ (8 files)\n├── server/ (31 files)\n│ ├── routes/\n│ ├── middleware/\n│ └── services/\n└── types/ (5 files)\n\n## 🗂️ Key Files & Symbols\n\n### `src/server/services/payment.service.ts` (L1-L187) — 12 dependents\n\n- 🏛️ **PaymentService** (L12-L187) `exported`\n  - `class PaymentService`\n- 🔧 **PaymentService.processPayment** (L34-L89)\n  - `processPayment(order: Order): Promise<PaymentResult>`\n- 🔧 **PaymentService.refund** (L91-L132)\n  - `refund(paymentId: string, reason: string): Promise<void>`\n\n## 🔗 Dependency Graph\n\n| File                 | Dependents | Impact      |\n| -------------------- | ---------- | ----------- |\n| `src/lib/api.ts`     | 28         | 🔴 Critical |\n| `src/types/index.ts` | 45         | 🔴 Critical |\n\n## 📐 Conventions & Patterns\n\n- File Naming: kebab-case\n- Function Naming: camelCase\n- Testing: Vitest, Colocated (\\*.test.ts files)\n\n## 🚨 Critical Paths\n\n1. **`src/lib/api.ts`** — 28 dependents (exports: `createApiClient`, `handleApiError`)\n```\n\n### `.repo-memory/index.db` — Queryable SQLite Index\n\nA fast, local SQLite database with full-text search for programmatic access:\n\n```bash\n# Search symbols\nrepo-memory query \"authentication\" --json\n\n# Get structured results for AI agents\nrepo-memory query \"error handling\" --json --limit 10\n```\n\n## Supported Languages\n\n| Language              | Parsing  | Imports | Symbols                                                             |\n| --------------------- | -------- | ------- | ------------------------------------------------------------------- |\n| TypeScript/JavaScript | ✅ Full  | ✅ Full | ✅ Functions, classes, methods, interfaces, types, enums, constants |\n| Python                | ✅ Full  | ✅ Full | ✅ Functions, classes, methods, decorators, constants               |\n| Go                    | ✅ Full  | ✅ Full | ✅ Functions, methods, structs, interfaces                          |\n| Rust                  | ✅ Full  | ✅ Full | ✅ Functions, structs, enums, traits, impls                         |\n| Java/Kotlin           | ✅ Full  | ✅ Full | ✅ Classes, methods, interfaces                                     |\n| Other                 | ✅ Basic | ❌      | ✅ Functions, classes (generic regex)                               |\n\n## Configuration\n\nCreate `.repo-memory.json` in your project root:\n\n```json\n{\n  \"ignore\": [\"generated/\", \"*.auto.ts\"],\n  \"maxTokens\": 32000,\n  \"includeLineNumbers\": true,\n  \"includeSignatures\": true,\n  \"includeDependencies\": true,\n  \"includeConventions\": true,\n  \"maxKeySymbols\": 100,\n  \"maxTreeDepth\": 4\n}\n```\n\n## How It Works\n\n```\nrepo-memory init\n     │\n     ▼\n ┌─ Scan ─────────┐   Walks repo, respects .gitignore,\n │  fast-glob      │   computes file hashes, detects languages\n └────────┬────────┘\n          ▼\n ┌─ Parse ─────────┐   Regex-based AST extraction for\n │  Multi-language  │   functions, classes, methods, imports\n └────────┬────────┘\n          ▼\n ┌─ Resolve ───────┐   Maps imports → files, computes\n │  Dependencies   │   fan-in/fan-out, detects cycles\n └────────┬────────┘\n          ▼\n ┌─ Detect ────────┐   Project type, test framework,\n │  Conventions    │   naming patterns, build system\n └────────┬────────┘\n          ▼\n ┌─ Store ─────────┐   SQLite + FTS5 full-text search\n │  .repo-memory/  │   for fast queries\n └────────┬────────┘\n          ▼\n ┌─ Generate ──────┐   Token-aware MEMORY.md with\n │  MEMORY.md      │   ranked symbols, architecture map\n └─────────────────┘\n```\n\n## Performance\n\n| Repo Size           | Files       | Time |\n| ------------------- | ----------- | ---- |\n| Small (repo-memory) | 13 files    | 0.1s |\n| Medium              | ~200 files  | ~1s  |\n| Large               | ~1000 files | ~5s  |\n\nIncremental updates (`repo-memory update`) only re-index changed files, making them near-instant.\n\n## Changelog\n\nSee [CHANGELOG.md](./CHANGELOG.md) for a list of all releases and changes.\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request on [GitHub](https://github.com/aakashpawar1999/repo-memory).\n\n## License\n\nMIT © [Aakash Pawar](https://github.com/aakashpawar1999)\n","readmeFilename":"README.md"}