DEV Community

sakshsky
sakshsky

Posted on

🧹 repomeld v1.1: Finally, a Tool That Knows What NOT to Include

Stop polluting your AI context with jQuery, Bootstrap, and 47MB of vendor code.


The Silent Killer of AI Context

You run a tool to combine your codebase into a single file.

You paste it into ChatGPT.

The AI responds with:

"I see you're using Bootstrap 5.3.0, jQuery 3.6.0, Lodash 4.17.21, Moment.js 2.29.4, and 47 other libraries. Your actual code is 12% of this file."

You've just wasted 80% of your context window on public libraries the AI already knows.


The Problem with "Combine Everything"

Most repo-combining tools are dumb:

  • They include bootstrap.min.css (178KB of minified CSS)
  • They include jquery.min.js (87KB of library code)
  • They include package-lock.json (thousands of lines)
  • They include every single vendor file you've ever touched

Your 50KB of actual business logic gets lost in 5MB of noise.


Enter repomeld 🔥 with Smart Auto-Ignore

repomeld ships with a curated ignore list of 200+ common public libraries and vendor files.

It automatically excludes:

Category Examples
CSS Frameworks Bootstrap, Tailwind, Bulma, Foundation, Materialize, Semantic UI
JavaScript Libraries jQuery, Lodash, Moment, Axios, GSAP, Three.js, D3, Chart.js
UI Components Select2, Flatpickr, DataTables, Toastr, SweetAlert, Lightbox
Rich Text Editors Quill, TinyMCE, CKEditor, CodeMirror
Maps & Players Leaflet, Mapbox GL, Video.js, Plyr, Swiper, Slick
Icons Font Awesome, RemixIcon, Boxicons, Ionicons, Lucide
Admin Templates AdminLTE, Metronic, CoreUI, Gentelella
Build Output dist/, build/, .next/, coverage/
Project Meta package.json, README.md, lock files

Your output stays focused on YOUR code. 🔥


Before & After: The Real Difference

Without smart ignore (other tools):

repomeld_output.txt (4.2 MB)
├── node_modules/jquery/dist/jquery.min.js (87 KB) ❌
├── node_modules/bootstrap/dist/css/bootstrap.min.css (178 KB) ❌
├── node_modules/lodash/lodash.min.js (72 KB) ❌
├── package-lock.json (847 KB) ❌
├── dist/bundle.js (1.2 MB) ❌
└── src/ (your actual 50 KB of code) ✅
Enter fullscreen mode Exit fullscreen mode

4.2 MB of noise. 1% useful content.

With repomeld:

repomeld_output.txt (52 KB)
├── src/index.js ✅
├── src/components/Button.js ✅
├── src/utils/helpers.js ✅
└── src/styles/custom.css ✅
Enter fullscreen mode Exit fullscreen mode

52 KB of signal. 100% your code.


But What If I Need a Vendor File?

Good question! Sometimes you've customized a library and need to include it.

repomeld has you covered with --force-include:

# Include your customized Bootstrap even though it's normally ignored
repomeld --force-include bootstrap

# Include multiple overrides
repomeld --force-include jquery vendor bootstrap

# Combine with other options
repomeld --force-include select2 --style markdown --output context.md
Enter fullscreen mode Exit fullscreen mode

--force-include matches by name substring, so --force-include bootstrap un-ignores:

  • bootstrap.min.css
  • bootstrap.bundle.min.js
  • bootstrap-icons.css
  • Any file with "bootstrap" in the name

Customize Your Own Ignore List

Place a repomeld.ignore.json in your project root to override or extend the built-in list:

{
  "ignore": [
    "my-custom-vendor-folder",
    "generated-report.html",
    "legacy-library.js"
  ]
}
Enter fullscreen mode Exit fullscreen mode

repomeld looks for config in this order:

  1. Your project's repomeld.ignore.json (overrides everything)
  2. Built-in repomeld.ignore.json (200+ common libs)
  3. Hardcoded defaults (always skip binaries, .git, node_modules)

What Gets Auto-Ignored (Full Categories)

📦 Package Managers

  • node_modules/, bower_components/, vendor/, libs/, plugins/
  • package-lock.json, yarn.lock, pnpm-lock.yaml, composer.lock

🎨 CSS Frameworks

  • Bootstrap, Tailwind, Bulma, Foundation, Materialize, Semantic UI, UIkit, Pure.css, Milligram, Skeleton, Tachyons

⚡ JavaScript Libraries

  • jQuery, Zepto, Lodash, Underscore, Moment, Day.js, Axios, SuperAgent, Request, Fetch polyfill

🎮 Animation & Graphics

  • GSAP, Three.js, D3.js, Chart.js, ApexCharts, ECharts, Anime.js, Velocity.js, Mo.js, P5.js, CanvasJS

🖼️ UI Components

  • Select2, Flatpickr, Datepicker, Choices.js, Tom Select, DataTables, ag-Grid, Handsontable

