mkctx 2.0.1 โ 3.0.0
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 +140 -135
- package/bin/mkctx.js +572 -374
- package/package.json +15 -6
package/README.md
CHANGED
|
@@ -4,93 +4,97 @@
|
|
|
4
4
|
<picture>
|
|
5
5
|
<source media="(prefers-color-scheme: dark)" srcset="./black-favicon.svg">
|
|
6
6
|
<source media="(prefers-color-scheme: light)" srcset="./white-favicon.svg">
|
|
7
|
-
<img src="./black-favicon.svg" alt="
|
|
7
|
+
<img src="./black-favicon.svg" alt="mkctx logo" width="150">
|
|
8
8
|
</picture>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
|
-
A powerful command-line tool that generates comprehensive markdown context files from your project code, perfect for
|
|
12
|
+
A powerful command-line tool that generates comprehensive markdown context files from your project code, perfect for AI prompts and code analysis.
|
|
13
13
|
</p>
|
|
14
14
|
|
|
15
15
|
<p align="center">
|
|
16
16
|
<a href="https://www.npmjs.com/package/mkctx"><img src="https://img.shields.io/npm/v/mkctx.svg" alt="npm version"></a>
|
|
17
17
|
<a href="https://www.npmjs.com/package/mkctx"><img src="https://img.shields.io/npm/dm/mkctx.svg" alt="npm downloads"></a>
|
|
18
|
-
<a href="https://github.com/
|
|
18
|
+
<a href="https://github.com/pnkkzero/mkctx/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/mkctx.svg" alt="license"></a>
|
|
19
19
|
</p>
|
|
20
20
|
|
|
21
|
-
## Features
|
|
21
|
+
## โจ Features
|
|
22
22
|
|
|
23
23
|
- ๐ **Multi-platform** - Works on Windows, macOS, and Linux
|
|
24
24
|
- ๐ **Smart Ignoring** - Respects custom ignore patterns and common system files
|
|
25
25
|
- โ๏ธ **Configurable** - Customize source directories, output locations, and comments
|
|
26
26
|
- ๐ฏ **AI-Friendly** - Outputs code in markdown format ideal for AI prompts
|
|
27
|
-
- ๐ง **Zero Dependencies** - Pure Node.js, no external dependencies
|
|
28
27
|
- ๐จ **Syntax Highlighting** - Proper language detection for code blocks
|
|
29
28
|
- ๐ **Dynamic Mode** - Interactive path selection when needed
|
|
29
|
+
- ๐ **Context Statistics** - Token estimation and file analysis
|
|
30
30
|
|
|
31
|
-
## Installation
|
|
31
|
+
## ๐ฆ Installation
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
34
|
npm install -g mkctx
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
### Requirements
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
- **Node.js** 18.0+
|
|
40
|
+
|
|
41
|
+
## ๐ Quick Start
|
|
42
|
+
|
|
43
|
+
### Interactive Mode (Recommended)
|
|
40
44
|
|
|
41
45
|
```bash
|
|
42
46
|
mkctx
|
|
43
47
|
```
|
|
44
48
|
|
|
45
|
-
|
|
49
|
+
This opens an interactive menu where you can:
|
|
50
|
+
1. Generate context from config file or dynamically
|
|
51
|
+
2. View context statistics
|
|
52
|
+
3. Save the context to a file
|
|
53
|
+
|
|
54
|
+
### Create Configuration File
|
|
46
55
|
|
|
47
56
|
```bash
|
|
48
57
|
mkctx config
|
|
49
58
|
```
|
|
50
59
|
|
|
51
|
-
### Show
|
|
60
|
+
### Show Help
|
|
52
61
|
|
|
53
62
|
```bash
|
|
54
63
|
mkctx help
|
|
55
64
|
```
|
|
56
65
|
|
|
57
|
-
## Usage
|
|
58
|
-
|
|
59
|
-
### Basic Usage
|
|
66
|
+
## ๐ Usage
|
|
60
67
|
|
|
61
|
-
Run `mkctx` in your project root to generate a `context.md` file containing all your project code:
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
cd your-project/
|
|
65
|
-
mkctx
|
|
66
68
|
```
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
70
|
+
โ ๐ mkctx - Make Context โ
|
|
71
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
72
|
+
|
|
73
|
+
? What would you like to do?
|
|
74
|
+
โฏ ๐ Generate from config file
|
|
75
|
+
๐ Generate dynamically (choose path)
|
|
76
|
+
โ๏ธ View configuration
|
|
77
|
+
โ Exit
|
|
72
78
|
```
|
|
73
|
-
๐ Dynamic mode enabled
|
|
74
|
-
Current directory: /home/user/my-project
|
|
75
|
-
Enter path (or press Enter for './src'): app/components
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### Configuration
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
After generating context:
|
|
81
81
|
|
|
82
|
-
```
|
|
83
|
-
|
|
82
|
+
```
|
|
83
|
+
๐ Context Summary:
|
|
84
|
+
Files: 42
|
|
85
|
+
Lines: 3,847
|
|
86
|
+
Size: 156.23 KB
|
|
87
|
+
Est. tokens: ~39,058
|
|
88
|
+
|
|
89
|
+
? What would you like to do with this context?
|
|
90
|
+
โฏ ๐พ Save context to file
|
|
91
|
+
๐ Back to main menu
|
|
92
|
+
โ Exit
|
|
84
93
|
```
|
|
85
94
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
- `mkctx.config.json` - Configuration file
|
|
89
|
-
- `mkctx/` directory - Output folder (added to .gitignore)
|
|
90
|
-
|
|
91
|
-
## Configuration Options
|
|
95
|
+
## โ๏ธ Configuration
|
|
92
96
|
|
|
93
|
-
|
|
97
|
+
### Project Configuration (`mkctx.config.json`)
|
|
94
98
|
|
|
95
99
|
```json
|
|
96
100
|
{
|
|
@@ -98,26 +102,34 @@ The `mkctx.config.json` file supports the following options:
|
|
|
98
102
|
"ignore": "*.log, temp/, node_modules/, .git/, dist/, build/",
|
|
99
103
|
"output": "./mkctx",
|
|
100
104
|
"first_comment": "/* Project Context */",
|
|
101
|
-
"last_comment": "/* End of Context */"
|
|
102
|
-
"dynamic": false
|
|
105
|
+
"last_comment": "/* End of Context */"
|
|
103
106
|
}
|
|
104
107
|
```
|
|
105
108
|
|
|
106
|
-
| Option
|
|
107
|
-
|
|
108
|
-
| `src`
|
|
109
|
-
| `ignore`
|
|
110
|
-
| `output`
|
|
111
|
-
| `first_comment` | Comment
|
|
112
|
-
| `last_comment`
|
|
113
|
-
| `dynamic` | Prompt for path on each run | `false` |
|
|
109
|
+
| Option | Description | Default |
|
|
110
|
+
|--------|-------------|---------|
|
|
111
|
+
| `src` | Source directory to scan | `"."` |
|
|
112
|
+
| `ignore` | Comma-separated patterns to ignore | See defaults |
|
|
113
|
+
| `output` | Output directory for context file | `"./mkctx"` |
|
|
114
|
+
| `first_comment` | Comment at the beginning | `"/* Project Context */"` |
|
|
115
|
+
| `last_comment` | Comment at the end | `"/* End of Context */"` |
|
|
114
116
|
|
|
115
|
-
##
|
|
117
|
+
## ๐ง CLI Options
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
mkctx # Interactive mode (recommended)
|
|
121
|
+
mkctx config # Create configuration file
|
|
122
|
+
mkctx help # Show help message
|
|
123
|
+
mkctx version # Show version
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## ๐ Ignore Patterns
|
|
116
127
|
|
|
117
128
|
mkctx supports several pattern types:
|
|
118
129
|
|
|
119
130
|
- **Wildcards**: `*.log`, `*.test.js`, `*.spec.ts`
|
|
120
131
|
- **Directories**: `temp/`, `dist/`, `build/`
|
|
132
|
+
- **Glob patterns**: `**/.cache/`, `**/node_modules/`
|
|
121
133
|
- **Exact match**: `config.local.json`
|
|
122
134
|
|
|
123
135
|
### Default System Ignores
|
|
@@ -125,105 +137,88 @@ mkctx supports several pattern types:
|
|
|
125
137
|
These are always ignored automatically:
|
|
126
138
|
|
|
127
139
|
- `.git`, `.svn`, `.hg`
|
|
128
|
-
- `node_modules`
|
|
140
|
+
- `node_modules`, `__pycache__`
|
|
129
141
|
- `.DS_Store`, `Thumbs.db`
|
|
130
|
-
- `__pycache__`, `.pytest_cache`
|
|
131
142
|
- `.vscode`, `.idea`
|
|
143
|
+
- Binary files, images, archives
|
|
132
144
|
|
|
133
|
-
## Output Format
|
|
145
|
+
## ๐ Output Format
|
|
134
146
|
|
|
135
|
-
The generated `context.md` file contains your project code
|
|
147
|
+
The generated `context.md` file contains your project code:
|
|
136
148
|
|
|
137
149
|
````markdown
|
|
138
|
-
|
|
150
|
+
/* Project Context */
|
|
151
|
+
|
|
152
|
+
## Project Structure
|
|
139
153
|
|
|
140
|
-
```javascript
|
|
141
|
-
// src/index.js
|
|
142
|
-
console.log("Hello World!");
|
|
143
154
|
```
|
|
155
|
+
๐ src/
|
|
156
|
+
๐ src/components/
|
|
157
|
+
๐ src/utils/
|
|
144
158
|
|
|
145
|
-
|
|
146
|
-
// src/utils/helpers.ts
|
|
147
|
-
export function helper() {
|
|
148
|
-
return true;
|
|
149
|
-
}
|
|
159
|
+
42 files total
|
|
150
160
|
```
|
|
151
161
|
|
|
152
|
-
|
|
153
|
-
````
|
|
162
|
+
## Source Files
|
|
154
163
|
|
|
155
|
-
|
|
164
|
+
### src/index.ts
|
|
156
165
|
|
|
157
|
-
|
|
166
|
+
```typescript
|
|
167
|
+
import { App } from './app';
|
|
158
168
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
"src": "./src",
|
|
162
|
-
"ignore": "*.test.js, __tests__/, *.spec.ts",
|
|
163
|
-
"output": "./docs",
|
|
164
|
-
"first_comment": "/* My App Codebase */"
|
|
165
|
-
}
|
|
169
|
+
const app = new App();
|
|
170
|
+
app.start();
|
|
166
171
|
```
|
|
167
172
|
|
|
168
|
-
###
|
|
173
|
+
### src/utils/helpers.ts
|
|
169
174
|
|
|
170
|
-
```
|
|
171
|
-
{
|
|
172
|
-
|
|
173
|
-
"ignore": "node_modules/, .git/, *.md, package-lock.json, yarn.lock",
|
|
174
|
-
"first_comment": "## Project Overview\n\nThis is the complete codebase.",
|
|
175
|
-
"last_comment": "## End of Codebase"
|
|
175
|
+
```typescript
|
|
176
|
+
export function helper() {
|
|
177
|
+
return true;
|
|
176
178
|
}
|
|
177
179
|
```
|
|
178
180
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
```json
|
|
182
|
-
{
|
|
183
|
-
"src": "./src",
|
|
184
|
-
"dynamic": true
|
|
185
|
-
}
|
|
186
|
-
```
|
|
181
|
+
/* End of Context */
|
|
182
|
+
````
|
|
187
183
|
|
|
188
|
-
## Supported Languages
|
|
184
|
+
## ๐จ Supported Languages
|
|
189
185
|
|
|
190
186
|
mkctx automatically detects and applies proper syntax highlighting for:
|
|
191
187
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
- **
|
|
210
|
-
- **
|
|
211
|
-
- **
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
### Command not found
|
|
188
|
+
| Category | Extensions |
|
|
189
|
+
|----------|------------|
|
|
190
|
+
| **JavaScript/TypeScript** | `.js`, `.ts`, `.jsx`, `.tsx`, `.mjs`, `.cjs` |
|
|
191
|
+
| **Python** | `.py`, `.pyw` |
|
|
192
|
+
| **Go** | `.go` |
|
|
193
|
+
| **Rust** | `.rs` |
|
|
194
|
+
| **Java/Kotlin** | `.java`, `.kt`, `.scala` |
|
|
195
|
+
| **C/C++** | `.c`, `.cpp`, `.h`, `.hpp` |
|
|
196
|
+
| **PHP** | `.php` |
|
|
197
|
+
| **Ruby** | `.rb`, `.rake` |
|
|
198
|
+
| **Shell** | `.sh`, `.bash`, `.zsh`, `.ps1` |
|
|
199
|
+
| **Web** | `.html`, `.css`, `.scss`, `.vue`, `.svelte` |
|
|
200
|
+
| **Data** | `.json`, `.yaml`, `.yml`, `.xml`, `.toml` |
|
|
201
|
+
| **And many more...** | `.sql`, `.graphql`, `.proto`, `.prisma`, `.sol` |
|
|
202
|
+
|
|
203
|
+
## ๐ก Use Cases
|
|
204
|
+
|
|
205
|
+
- **๐ค AI Code Analysis** - Feed your codebase to ChatGPT, Claude, or other AI tools
|
|
206
|
+
- **๐ Code Understanding** - Share project overview for quick understanding
|
|
207
|
+
- **๐ฅ Code Reviews** - Share project overview with reviewers
|
|
208
|
+
- **๐ Onboarding** - Help new developers understand the project
|
|
209
|
+
- **๐ Documentation** - Generate a snapshot of your codebase
|
|
210
|
+
|
|
211
|
+
## ๐ฅ๏ธ Platform Support
|
|
212
|
+
|
|
213
|
+
| Platform | Status |
|
|
214
|
+
|----------|--------|
|
|
215
|
+
| **macOS** | โ
Full support |
|
|
216
|
+
| **Linux** | โ
Full support |
|
|
217
|
+
| **Windows** | โ
Full support |
|
|
218
|
+
|
|
219
|
+
## ๐ง Troubleshooting
|
|
220
|
+
|
|
221
|
+
### Command Not Found
|
|
227
222
|
|
|
228
223
|
If `mkctx` is not found after installation:
|
|
229
224
|
|
|
@@ -231,7 +226,7 @@ If `mkctx` is not found after installation:
|
|
|
231
226
|
2. Try: `npm bin -g` to see where global packages are installed
|
|
232
227
|
3. Restart your terminal
|
|
233
228
|
|
|
234
|
-
### Permission
|
|
229
|
+
### Permission Errors (Unix)
|
|
235
230
|
|
|
236
231
|
```bash
|
|
237
232
|
sudo npm install -g mkctx
|
|
@@ -239,24 +234,34 @@ sudo npm install -g mkctx
|
|
|
239
234
|
|
|
240
235
|
Or fix npm permissions: https://docs.npmjs.com/resolving-eacces-permissions-errors
|
|
241
236
|
|
|
242
|
-
## Changelog
|
|
237
|
+
## ๐ Changelog
|
|
238
|
+
|
|
239
|
+
### v3.0.0
|
|
240
|
+
|
|
241
|
+
- ๐ฏ Simplified to focus on context generation
|
|
242
|
+
- ๐๏ธ Removed Ollama chat integration
|
|
243
|
+
- โก Faster startup and smaller footprint
|
|
244
|
+
- ๐งน Cleaner codebase
|
|
243
245
|
|
|
244
|
-
### v2.
|
|
246
|
+
### v2.x
|
|
245
247
|
|
|
246
|
-
-
|
|
247
|
-
-
|
|
248
|
-
- Improved language detection
|
|
249
|
-
- Better ignore pattern handling
|
|
250
|
-
- Zero external dependencies
|
|
248
|
+
- Ollama AI chat integration (removed in v3)
|
|
249
|
+
- Interactive chat interface
|
|
251
250
|
|
|
252
251
|
### v1.x
|
|
253
252
|
|
|
254
253
|
- Initial Go-based implementation
|
|
255
254
|
|
|
256
|
-
## Contributing
|
|
255
|
+
## ๐ค Contributing
|
|
257
256
|
|
|
258
257
|
Contributions are welcome! Please feel free to submit pull requests or open issues.
|
|
259
258
|
|
|
260
|
-
## License
|
|
259
|
+
## ๐ License
|
|
261
260
|
|
|
262
261
|
MIT License - see [LICENSE](LICENSE) file for details.
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
<p align="center">
|
|
266
|
+
Made with โค๏ธ for developers who love AI-assisted coding
|
|
267
|
+
</p>
|