<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: sakshsky</title>
    <description>The latest articles on Forem by sakshsky (@sakshsky_89).</description>
    <link>https://forem.com/sakshsky_89</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3876072%2F0978dd4c-073f-462a-b807-bcb869b57f6a.png</url>
      <title>Forem: sakshsky</title>
      <link>https://forem.com/sakshsky_89</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sakshsky_89"/>
    <language>en</language>
    <item>
      <title>I built reqscan — a zero-dependency CLI to manage your Node.js dependencies</title>
      <dc:creator>sakshsky</dc:creator>
      <pubDate>Mon, 13 Apr 2026 09:18:28 +0000</pubDate>
      <link>https://forem.com/sakshsky_89/i-built-reqscan-a-zero-dependency-cli-to-manage-your-nodejs-dependencies-47nl</link>
      <guid>https://forem.com/sakshsky_89/i-built-reqscan-a-zero-dependency-cli-to-manage-your-nodejs-dependencies-47nl</guid>
      <description>&lt;p&gt;Ever opened a Node.js project, ran it, and got hit with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Error: Cannot find module 'axios'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You check &lt;code&gt;package.json&lt;/code&gt;. It's not there. You add it. Then five minutes later, a different file throws the same error for a different package. You repeat the process three more times before the app actually starts.&lt;/p&gt;

&lt;p&gt;Or the opposite: your &lt;code&gt;package.json&lt;/code&gt; has 40 entries and you're pretty sure half of them haven't been imported anywhere in months — but you don't want to manually grep through 200 files to find out.&lt;/p&gt;

&lt;p&gt;I got tired of this. So I built &lt;strong&gt;reqscan&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is reqscan?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;reqscan&lt;/strong&gt; is a zero-dependency CLI tool that scans your Node.js project, finds every package you're importing across all your source files, and compares it against your &lt;code&gt;package.json&lt;/code&gt;. It tells you exactly what's missing, what's unused, and lets you fix everything in one command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx reqscan check
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. Point it at any project and it gives you the full picture.&lt;/p&gt;




&lt;h2&gt;
  
  
  A real example
&lt;/h2&gt;

&lt;p&gt;Say you have a project with these files scattered around:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// src/api.js&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;axios&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;axios&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;v4&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;uuidv4&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;uuid&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// src/db.js&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;mongoose&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;mongoose&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// lib/utils.ts&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;format&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;date-fns&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@myorg/types&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And your &lt;code&gt;package.json&lt;/code&gt; only declares &lt;code&gt;mongoose&lt;/code&gt; and &lt;code&gt;jest&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Running &lt;code&gt;reqscan check&lt;/code&gt; gives you:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;📦 Project: my-app
──────────────────────────────────────────────────
Summary
  Total imports found   : 5
  Declared in pkg.json  : 2
  Already installed     : 1
  Missing (not declared): 4

❌ Missing Packages (not in package.json)
──────────────────────────────────────────────────
  ✗ axios
  ✗ uuid
  ✗ date-fns
  ✗ @myorg/types

💡 Run this to install all missing packages:
   npm install axios uuid date-fns @myorg/types

✅ Already Declared Packages
──────────────────────────────────────────────────
  ✓ mongoose   ^7.0.0

⚠️  Declared but NOT imported in source (possibly unused)
──────────────────────────────────────────────────
  ~ jest (devDependencies)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then you just run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx reqscan &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Done. All four packages installed in one shot.&lt;/p&gt;




&lt;h2&gt;
  
  
  The commands
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reqscan check&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Scan and report — missing, present, unused&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reqscan install&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install all missing packages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reqscan clean&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove declared-but-never-imported packages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reqscan fix&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Install missing + clean unused in one go&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reqscan audit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Full health report with a score&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reqscan list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Every dependency with its current status&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The one I use most day-to-day is &lt;code&gt;reqscan fix&lt;/code&gt;. Drop into any project, run it, and your dependencies are clean.&lt;/p&gt;




&lt;h2&gt;
  
  
  What it detects
&lt;/h2&gt;

