dumpo creates a safe, bounded snapshot of a repo and formats it as a paste-ready prompt for LLMs (to clipboard on macOS, or to stdout).
Design goals:
- One command → paste-ready output
- Hard output budget (max per file + max total)
- Stable ordering and deterministic output
- Avoid leaking common secrets by default
Non-goals:
- Dependency graphs, AST parsing, agent workflows, config DSLs
From the repo:
cargo install --path .- Pack the current directory:
dumpo pack - Pack a specific repo root:
dumpo pack /path/to/repo - Write to stdout (useful on non-macOS or for piping):
dumpo pack --stdout - Copy to clipboard (macOS only; uses pbcopy):
dumpo pack --clipboard - Show resolved settings (debug):
dumpo pack --verbose - Include / exclude globs:
- Repeatable glob patterns matched against repo-relative paths (with / separators):
dumpo pack --include 'src/**' --include 'Cargo.toml' --exclude '**/generated/**'
- Repeatable glob patterns matched against repo-relative paths (with / separators):
dumpo can load a dumpo.toml from the nearest ancestor directory of the repo root.
- CLI flags (highest)
- --config (explicit config file)
- nearest dumpo.toml found by walking ancestors
- built-in defaults (lowest)
- Disable config loading entirely:
dumpo pack --no-config
Example dumpo.toml:
max_file_bytes = 20000
max_total_bytes = 400000
include_hidden = false
# Glob patterns matched against repo-relative paths using '/' separators.
# Empty include = include everything (subject to built-in safety filters).
include = ["src/**/*"]
# Empty exclude = exclude nothing beyond the built-in filters.
exclude = []