codebaxing 0.1.3 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -179,26 +179,58 @@ This allows finding code by **meaning**, not just keywords.
179
179
 
180
180
  ## Installation
181
181
 
182
- ### Option 1: Via npx (Recommended)
182
+ ### Quick Install (Recommended)
183
183
 
184
- No installation needed! Just configure Claude Desktop directly.
184
+ ```bash
185
+ # Install to Claude Desktop
186
+ npx codebaxing install
187
+
188
+ # Install to Cursor
189
+ npx codebaxing install --cursor
190
+
191
+ # Install to Windsurf
192
+ npx codebaxing install --windsurf
193
+
194
+ # Install to all supported editors
195
+ npx codebaxing install --all
196
+ ```
185
197
 
186
- ### Option 2: Via npm (Global install)
198
+ Then restart your editor. Done!
199
+
200
+ ### Uninstall
187
201
 
188
202
  ```bash
189
- npm install -g codebaxing
203
+ npx codebaxing uninstall # Remove from Claude Desktop
204
+ npx codebaxing uninstall --all # Remove from all editors
190
205
  ```
191
206
 
192
- ### Option 3: Clone from source
207
+ ### CLI Commands (Direct Usage)
208
+
209
+ You can also use Codebaxing directly from terminal without AI agents:
210
+
211
+ ```bash
212
+ # Index a codebase
213
+ npx codebaxing index /path/to/project
214
+
215
+ # Search for code
216
+ npx codebaxing search "authentication middleware"
217
+ npx codebaxing search "database connection" --path ./src --limit 10
193
218
 
219
+ # Show index statistics
220
+ npx codebaxing stats /path/to/project
221
+ ```
222
+
223
+ **Note:** For persistent storage, run ChromaDB first:
194
224
  ```bash
195
- git clone https://github.com/duysolo/codebaxing.git
196
- cd codebaxing
197
- npm install
198
- npm run build
225
+ docker run -d -p 8000:8000 chromadb/chroma
226
+ export CHROMADB_URL=http://localhost:8000
199
227
  ```
200
228
 