&lt;p&gt;reqscan understands every import style you'd encounter in a modern JS/TS codebase:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// CommonJS&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;express&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;express&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;some-pkg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// ESM&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;something&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;lodash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;ns&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ramda&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Side-effect imports&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;reflect-metadata&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Dynamic imports&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;mod&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;dynamic-pkg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// TypeScript type imports (still a real dependency!)&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@myorg/types&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Config&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;some-lib&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Re-exports&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;helper&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;shared-utils&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It also strips comments before scanning, so commented-out imports don't generate false positives. Scoped packages (&lt;code&gt;@babel/core&lt;/code&gt;) and subpath imports (&lt;code&gt;date-fns/format&lt;/code&gt; → &lt;code&gt;date-fns&lt;/code&gt;) are both handled correctly.&lt;/p&gt;

&lt;p&gt;Built-ins (&lt;code&gt;fs&lt;/code&gt;, &lt;code&gt;path&lt;/code&gt;, &lt;code&gt;node:crypto&lt;/code&gt;, etc.) are filtered out automatically. So are &lt;code&gt;node_modules&lt;/code&gt;, &lt;code&gt;dist&lt;/code&gt;, &lt;code&gt;.next&lt;/code&gt;, and the other usual suspects.&lt;/p&gt;




&lt;h2&gt;
  
  
  Flags that make it CI-friendly
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Preview what would change — no files touched&lt;/span&gt;
reqscan fix &lt;span class="nt"&gt;--dry-run&lt;/span&gt;

&lt;span class="c"&gt;# Install missing packages as devDependencies&lt;/span&gt;
reqscan &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--save-dev&lt;/span&gt;

&lt;span class="c"&gt;# Remove unused without the confirmation prompt (great for scripts)&lt;/span&gt;
reqscan clean &lt;span class="nt"&gt;--force&lt;/span&gt;

&lt;span class="c"&gt;# Machine-readable output for tooling&lt;/span&gt;
reqscan audit &lt;span class="nt"&gt;--json&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;--json&lt;/code&gt; flag is particularly useful if you want to build on top of reqscan — pipe it into another tool, write it to a file, diff it across branches, whatever.&lt;/p&gt;




&lt;h2&gt;
  
  
  Use it programmatically
&lt;/h2&gt;

&lt;p&gt;reqscan also exposes a clean API if you want to integrate it into your own tooling:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;scanProject&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;reqscan&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;scanProject&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./my-app&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;missing&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;   &lt;span class="c1"&gt;// ['axios', 'uuid']&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;unused&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;    &lt;span class="c1"&gt;// ['jest']&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;present&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;   &lt;span class="c1"&gt;// ['express', 'mongoose']&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Zero config, returns plain arrays. Easy to plug into a custom script, a GitHub Action, or a monorepo tool.&lt;/p&gt;




&lt;h2&gt;
  
  
  Zero dependencies
&lt;/h2&gt;

&lt;p&gt;The whole thing is zero external dependencies. No third-party parsers, no &lt;code&gt;commander&lt;/code&gt;, no &lt;code&gt;chalk&lt;/code&gt;. The bundle is just the source files — under 300 lines of scanner logic, a small color helper that respects &lt;code&gt;NO_COLOR&lt;/code&gt; and non-TTY environments, and the CLI entry point.&lt;/p&gt;

&lt;p&gt;That means it installs instantly, works anywhere Node ≥ 14 runs, and won't pollute your &lt;code&gt;node_modules&lt;/code&gt; with its own transitive deps.&lt;/p&gt;




&lt;h2&gt;
  
  
  Install it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Global (recommended for everyday use):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; reqscan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Or just use npx — no install needed:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx reqscan check
npx reqscan fix
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Or add it to a project for CI:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--save-dev&lt;/span&gt; reqscan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"deps:check"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"reqscan check"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"deps:fix"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"reqscan fix --force"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;A few things on the roadmap:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;reqscan outdated&lt;/code&gt; — surface packages with newer versions available&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;reqscan upgrade&lt;/code&gt; — update outdated packages interactively&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.reqscanrc&lt;/code&gt; config file for per-project ignore lists&lt;/li&gt;
&lt;li&gt;Monorepo / workspace support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have a use case reqscan doesn't handle, or hit a false positive/negative on a pattern it's not detecting, open an issue. Real-world projects have edge cases I haven't seen yet.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;npm:&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/reqscan" rel="noopener noreferrer"&gt;npmjs.com/package/reqscan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Give it a try and let me know what you think in the comments. And if it saves you time, a ⭐ on GitHub goes a long way.&lt;/p&gt;