🔔 Notifications & Alerts

  • Toastr, Noty, SweetAlert, PNotify, Notie, Alertify

📝 Rich Text Editors

  • Quill, TinyMCE, CKEditor, CodeMirror, Ace Editor, Monaco Editor, Summernote, Froala Editor

🖱️ Carousels & Sliders

  • Swiper, Slick, Owl Carousel, Flickity, Glide.js, Splide

🗺️ Maps & Geospatial

  • Leaflet, Mapbox GL, Google Maps API, OpenLayers, Cesium

🎥 Video & Audio Players

  • Video.js, Plyr, JW Player, MediaElement.js, Howler.js, Wavesurfer.js

🔧 Utilities

  • Lazysizes, Lottie, Particles.js, Typed.js, SortableJS, Masonry, Isotope, Packery, imagesLoaded, Clipboard.js

🖌️ Syntax Highlighting

  • Prism.js, Highlight.js, Rainbow, Prettify

📊 Icons & Fonts

  • Font Awesome, RemixIcon, Boxicons, Ionicons, Lucide, Feather Icons, Heroicons, Material Icons, Bootstrap Icons

🏗️ Admin & Dashboard Templates

  • AdminLTE, Metronic, CoreUI, Gentelella, Tabler, Volt, Argon, Now UI, Paper Dashboard

🔨 Build Artifacts

  • dist/, build/, .next/, .nuxt/, .output/, coverage/, .nyc_output/, .cache/, .parcel-cache/

📄 Meta Files

  • package.json, README.md, LICENSE, CHANGELOG.md, .gitignore, .dockerignore, .eslintrc, .prettierrc

🔐 Environment & Secrets

  • .env, .env.local, .env.production, .env.development, .secret, .key, .pem

💾 Binaries & Media

  • *.jpg, *.png, *.gif, *.svg (except inline), *.woff, *.woff2, *.ttf, *.eot, *.ico, *.pdf, *.zip, *.tar.gz

Real-World Example: React + Bootstrap Project

Project structure:

my-app/
├── node_modules/ (300+ libraries, 150MB)
├── public/
│   └── bootstrap.min.css (178KB)
├── src/
│   ├── components/
│   ├── hooks/
│   └── utils/
└── package-lock.json (847KB)
Enter fullscreen mode Exit fullscreen mode

Running repomeld:

repomeld --style markdown --output context.md
Enter fullscreen mode Exit fullscreen mode

Output file:

  • ❌ No node_modules/
  • ❌ No bootstrap.min.css (it's a public CDN library)
  • ❌ No package-lock.json
  • ✅ Only src/ folder contents
  • ✅ File size: 48KB instead of 151MB

Result: ChatGPT sees only your React components, hooks, and utilities – not the 150MB of noise.


Why This Matters for AI

AI models have context windows (token limits):

Model Tokens Approx. chars
GPT-3.5 4K ~3,000 words
GPT-4 8K-32K ~6,000-24,000 words
Claude 3 200K ~150,000 words
Gemini 1.5 1M ~750,000 words

Every token counts.

If you waste 80% of your context on jQuery and Bootstrap:

  • Less room for your actual code
  • More irrelevant information for the AI
  • Worse answers, more hallucinations

repomeld ensures 100% of your context window contains YOUR code.


Contribute to the Ignore List

Found a popular library that should be ignored by default?

Open a PR! Add it to repomeld.ignore.json and help the community:

{
  "ignore": [
    "your-new-library.min.js",
    "some-common-cdn.css"
  ]
}
Enter fullscreen mode Exit fullscreen mode

The more we add, the smarter repomeld becomes for everyone.


Quick Start

# Install
npm install -g repomeld

# Run in your project (auto-ignores 200+ libraries)
cd your-project
repomeld

# Check what gets ignored
repomeld --dry-run

# Force-include a library you've customized
repomeld --force-include bootstrap

# Use your own ignore list
echo '{"ignore": ["custom-vendor"]}' > repomeld.ignore.json
repomeld
Enter fullscreen mode Exit fullscreen mode

The Bottom Line

Don't let vendor noise kill your AI context.

repomeld ships with 200+ smart ignores so your output stays focused on:

  • ✅ Your business logic
  • ✅ Your components
  • ✅ Your unique code

Not on:

  • ❌ jQuery (the AI already knows it)
  • ❌ Bootstrap (the AI already knows it)
  • ❌ 150MB of node_modules (the AI doesn't need it)

Clean context. Better answers. Faster debugging. 🔥


Try repomeld Today

npm install -g repomeld
cd your-project
repomeld --style markdown --output clean_context.md
Enter fullscreen mode Exit fullscreen mode

Then paste it into ChatGPT or Claude and ask:

"Based ONLY on my code (not the libraries), what's the biggest improvement I can make?"

You'll get answers about YOUR code. Not about Bootstrap. 🎯


Tags for dev.to:

ai, productivity, javascript, nodejs, chatgpt, claude, opensource, tooling, clean-code

Top comments (0)