files-to-prompt
v0.1.1
Published
Convert files to a format suitable for LLM prompting
Downloads
25
Maintainers
Readme
files-to-prompt
A Node.js tool to convert files to a format suitable for LLM prompting.
This is a JavaScript implementation of Simon Willison's files-to-prompt tool, designed to prepare file contents for use in prompts to language models like GPT-4.
Installation
npm install -g files-to-promptOr use without installation:
npx files-to-prompt [options]Usage
files-to-prompt [options]Options
-d, --directory <path> directory to scan (default: current directory)
-o, --output <file> output file (default: stdout)
-f, --format <format> output format: json or markdown (default: markdown)
-i, --include <patterns> comma-separated glob patterns to include (default: **)
-e, --exclude <patterns> comma-separated glob patterns to exclude
(default: node_modules/**,**/.git/**)
-m, --max-size <size> maximum file size in KB to include (default: 100)
-l, --max-length <length> maximum content length in characters (default: 1000000)
-s, --summary include only file paths without content
-c, --no-color disable colored output
-p, --prefix <text> text to prefix each file with (default: "File:")
-v, --verbose verbose output
-h, --help display help for command
-V, --version output the version numberExamples
Scan the current directory and output all files in Markdown format:
files-to-promptScan a specific directory and save to a file:
files-to-prompt --directory ./my-project --output prompt.mdInclude only JavaScript files:
files-to-prompt --include "**/*.js"Exclude test files:
files-to-prompt --exclude "**/*.test.js,**/*.spec.js"Output as JSON:
files-to-prompt --format jsonGenerate a summary of files without their contents:
files-to-prompt --summaryProgrammatic Usage
const { scanFiles, formatOutput, writeOutput } = require('files-to-prompt');
async function generatePrompt() {
const files = await scanFiles({
directory: './my-project',
includePatterns: ['**/*.js'],
excludePatterns: ['node_modules/**', '**/.git/**'],
maxSize: 102400, // 100KB
maxLength: 1000000,
summary: false,
verbose: false
});
const output = formatOutput(files, {
format: 'markdown',
prefix: 'File:',
summary: false
});
// Write to file
await writeOutput(output, 'prompt.md');
// Or use the output directly
console.log(output);
}
generatePrompt();License
MIT
Credits
Based on the Python tool files-to-prompt by Simon Willison.