</description>
      <category>cli</category>
      <category>node</category>
      <category>showdev</category>
      <category>tooling</category>
    </item>
    <item>
      <title>repomeld – Meld Your Entire Repo Into a Single File</title>
      <dc:creator>sakshsky</dc:creator>
      <pubDate>Mon, 13 Apr 2026 06:59:11 +0000</pubDate>
      <link>https://forem.com/sakshsky_89/repomeld-meld-your-entire-repo-into-a-single-file-31j8</link>
      <guid>https://forem.com/sakshsky_89/repomeld-meld-your-entire-repo-into-a-single-file-31j8</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;You're about to paste code into ChatGPT, Claude, or Gemini. But your project has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;20+ files&lt;/li&gt;
&lt;li&gt;Nested folders&lt;/li&gt;
&lt;li&gt;Complex logic spread everywhere&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do you paste &lt;strong&gt;one file at a time&lt;/strong&gt;?&lt;br&gt;&lt;br&gt;
Do you explain the folder structure manually?&lt;br&gt;&lt;br&gt;
Do you hope the AI understands how everything connects?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There's a better way.&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Meet repomeld 🔥
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;repomeld&lt;/code&gt; combines your &lt;strong&gt;entire repository&lt;/strong&gt; into a single, well-formatted file – perfect for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🤖 &lt;strong&gt;AI context injection&lt;/strong&gt; – Paste once, get better answers&lt;/li&gt;
&lt;li&gt;👥 &lt;strong&gt;Code reviews&lt;/strong&gt; – Share everything in one go&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;Documentation&lt;/strong&gt; – Generate readable snapshots&lt;/li&gt;
&lt;li&gt;💾 &lt;strong&gt;Archiving&lt;/strong&gt; – Preserve project state&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Quick Demo
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install globally&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; repomeld

&lt;span class="c"&gt;# Navigate to your project&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;your-awesome-project

&lt;span class="c"&gt;# Run repomeld&lt;/span&gt;
repomeld
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;That's it.&lt;/strong&gt; You'll get a &lt;code&gt;repomeld_output.txt&lt;/code&gt; file containing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Generated by repomeld v1.0.0
# Date     : 2024-01-15T10:30:00.000Z
# Source   : /your-awesome-project
# Files    : 24
# Lines    : 1842

TABLE OF CONTENTS
════════════════════════════════════════════════════════════
    1. src/index.ts
    2. src/utils/helpers.ts
    3. src/components/Button.tsx
    ...

────────────────────────────────────────────────────────────
  FILE: src/index.ts  [127 lines | 3.2 KB | typescript]
────────────────────────────────────────────────────────────

// Your actual code here...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Why repomeld?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;repomeld&lt;/th&gt;
&lt;th&gt;Manual copy-paste&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Table of contents&lt;/td&gt;
&lt;td&gt;✅ Auto-generated&lt;/td&gt;
&lt;td&gt;❌ Manual work&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File metadata (lines, size)&lt;/td&gt;
&lt;td&gt;✅ Included&lt;/td&gt;
&lt;td&gt;❌ Not included&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Binary file filtering&lt;/td&gt;
&lt;td&gt;✅ Smart skip&lt;/td&gt;
&lt;td&gt;❌ Messy output&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Large file limits&lt;/td&gt;
&lt;td&gt;✅ Configurable&lt;/td&gt;
&lt;td&gt;❌ Paste bombs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multiple output styles&lt;/td&gt;
&lt;td&gt;✅ 3 styles&lt;/td&gt;
&lt;td&gt;❌ Plain text only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dry-run preview&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Advanced Usage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Focus on specific file types
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Only JS/TS files&lt;/span&gt;
repomeld &lt;span class="nt"&gt;--ext&lt;/span&gt; js ts jsx tsx

&lt;span class="c"&gt;# Only files in src/&lt;/span&gt;
repomeld &lt;span class="nt"&gt;--include&lt;/span&gt; src/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Exclude what you don't need
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Skip test files and large folders&lt;/span&gt;
repomeld &lt;span class="nt"&gt;--exclude&lt;/span&gt; &lt;span class="nb"&gt;test &lt;/span&gt;spec __tests__ &lt;span class="nt"&gt;--ignore&lt;/span&gt; dist .next
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Markdown output (great for AI prompts)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;repomeld &lt;span class="nt"&gt;--style&lt;/span&gt; markdown &lt;span class="nt"&gt;--output&lt;/span&gt; context.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates beautifully formatted markdown:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## 📄 src/index.ts  [127 lines | 3.2 KB | typescript]&lt;/span&gt;