201
- ### (Optional) Set up persistent storage
229
+ ### Manual Installation
230
+
231
+ If you prefer manual configuration, see [Manual Configuration](#configure-claude-desktop) below.
232
+
233
+ ### (Optional) Persistent Storage
202
234
 
203
235
  By default, the index is stored in memory and lost when the server restarts.
204
236
 
@@ -212,7 +244,9 @@ docker run -d -p 8000:8000 chromadb/chroma
212
244
  export CHROMADB_URL=http://localhost:8000
213
245
  ```
214
246
 
215
- ### Configure Claude Desktop
247
+ ### Manual Configuration
248
+
249
+ #### Configure Claude Desktop
216
250
 
217
251
  Add to your Claude Desktop config file:
218
252
 
package/README.vi.md CHANGED
@@ -179,26 +179,58 @@ Embedding model được train trên hàng triệu cặp text, học được r
179
179
 
180
180
  ## Cài đặt
181
181
 
182
- ### Cách 1: Qua npx (Khuyến nghị)
182
+ ### Cài nhanh (Khuyến nghị)
183
183
 
184
- Không cần cài đặt! Chỉ cần cấu hình Claude Desktop trực tiếp.
184
+ ```bash
185
+ # Cài vào Claude Desktop
186
+ npx codebaxing install
187
+
188
+ # Cài vào Cursor
189
+ npx codebaxing install --cursor
190
+
191
+ # Cài vào Windsurf
192
+ npx codebaxing install --windsurf
193
+
194
+ # Cài vào tất cả editors
195
+ npx codebaxing install --all
196
+ ```
185
197
 
186
- ### Cách 2: Qua npm (Cài global)
198
+ Sau đó restart editor. Xong!
199
+
200
+ ### Gỡ cài đặt
187
201
 
188
202
  ```bash
189
- npm install -g codebaxing
203
+ npx codebaxing uninstall # Gỡ khỏi Claude Desktop
204
+ npx codebaxing uninstall --all # Gỡ khỏi tất cả editors
190
205
  ```
191
206
 
192
- ### Cách 3: Clone từ source
207
+ ### CLI Commands (Dùng trực tiếp)
208
+
209
+ Bạn có thể dùng Codebaxing trực tiếp từ terminal mà không cần AI agents:
210
+
211
+ ```bash
212
+ # Index codebase
213
+ npx codebaxing index /path/to/project
214
+
215
+ # Tìm kiếm code
216
+ npx codebaxing search "authentication middleware"
217
+ npx codebaxing search "database connection" --path ./src --limit 10
193
218
 
219
+ # Xem thống kê
220
+ npx codebaxing stats /path/to/project
221
+ ```
222
+
223
+ **Lưu ý:** Để lưu trữ vĩnh viễn, chạy ChromaDB trước:
194
224
  ```bash
195
- git clone https://github.com/duysolo/codebaxing.git
196
- cd codebaxing
197
- npm install
198
- npm run build
225
+ docker run -d -p 8000:8000 chromadb/chroma
226
+ export CHROMADB_URL=http://localhost:8000
199
227
  ```
200
228
 
201
- ### (Tùy chọn) Cài đặt persistent storage
229
+ ### Cài thủ công
230
+
231
+ Nếu muốn cấu hình thủ công, xem [Cấu hình thủ công](#cấu-hình-claude-desktop) bên dưới.
232
+
233
+ ### (Tùy chọn) Persistent Storage
202
234
 
203
235
  Mặc định, index được lưu trong memory và mất khi server restart.
204
236
 
@@ -212,7 +244,9 @@ docker run -d -p 8000:8000 chromadb/chroma
212
244
  export CHROMADB_URL=http://localhost:8000
213
245
  ```
214
246
 
215
- ### Cấu hình Claude Desktop
247
+ ### Cấu hình thủ công
248
+
249
+ #### Cấu hình Claude Desktop
216
250
 
217
251
  Thêm vào file config của Claude Desktop:
218
252
 
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI for Codebaxing MCP server.
4
+ *
5
+ * Usage:
6
+ * npx codebaxing install # Install to Claude Desktop
7
+ * npx codebaxing install --cursor # Install to Cursor
8
+ * npx codebaxing index <path> # Index a codebase
9
+ * npx codebaxing search <query> # Search indexed codebase
10
+ * npx codebaxing stats # Show index statistics
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=installer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/cli/installer.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG"}
@@ -0,0 +1,345 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI for Codebaxing MCP server.
4
+ *
5
+ * Usage:
6
+ * npx codebaxing install # Install to Claude Desktop
7
+ * npx codebaxing install --cursor # Install to Cursor
8
+ * npx codebaxing index <path> # Index a codebase
9
+ * npx codebaxing search <query> # Search indexed codebase
10
+ * npx codebaxing stats # Show index statistics
11
+ */
12
+ import fs from 'node:fs';
13
+ import path from 'node:path';
14
+ import os from 'node:os';
15
+ // ─── Config Paths ────────────────────────────────────────────────────────────
16
+ const HOME = os.homedir();
17
+ const PLATFORM = process.platform;
18
+ function getEditorConfigs() {
19
+ const configs = [];
20
+ // Claude Desktop
21
+ if (PLATFORM === 'darwin') {
22
+ configs.push({
23
+ name: 'Claude Desktop',
24
+ configPath: path.join(HOME, 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'),
25
+ configKey: 'mcpServers',
26
+ serverConfig: { command: 'npx', args: ['-y', 'codebaxing'] },
27
+ });
28
+ }
29
+ else if (PLATFORM === 'win32') {
30
+ configs.push({
31
+ name: 'Claude Desktop',
32
+ configPath: path.join(process.env.APPDATA || '', 'Claude', 'claude_desktop_config.json'),
33
+ configKey: 'mcpServers',
34
+ serverConfig: { command: 'npx', args: ['-y', 'codebaxing'] },
35
+ });
36
+ }
37
+ else {
38
+ configs.push({
39
+ name: 'Claude Desktop',
40
+ configPath: path.join(HOME, '.config', 'claude', 'claude_desktop_config.json'),
41
+ configKey: 'mcpServers',
42
+ serverConfig: { command: 'npx', args: ['-y', 'codebaxing'] },
43
+ });
44
+ }
45
+ // Cursor
46
+ configs.push({
47
+ name: 'Cursor',
48
+ configPath: path.join(HOME, '.cursor', 'mcp.json'),
49
+ configKey: 'mcpServers',
50
+ serverConfig: { command: 'npx', args: ['-y', 'codebaxing'] },
51
+ });
52
+ // Windsurf
53
+ configs.push({
54
+ name: 'Windsurf',
55
+ configPath: path.join(HOME, '.codeium', 'windsurf', 'mcp_config.json'),
56
+ configKey: 'mcpServers',
57
+ serverConfig: { command: 'npx', args: ['-y', 'codebaxing'] },
58
+ });
59
+ // Zed
60
+ configs.push({
61
+ name: 'Zed',
62
+ configPath: path.join(HOME, '.config', 'zed', 'settings.json'),
63
+ configKey: 'context_servers',
64
+ serverConfig: { command: { path: 'npx', args: ['-y', 'codebaxing'] } },
65
+ });
66
+ return configs;
67
+ }
68
+ // ─── JSON Helpers ────────────────────────────────────────────────────────────
69
+ function readJsonFile(filePath) {
70
+ try {
71
+ return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
72
+ }
73
+ catch {
74
+ return {};
75
+ }
76
+ }
77
+ function writeJsonFile(filePath, data) {
78
+ const dir = path.dirname(filePath);
79
+ if (!fs.existsSync(dir))
80
+ fs.mkdirSync(dir, { recursive: true });
81
+ fs.writeFileSync(filePath, JSON.stringify(data, null, 2) + '\n');
82
+ }
83
+ // ─── Install/Uninstall ───────────────────────────────────────────────────────
84
+ function installToEditor(editor) {
85
+ console.log(`\n📦 Installing to ${editor.name}...`);
86
+ const config = readJsonFile(editor.configPath);
87
+ if (!config[editor.configKey])
88
+ config[editor.configKey] = {};
89
+ const servers = config[editor.configKey];
90
+ if (servers.codebaxing) {
91
+ console.log(` ✓ Already installed`);
92
+ return true;
93
+ }
94
+ servers.codebaxing = editor.serverConfig;
95
+ try {
96
+ writeJsonFile(editor.configPath, config);
97
+ console.log(` ✓ Installed to ${editor.configPath}`);
98
+ return true;
99
+ }
100
+ catch (err) {
101
+ console.error(` ✗ Failed: ${err.message}`);
102
+ return false;
103
+ }
104
+ }
105
+ function uninstallFromEditor(editor) {
106
+ if (!fs.existsSync(editor.configPath))
107
+ return true;
108
+ console.log(`\n🗑️ Uninstalling from ${editor.name}...`);
109
+ const config = readJsonFile(editor.configPath);
110
+ const servers = config[editor.configKey];
111
+ if (!servers?.codebaxing) {
112
+ console.log(` ✓ Not installed`);
113
+ return true;
114
+ }
115
+ delete servers.codebaxing;
116
+ try {
117
+ writeJsonFile(editor.configPath, config);
118
+ console.log(` ✓ Removed`);
119
+ return true;
120
+ }
121
+ catch (err) {
122
+ console.error(` ✗ Failed: ${err.message}`);
123
+ return false;
124
+ }
125
+ }
126
+ // ─── Index Command ───────────────────────────────────────────────────────────
127
+ async function runIndex(codebasePath) {
128
+ const absolutePath = path.resolve(codebasePath);
129
+ if (!fs.existsSync(absolutePath)) {
130
+ console.error(`\n❌ Path does not exist: ${absolutePath}`);
131
+ process.exit(1);
132
+ }
133
+ console.log('\n🔧 Codebaxing - Index Codebase\n');
134
+ console.log(`📁 Path: ${absolutePath}\n`);
135
+ // Dynamic import to avoid loading heavy dependencies upfront
136
+ const { SourceRetriever } = await import('../indexing/source-retriever.js');
137
+ const retriever = new SourceRetriever({
138
+ codebasePath: absolutePath,
139
+ embeddingModel: 'all-MiniLM-L6-v2',
140
+ verbose: true,
141
+ });
142
+ await retriever.indexCodebase();
143
+ const stats = retriever.getStats();
144
+ console.log('\n📊 Index Statistics:');
145
+ console.log(` Files: ${stats.totalFiles}`);
146
+ console.log(` Symbols: ${stats.totalSymbols}`);
147
+ console.log(` Chunks: ${stats.totalChunks}`);
148
+ console.log(` Time: ${stats.indexingTime?.toFixed(1)}s\n`);
149
+ }
150
+ // ─── Search Command ──────────────────────────────────────────────────────────
151
+ async function runSearch(query, options) {
152
+ const codebasePath = options.path || process.cwd();
153
+ const absolutePath = path.resolve(codebasePath);
154
+ const limit = options.limit || 5;
155
+ console.log('\n🔧 Codebaxing - Search\n');
156
+ console.log(`📁 Path: ${absolutePath}`);
157
+ console.log(`🔍 Query: "${query}"`);
158
+ console.log(`📊 Limit: ${limit}\n`);
159
+ const { SourceRetriever } = await import('../indexing/source-retriever.js');
160
+ const retriever = new SourceRetriever({
161
+ codebasePath: absolutePath,
162
+ embeddingModel: 'all-MiniLM-L6-v2',
163
+ verbose: false,
164
+ });
165
+ // Check if index exists, if not, index first
166
+ const stats = retriever.getStats();
167
+ if (stats.totalChunks === 0) {
168
+ console.log('⚠️ No index found. Indexing first...\n');
169
+ await retriever.indexCodebase();
170
+ console.log('');
171
+ }
172
+ const { sources, documents } = await retriever.getSourcesForQuestion(query, { nResults: limit });
173
+ if (sources.length === 0) {
174
+ console.log('❌ No results found.\n');
175
+ return;
176
+ }
177
+ console.log('─'.repeat(60));
178
+ console.log('Results:\n');
179
+ sources.forEach((source, i) => {
180
+ console.log(`${i + 1}. ${source}`);
181
+ });
182
+ console.log('\n' + '─'.repeat(60) + '\n');
183
+ }
184
+ // ─── Stats Command ───────────────────────────────────────────────────────────
185
+ async function runStats(codebasePath) {
186
+ const absolutePath = path.resolve(codebasePath || process.cwd());
187
+ console.log('\n🔧 Codebaxing - Statistics\n');
188
+ console.log(`📁 Path: ${absolutePath}\n`);
189
+ const { SourceRetriever } = await import('../indexing/source-retriever.js');
190
+ const retriever = new SourceRetriever({
191
+ codebasePath: absolutePath,
192
+ embeddingModel: 'all-MiniLM-L6-v2',
193
+ verbose: false,
194
+ });
195
+ const stats = retriever.getStats();
196
+ console.log('📊 Index Statistics:');
197
+ console.log(` Files: ${stats.totalFiles}`);
198
+ console.log(` Symbols: ${stats.totalSymbols}`);
199
+ console.log(` Chunks: ${stats.totalChunks}`);
200
+ console.log(` Parse Errors: ${stats.parseErrors}`);
201
+ if (stats.indexingTime) {
202
+ console.log(` Index Time: ${stats.indexingTime.toFixed(1)}s`);
203
+ }
204
+ console.log('');
205
+ }
206
+ // ─── CLI ─────────────────────────────────────────────────────────────────────
207
+ function printUsage() {
208
+ console.log(`
209
+ Codebaxing - Semantic code search via MCP
210
+
211
+ Usage:
212
+ npx codebaxing install [options] Install MCP server to editors
213
+ npx codebaxing uninstall [options] Uninstall MCP server
214
+ npx codebaxing index <path> Index a codebase
215
+ npx codebaxing search <query> [opts] Search indexed codebase
216
+ npx codebaxing stats [path] Show index statistics
217
+
218
+ Install Options:
219
+ --claude Claude Desktop (default)
220
+ --cursor Cursor
221
+ --windsurf Windsurf (Codeium)
222
+ --zed Zed
223
+ --all All supported editors
224
+
225
+ Search Options:
226
+ --path, -p Codebase path (default: current directory)
227
+ --limit, -n Number of results (default: 5)
228
+
229
+ Examples:
230
+ npx codebaxing install # Install to Claude Desktop
231
+ npx codebaxing install --all # Install to all editors
232
+ npx codebaxing index ./my-project # Index a project
233
+ npx codebaxing search "auth middleware" # Search current directory
234
+ npx codebaxing search "login" -p ./src -n 10
235
+ `);
236
+ }
237
+ function parseEditorArgs(args) {
238
+ const editors = [];
239
+ for (const arg of args) {
240
+ if (arg === '--claude')
241
+ editors.push('Claude Desktop');
242
+ else if (arg === '--cursor')
243
+ editors.push('Cursor');
244
+ else if (arg === '--windsurf')
245
+ editors.push('Windsurf');
246
+ else if (arg === '--zed')
247
+ editors.push('Zed');
248
+ else if (arg === '--all')
249
+ editors.push('all');
250
+ }
251
+ return editors.length ? editors : ['Claude Desktop'];
252
+ }
253
+ function parseSearchArgs(args) {
254
+ let query = '';
255
+ let searchPath;
256
+ let limit;
257
+ for (let i = 0; i < args.length; i++) {
258
+ const arg = args[i];
259
+ if (arg === '--path' || arg === '-p') {
260
+ searchPath = args[++i];
261
+ }
262
+ else if (arg === '--limit' || arg === '-n') {
263
+ limit = parseInt(args[++i], 10);
264
+ }
265
+ else if (!arg.startsWith('-')) {
266
+ query = arg;
267
+ }
268
+ }
269
+ return { query, path: searchPath, limit };
270
+ }
271
+ async function main() {
272
+ const args = process.argv.slice(2);
273
+ const command = args[0] || '';
274
+ // MCP server mode (no args or unknown command)
275
+ if (!command || !['install', 'uninstall', 'index', 'search', 'stats', 'help', '--help', '-h'].includes(command)) {
276
+ import('../mcp/server.js').catch(() => printUsage());
277
+ return;
278
+ }
279
+ // Help
280
+ if (command === 'help' || command === '--help' || command === '-h') {
281
+ printUsage();
282
+ return;
283
+ }
284
+ // Install
285
+ if (command === 'install') {
286
+ const editors = parseEditorArgs(args.slice(1));
287
+ const allEditors = getEditorConfigs();
288
+ const selected = editors.includes('all') ? allEditors : allEditors.filter(e => editors.includes(e.name));
289
+ console.log('\n🔧 Codebaxing MCP Server Installer\n');
290
+ let success = 0;
291
+ for (const editor of selected) {
292
+ if (installToEditor(editor))
293
+ success++;
294
+ }
295
+ console.log('\n' + '─'.repeat(50));
296
+ console.log(`\n✨ Done! (${success}/${selected.length})`);
297
+ console.log('\n📝 Restart your editor to use Codebaxing.\n');
298
+ return;
299
+ }
300
+ // Uninstall
301
+ if (command === 'uninstall') {
302
+ const editors = parseEditorArgs(args.slice(1));
303
+ const allEditors = getEditorConfigs();
304
+ const selected = editors.includes('all') ? allEditors : allEditors.filter(e => editors.includes(e.name));
305
+ console.log('\n🔧 Codebaxing MCP Server Uninstaller\n');
306
+ let success = 0;
307
+ for (const editor of selected) {
308
+ if (uninstallFromEditor(editor))
309
+ success++;
310
+ }
311
+ console.log('\n' + '─'.repeat(50));
312
+ console.log(`\n✨ Done! (${success}/${selected.length})\n`);
313
+ return;
314
+ }
315
+ // Index
316
+ if (command === 'index') {
317
+ const codebasePath = args[1];
318
+ if (!codebasePath) {
319
+ console.error('\n❌ Usage: npx codebaxing index <path>\n');
320
+ process.exit(1);
321
+ }
322
+ await runIndex(codebasePath);
323
+ return;
324
+ }
325
+ // Search
326
+ if (command === 'search') {
327
+ const { query, path: searchPath, limit } = parseSearchArgs(args.slice(1));
328
+ if (!query) {
329
+ console.error('\n❌ Usage: npx codebaxing search <query> [--path <path>] [--limit <n>]\n');
330
+ process.exit(1);
331
+ }
332
+ await runSearch(query, { path: searchPath, limit });
333
+ return;
334
+ }
335
+ // Stats
336
+ if (command === 'stats') {
337
+ await runStats(args[1]);
338
+ return;
339
+ }
340
+ }
341
+ main().catch((err) => {
342
+ console.error('Error:', err.message);
343
+ process.exit(1);
344
+ });
345
+ //# sourceMappingURL=installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/cli/installer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "codebaxing",
3
- "version": "0.1.3",
3
+ "version": "0.2.1",
4
4
  "description": "MCP server for semantic code search. Index your codebase and search using natural language.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
8
- "codebaxing": "dist/mcp/server.js"
8
+ "codebaxing": "dist/cli/installer.js"
9
9
  },
10
10
  "files": [
11
11
  "dist",