A file browser for precise code selection with repomix and yek backends.
Important
siff is still in development and has many known bugs.
Find it a struggle to select the right files with complex glob patterns or config files just to select the right files for llm code ingestion? Siff solves this with a simple visual interface where you see exactly what gets processed.
Instead of this mess:
repomix --include "**/*.py" --exclude "**/tests/**" --exclude "**/venv/**" --remove-comments --output-format=markdown .Just do this:
siff- Visual file selection, if you select it, it gets included
- Never shows
.gitignoreor.gitin siff file tree - Zero config, downloads tools needed automatically
- Dual backend support, repomix and yek for features and speed
- Efficient file tree navigation for large codebases
- Automatically counts tokens for each file and directories
- Copies to your clipboard, for easy copy and paste your favorite llms
cargo install siffNote
siff requires Node.js to be installed for repomix backend.
macOS:
brew install nodeLinux:
sudo apt install nodejs npmWindows:
winget install -e --id OpenJS.NodeJS.LTSNote
For windows, can also download node from here
| Key | Action |
|---|---|
↑/↓ or j/k |
Navigate files |
←/→ or h/l |
Collapse/expand directories |
Space |
Toggle selection |
E |
Expand all |
C |
Collapse all |
A |
Select all |
U |
Unselect all |
r |
Run processing backend |
q |
Quit |
Note
siff does have mouse support for file selection, collapse/expand directories, and scrolling.
- Output formats: plain text, markdown, xml
- Supports remove comments and compression
- Slower processing than yek
- No configuration necessary
- Very fast processing
- Fix known bugs
- Token counting is can be slow on large repos
- Token counting is not accurate (race condition)
- Error messages (stacked errors and not descriptive)
- Refactor codebase (file structure, design with token counting and processing, naming)
- Fix general speed issues in large (> 1 M token count codebases)
- Add multiple file and directory selection
- Tab switching to different backends
- User config files for repomix and yek
- Rewrite processing core in Rust with same feature support
Open to all feature requests and bug reports. Please submit any changes as a detailed PR or propose a new issue.
To completely reset siff's cache (including repomix installations and file metadata), run these commands for your operating system.
macOS:
rm -rf ~/Library/Caches/siff/Linux:
rm -rf ~/.cache/siff/
rm -rf ~/.local/share/siff/Windows:
rmdir /s %LOCALAPPDATA%\siff\- yek - Fast Rust-based file serialization tool
- repomix - Feature dense file seralization tool
- codeselect - File selection tool to share with llms