&lt;span class="p"&gt;```&lt;/span&gt;&lt;span class="nl"&gt;
&lt;/span&gt;
typescript
// Your code here


&lt;span class="p"&gt;```&lt;/span&gt;
&lt;span class="p"&gt;```&lt;/span&gt;&lt;span class="nl"&gt;
&lt;/span&gt;
`

### 4. Minimal style for quick sharing

```bash
repomeld --style minimal --no-toc
```

### 5. Preview without generating a file

```bash
repomeld --dry-run
# Shows: Would include 42 files (1.2 MB total)
```

### 6. Trim whitespace &amp;amp; skip lines

```bash
# Clean up files and remove headers/footers
repomeld --trim --lines-before 5 --lines-after 5
```

---

## What repomeld Auto-Ignores (So You Don't Have To)

- `node_modules/`, `.git/`, `dist/`, `build/`
- `.env`, `package-lock.json`, `yarn.lock`
- Binary files (images, executables)
- The output file itself (no infinite recursion!)

---

## Real-World Use Cases

### 🤖 **AI Code Assistant**
```bash
repomeld --style markdown --output ai_context.md
# Paste entire file → Ask "Add error handling to all functions"
# AI sees EVERYTHING. Gets EVERYTHING right.
```

### 👥 **Code Review on Slack/Discord**
```bash
repomeld --style minimal --no-toc --output review.txt
# Share one file. Reviewers scroll once.
```

### 📦 **Project Archiving**
```bash
repomeld --output archive_2024_01_15.txt
# Snapshot your entire codebase before major refactor
```

### 🔍 **Bug Reproduction**
```bash
repomeld --include src/ --exclude test --output bug_context.txt
# Attach to GitHub issue. No more "can you share more files?"
```

---

## Performance &amp;amp; Limits

- **Default max file size**: 500 KB (configurable)
- **Binary files**: Auto-skipped
- **Large repos**: Tested on 10k+ file projects

```bash
# Increase limit to 2 MB per file
repomeld --max-size 2000
```

---

## Installation Options

```bash
# Global install (recommended)
npm install -g repomeld

# Or run without installing
npx repomeld
```

---

## What Developers Are Saying

&amp;gt; "Finally, a tool that understands how developers actually use AI. repomeld saved me hours of manual file copying."  
&amp;gt; *– Senior Dev at SaaS startup*

&amp;gt; "The markdown output is *chef's kiss*. My AI coding sessions are 10x more productive now."  
&amp;gt; *– Open Source Contributor*

---

## Roadmap

- [ ] `.repomeldignore` file support
- [ ] ZIP output option
- [ ] Tree view visualization
- [ ] Git diff integration (only changed files)
- [ ] VS Code extension

---

## Contribute &amp;amp; Feedback

- 🐛 **Issues**: [GitHub Issues](https://github.com/yourusername/repomeld/issues)
- 💡 **Ideas**: Open a discussion
- ⭐ **Love it?**: Star the repo

---

## License

MIT – Use it anywhere, for anything.

---

## Get Started Now

```bash
npm install -g repomeld
cd your-project
repomeld
```

**That's 3 commands. Your entire codebase. One file. 🔥**

---

*Made for developers who talk to AI. Built with TypeScript. Works everywhere Node.js runs.*

---

## Tips for publishing on dev.to:

1. **Add a cover image** – Create a simple banner with "repomeld 🔥" and "Meld your entire repo into a single file"
2. **Use the canonical URL** – Link back to your GitHub repo
3. **Add tags**: `showdev`, `javascript`, `productivity`, `opensource`
4. **Include a "Try it now" button** – Use dev.to's button feature if available
5. **Embed a demo GIF** – Show repomeld in action (record terminal session)
6. **Cross-post** – Share on Twitter, LinkedIn, Reddit r/node, r/programming

The article is conversational, benefit-focused, and shows real value immediately – perfect for dev.to's audience! 🚀
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>ai</category>
      <category>cli</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
