explainthisrepo 0.25.0 → 0.26.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # ExplainThisRepo
2
2
 
3
- _The fastest way to understand any codebase in plain English using real project signals. Not blind AI summarization._
3
+ _The fastest way to understand any codebase in plain English using real project signals. Not blind AI guessing._
4
4
 
5
5
  ExplainThisRepo analyzes real project signals; configs, entrypoints, manifests, dependencies graph, file structure and high-signal files producing a clear, structured `EXPLAIN.md` that explains what the codebase actually does and how it is organized in plain English.
6
6
 
@@ -18,16 +18,19 @@ ExplainThisRepo analyzes real project signals; configs, entrypoints, manifests,
18
18
 
19
19
  - Understand any GitHub repository in seconds
20
20
  - Derives architectural summaries from repository structure and code signals.
21
- Not blind AI summarization.
22
- - Deterministic repo signal extractor that feeds LLMs correctly
21
+ Not blind AI guessing
22
+ - Deterministic repo signal extractor that feeds LLMs correctly. Signals first. LLM second
23
23
  - Translates complex code structures into plain English
24
24
  - Speeds up understanding of unfamiliar codebases
25
25
  - Solves the "**garbage in, garbage out**" problem specifically for codebases
26
26
  - Extract architecture signals from configs, entrypoints, and manifests
27
- - Works with GitHub repositories, local directories, private repositories, individual files and monorepos
27
+ - System map that shows you where to start, what matters and what to ignore
28
+ - Works with GitHub repositories, Local repositories, GitHub directories, local directories, GitHub files and local files
29
+ - Supports private repositories and monorepos
28
30
  - Zero-cloning and remote analysis
29
- - Outputs the explanation to an `EXPLAIN.md` file in your current directory, prints it directly in the terminal, or a specified output file (`.txt`, `.pdf`, `.docx`)
31
+ - Outputs the explanation to an `EXPLAIN.md` file in your current directory, prints it directly in the terminal, or a specified output file (`.txt`, `.pdf`, `.docx`, `.md`)
30
32
  - Multiple explanation modes (quick, simple, detailed)
33
+ - Additional tools: stack detection, repo map
31
34
 
32
35
  ## Installation
33
36
 
@@ -43,6 +46,7 @@ explainthisrepo owner/repo
43
46
  # explainthisrepo ./path/to/directory
44
47
  # explainthisrepo ./path/to/file.py
45
48
  # explainthisrepo owner/repo/path/to/file.py
49
+ # explainthisrepo owner/repo/path/to/directory
46
50
  ```
47
51
 
48
52
  Alternatively,
@@ -87,6 +91,7 @@ explainthisrepo owner/repo
87
91
  # explainthisrepo ./path/to/directory
88
92
  # explainthisrepo ./path/to/file.py
89
93
  # explainthisrepo owner/repo/path/to/file.py
94
+ # explainthisrepo owner/repo/path/to/directory
90
95
  </details>
91
96
  </pre>
92
97
  </code>
@@ -104,6 +109,7 @@ npx explainthisrepo owner/repo
104
109
  # npx explainthisrepo ./path/to/directory
105
110
  # npx explainthisrepo ./path/to/file.py
106
111
  # npx explainthisrepo owner/repo/path/to/file.py
112
+ # npx explainthisrepo owner/repo/path/to/directory
107
113
  </code>
108
114
  </pre>
109
115
  </details>
@@ -112,8 +118,8 @@ npx explainthisrepo owner/repo
112
118
 
113
119
  ExplainThisRepo uses a hybrid architecture:
114
120
 
115
- - Python → core implementaion (analysis, prompts, providers, output)
116
- - npm → ships prebuilt native binaries (no Python required)
121
+ - Python → core implementation (analysis, prompts, providers, output)
122
+ - npm → launches prebuilt native binaries (no Python install required)
117
123
  - pip → installs the full Python package
118
124
 
119
125
  > The npm and pip versions run the same core engine.
@@ -182,7 +188,7 @@ Run:
182
188
  explainthisrepo init
183
189
  ```
184
190
 
