fullsend
v2.2.0
Published
Bundle files into a single formatted output for AI chat interfaces
Maintainers
Readme
fullsend
_____ _____ __ __ _____ _____ _____ ____
| __| | | | | | | __| __| | | \
| __| | | |__| |__|__ | __| | | | | |
|__| |_____|_____|_____|_____|_____|_|___|____/
Bundle your codebase for AI chat interfaces
v2.2.0About
Fullsend transforms your project into a single, formatted string optimized for LLMs. It bypasses file upload limits in ChatGPT, Claude, and other AI interfaces by copying your codebase directly to your clipboard in a format they understand.
Installation
┌─ Package Managers ──────────────────────────────────────────────────────┐
│ │
│ npm npm install -g fullsend │
│ pnpm pnpm add -g fullsend │
│ yarn yarn global add fullsend │
│ bun bun install -g fullsend │
│ │
│ npx npx fullsend (no install) │
│ │
└─────────────────────────────────────────────────────────────────────────┘Quick Start
$ fullsend # Open splash screen / usage guide
$ fullsend . # Bundle current directory → clipboard
$ fullsend ./src # Bundle specific path → clipboard
$ fullsend . -o context.md # Bundle to file
$ fullsend . -f xml # Use XML format (Claude-optimized)
$ fullsend . -d # Dry run (preview files without output)
$ fullsend config # Interactive configurationCommand Reference
┌─ Synopsis ──────────────────────────────────────────────────────────────┐
│ │
│ fullsend [directory] [options] │
│ │
└─────────────────────────────────────────────────────────────────────────┘┌─ Options ──────────────────────────────────────────────────────────────────┐
│ │
│ -o, --output <file> Write output to file instead of clipboard │
│ -f, --format <type> Output format: markdown (default) or xml │
│ -t, --show-tree Include visual directory tree in final output │
│ -d, --dry-run Scan and validate files without generating output│
│ -m, --max-size <mb> Maximum file size to process (default: 10MB) │
│ -v, --verbose Show detailed ignored/loaded file logs │
│ --no-gitignore Disable .gitignore pattern matching │
│ --no-instructions Disable XML output instructions │
│ -h, --help Display help information │
│ │
└────────────────────────────────────────────────────────────────────────────┘Configuration
Interactive Setup
Run fullsend config to set your global preferences.
$ fullsend config
◆ Output format
│ ● Markdown ○ XML
│
◆ Include file tree in output?
│ ○ Yes ● No
│
◆ Use .gitignore patterns?
│ ● Yes ○ No
│
◆ Max file size (MB)
│ 10
│
◆ Enable verbose logging?
│ ○ Yes ● No
│
◆ Add instruction to prevent AI from mirroring XML output format?
│ ● Yes ○ No
│
◇ Saved to ~/.fullsendrcConfiguration Files
~/.fullsendrc - Global configuration (JSON)
Created by the config wizard. You can also place a .fullsendrc file in your project root to override global settings for that specific project.
{
"format": "markdown",
"showFileTree": false,
"useGitIgnore": true,
"maxFileSize": 10485760,
"verbose": false,
"addXmlOutputInstruction": true
}.fullsendignore - Project-specific ignore patterns
Works exactly like .gitignore. Use this to exclude files from the AI bundle without removing them from version control.
# Exclude test files to save tokens
*.test.js
*.spec.ts
__tests__/
# Exclude documentation
docs/
*.md
# Force include a file usually ignored
!important.env.exampleDefault Exclusions
Fullsend automatically ignores files that are useless for AI context to save tokens:
Dependencies node_modules, vendor, bower_components
Version Control .git, .svn, .hg
Build Artifacts dist, build, out, target, coverage, bin, obj
Caches .cache, .next, .nuxt, __pycache__
Lock Files package-lock.json, yarn.lock, pnpm-lock.yaml
Environment .env, .env.*
Binary Files *.exe, *.dll, *.so, *.dylib, *.class, *.jar
Images/Media *.jpg, *.png, *.gif, *.svg, *.mp4, *.pdf
Logs *.log
Minified/Maps *.min.js, *.mapOutput Formats
Markdown (Default)
Optimized for ChatGPT, GitHub Copilot Chat, and general LLMs.
## File Structure
src/
├── components/
│ └── Header.tsx
└── index.ts
## Files
src/components/Header.tsx:
```typescript
export const Header = () => <header>App</header>;
```XML
Optimized for Claude. Anthropic models allow for specific pre-fill cues with this format.
<codebase>
<structure><![CDATA[
src/
├── components/
│ └── Header.tsx
└── index.ts
]]></structure>
<file path="src/components/Header.tsx"><![CDATA[
export const Header = () => <header>App</header>
]]></file>
</codebase>Console Output
$ fullsend ./my-project
┌ fullsend
│
◇ 127 files bundled
│ 458 KB processed
│ 12.3k tokens generated
│
└→ Clipboard
0.43sVerbose Output
Use -v to debug what is being ignored.
$ fullsend . --verbose --dry-run
┌ Ignore Patterns
│ 42 patterns loaded
│ node_modules, .git, dist, *.log, .env, ... +37 more
└
┌ File Tree
│
│ src/
│ ├── components/
│ │ ├── Button.tsx
│ │ └── Layout.tsx
│ └── index.ts
└
○ Dry Run Complete
0.12sRequirements
- Node.js >= 20.11.0
- System Clipboard access (Linux users may need
xcliporxsel)
License
MIT License - Copyright (c) 2024 soradotwav
