Note: This app only copies context. To read diffs from your clipboard and apply them with a single click, try ReptClip for VS Code:
A fast, cross-platform CLI that turns a project directory into clean Markdown context for an LLM chat (no .gitignoreed files), and copies it straight to your clipboard.
After installing Python, run:
pip install pipxclipsudo apt update && sudo apt install pipx
pipx install pipxclip
pipx ensurepathRun the pipxclip command from the root of your project:
pipxclipThis copies a Markdown snapshot of your project structure (every non-ignored file) to the clipboard, ready to paste into an LLM chat.
Example output:
# Project structure
```
.gitignore
README.md
docs/README.md
src/functions.py
src/main.py
```
# Prompt
<- Cursor stays here, you can quickly start typingPipxClip supports simple, readable English commands.
Glob patterns are used to specify which files to include in the context. For example:
pipxclip "AGENTS.md"Example output for this command:
# Project structure
```
.gitignore
README.md
docs/README.md
src/functions.py
src/main.py
```
# AGENTS.md
```
Contents of AGENTS.md.
```
# PromptTo specify files to exclude, use e or exclude. Here is an example:
pipxclip "**/*.py" "AGENTS.md" e "src/secret.py"This includes all .py files and AGENTS.md, while excluding secret.py.
You can control output targets and prompt behavior directly from the command line:
- Output File:
o "output.md"oroutput "output.md"writes the snapshot to a file (use""to disable). - Clipboard Toggle:
c/clipboardenables copying;nc/no-clipboarddisables it. - Prompt Tail Toggle:
pt/prompt-tailappends# Prompt\n\nat the end;npt/no-prompt-taildisables it.
Example combining options:
pipxclip "**/*.py" npt o "out.md" ncYou can define presets in pipxclip-config.toml. Create a default one by running:
pipxclip initDefault configuration:
[[presets]]
name = "default"
include = ["AGENTS.md"]
exclude = []
output = ""
clipboard = true
prompt_tail = true
[[presets]]
name = "all"
include = ["**"]
exclude = []The preset named default is always applied. This can be used for defining default configurations. Other presets can be applied using p or preset:
pipxclip p mypreset| Action | Short | Long | Alternate / Flag forms |
|---|---|---|---|
| Include | i |
include |
-i, --include |
| Exclude | e |
exclude |
-e, --exclude |
| Preset | p |
preset |
-p, --preset |
| Output File | o |
output |
-o, --output |
| Clipboard On | c |
clipboard |
-c, --clipboard |
| Clipboard Off | nc |
no-clipboard |
--no-clipboard |
| Prompt Tail On | pt |
prompt-tail |
--prompt-tail |
| Prompt Tail Off | npt |
no-prompt-tail |
--no-prompt-tail |
- GitIgnore Aware: Files ignored by
.gitignorerules are automatically excluded via pure Python tree traversal. - Automatic Guards: Binary files and files over 1 MB are automatically skipped with descriptive placeholders instead of causing errors.
- Rule Precedence: CLI options extend and override configured preset rules sequentially.