185
- For step-by-step instructions, see [docs/GITHUB_TOKEN.md](docs/GITHUB_TOKEN.md)
191
+ For step-by-step instructions, see [docs/GITHUB_TOKEN.md](https://github.com/calchiwo/ExplainThisRepo/blob/main/docs/GITHUB_TOKEN.md)
186
192
 
187
193
  ## Flag options
188
194
 
@@ -196,6 +202,8 @@ For step-by-step instructions, see [docs/GITHUB_TOKEN.md](docs/GITHUB_TOKEN.md)
196
202
 
197
203
  - `--stack` → Tech stack breakdown from repo signals
198
204
 
205
+ - `--map` → System map for understanding a codebase before changing it
206
+
199
207
  - `--version` → Check installed CLI version
200
208
 
201
209
  - `--help` → Show usage guide
@@ -206,7 +214,7 @@ For step-by-step instructions, see [docs/GITHUB_TOKEN.md](docs/GITHUB_TOKEN.md)
206
214
 
207
215
  - `--output` / `-o` → Specify output file or directory (default: `EXPLAIN.md`)
208
216
 
209
- ## Flexible Repository and Local Directory Input
217
+ ## Flexible Input Types
210
218
 
211
219
  Accepts various formats for repository input, full GitHub URLs (with or without https), `owner/repo` format, issue links, query strings, and SSH clone links
212
220
 
@@ -216,13 +224,14 @@ explainthisrepo github.com/owner/repo
216
224
  explainthisrepo https://github.com/owner/repo/issues/123
217
225
  explainthisrepo https://github.com/owner/repo?tab=readme
218
226
  explainthisrepo git@github.com:owner/repo.git
227
+ explainthisrepo owner/repo/path/to/directory
219
228
  explainthisrepo owner/repo/path/to/file.py
220
229
  explainthisrepo .
221
230
  explainthisrepo ./path/to/directory
222
231
  explainthisrepo ./path/to/file.py
223
232
  ```
224
233
 
225
- All inputs are normalized internally to `owner/repo`.
234
+ GitHub inputs are normalized internally to `owner/repo`.
226
235
 
227
236
  ## CLI aliases
228
237
 
@@ -318,6 +327,26 @@ explainthisrepo owner/repo --stack
318
327
  ```
319
328
  ![Stack detector Output](assets/stack-command-output.png)
320
329
 
330
+ ### Repo map
331
+
332
+ Navigation system map for understanding unfamiliar codebases that shows you where to start, what matters and what to ignore before touching it:
333
+
334
+ ```bash
335
+ explainthisrepo owner/repo --map
336
+ explainthisrepo . --map
337
+ ```
338
+
339
+ By default, repo map mode writes to `REPO_MAP.md`.
340
+
341
+ The map focuses on:
342
+
343
+ - where to start reading
344
+ - the likely main flow through the project
345
+ - important files and why they matter
346
+ - visible architecture boundaries
347
+ - files or folders to ignore first
348
+ - open questions that cannot be determined from repo signals
349
+
321
350
  ## Local Directory Analysis
322
351
 
323
352
  ExplainThisRepo can analyze local directories directly in the terminal, using the same modes and output formats as GitHub repositories
@@ -334,6 +363,7 @@ explainthisrepo . --quick
334
363
  explainthisrepo . --simple
335
364
  explainthisrepo . --detailed
336
365
  explainthisrepo . --stack
366
+ explainthisrepo . --map
337
367
  ```
338
368
 
339
369
  When analyzing a local directory:
@@ -347,7 +377,7 @@ This allows analysis of projects directly from the local filesystem, without req
347
377
 
348
378
  ## File Analysis
349
379
 
350
- ExplanThisRepo analyzes individual files directly
380
+ ExplainThisRepo analyzes individual files directly
351
381
 
352
382
  ```bash
353
383
  explainthisrepo ./path/to/file.py
@@ -384,9 +414,11 @@ explainthisrepo owner/repo/path/to/file.py --detailed
384
414
 
385
415
  When analyzing a GitHub file:
386
416
  - The file is fetched directly via the GitHub API
387
- - Only valid text files are processed (binary files are rejected)
388
- - File size is capped to prevent unsafe or truncated analysis
417
+ - Raw bytes are passed into a unified ingestion pipeline
418
+ - Binary detection, decoding, and size limits are handled in one place
419
+ - File ingestion is identical to local file analysis
389
420
  - The explanation focuses on the file’s purpose, logic, and behavior
421
+ - This removes divergence between local and GitHub file handling
390
422
 
391
423
  Input format must be:
392
424
 
@@ -399,6 +431,30 @@ This is different from local file analysis:
399
431
  ```bash
400
432
  explainthisrepo ./path/to/file.py
401
433
  ```
434
+
435
+ ## GitHub Directory Analysis
436
+
437
+ ExplainThisRepo can analyze a specific directory inside a GitHub repository without cloning it.
438
+
439
+ ```bash
440
+ explainthisrepo owner/repo/path/to/directory
441
+ ```
442
+ Supports all explanation modes:
443
+ ```bash
444
+ explainthisrepo owner/repo/path/to/directory --quick
445
+ explainthisrepo owner/repo/path/to/directory --simple
446
+ explainthisrepo owner/repo/path/to/directory --detailed
447
+ ```
448
+
449
+ When analyzing a GitHub directory:
450
+
451
+ - Directory contents are fetched via the GitHub API
452
+ - Only structure and metadata are used (no full repo fetch)
453
+ - Signals include files, subdirectories, and extension distribution
454
+ - The explanation focuses on the directory’s role and structure
455
+
456
+ `--stack` is not supported for directory targets.
457
+
402
458
  ### Custom output
403
459
 
404
460
  `--output`, `-o` → Specify output file or directory (default: `EXPLAIN.md`)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "explainthisrepo",
3
- "version": "0.25.0",
3
+ "version": "0.26.0",
4
4
  "description": "The fastest way to understand any codebase in plain English. Not blind AI summarization",
5
5
  "license": "MIT",
6
6
  "type": "module",