Skip to content

Bundle local code into a single LLM-friendly file from a single entrypoint.

License

Notifications You must be signed in to change notification settings

kirillleventcov/packlet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Packlet

A high-performance tool that bundles local code dependencies into a single markdown file by following import statements from an entry point.

What it does

Packlet traverses your codebase starting from any JavaScript or TypeScript file, discovers all locally imported files, and bundles them into a single document. Unlike tools that bundle entire repositories, Packlet only includes files that are actually imported, making it ideal for sharing specific features or debugging dependency chains.

Installation

cargo install packlet

Or build from source:

git clone https://github.com/kirillleventcov/packlet
cd packlet
cargo build --release
cargo install --path .

Usage

Bundle dependencies from an entry point:

packlet bundle src/index.ts

This creates index.packlet.md containing the dependency tree and all discovered local files.

Options

# Specify output location
packlet bundle src/app.tsx --output bundle.md

# Limit traversal depth
packlet bundle src/index.js --max-depth 3

# Filter by extensions
packlet bundle main.ts --extensions ts,tsx

# Visualize dependency tree only
packlet graph src/index.js

Features

Fast - Parallel dependency analysis using async Rust

Smart - Understands ES modules, CommonJS, dynamic imports, and TypeScript paths

Local-only - Excludes node_modules and external packages automatically

Framework-aware - Handles React, Vue, Svelte, and Angular patterns

Configurable - Control traversal depth, file types, and output format

Output Format

The generated markdown includes:

  1. A visual dependency tree showing the import relationships
  2. The complete contents of each discovered file
  3. Metadata about when the bundle was created

Example

Given this structure:

src/
  index.ts
  utils/helper.ts
  components/Button.tsx

Running packlet bundle src/index.ts produces a markdown file with the dependency tree and all three files' contents, properly formatted with syntax highlighting.

Supported Languages

Currently supports JavaScript and TypeScript with full understanding of:

  • ES6 imports/exports
  • CommonJS require/module.exports
  • Dynamic imports
  • TypeScript path mappings
  • JSX/TSX files

Configuration

Create packlet.toml in your project root for persistent settings:

[output]
format = "markdown"

[javascript]
resolution = "typescript"
tsconfig_path = "./tsconfig.json"

[traversal]
max_depth = 50

License

MIT

About

Bundle local code into a single LLM-friendly file from a single entrypoint.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages