Software Module Outline & Organization Summary Helper
Project description
smoosh: Software Module Outline & Organization Summary Helper
Snapshot an entire repo or directory as plaintext on the clipboard and paste to your favorite AI tool!
smoosh is a Python tool that helps developers understand and work with code repositories by generating LLM-optimized summaries of software modules, structure, dependencies, and patterns. It creates compressed yet meaningful representations that can be effectively used in LLM prompts for package understanding and troubleshooting.
Features
- Repo Snapshot: Copy code repositories to clipboard as plaintext and paste to your favorite AI tools!
- Smart Exclusion: Exclude files in .gitignore, non-text, caches, large data files
- Flexible Output Formats: Export summaries in text, JSON, or YAML
- Command Line Interface: Easy-to-use CLI for quick analysis
Installation
pip install smoosh
Quick Start
Analyze a Python package and generate a summary:
smoosh /path/to/package
Export to specific format:
smoosh /path/to/package --format json --output summary.json
Configuration (optional)
Create a smoosh.yaml in your project root:
analysis:
exclude_patterns: ['tests/*', '**/__pycache__/*']
max_depth: 3
focus: ['api', 'structure', 'patterns']
compression:
level: medium # low, medium, high
custom_patterns:
df_ops: "standard pandas operations"
api_call: "external service request/response"
output:
format: json
include_schema: true
max_tokens: 1000
Example Output
╭───────────────────────────────────────────────────────────────╮
│ 🐍 smoosh v0.1.2 - Making Python packages digestible! │
╰───────────────────────────────────────────────────────────────╯
⠋ Analyzing repository...INFO: Processing directory at code/smoosh
⠋ Analyzing repository...
⠋ Generating summary...
✨ Output copied to clipboard!
Analysis Results
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓
┃ Metric ┃ Value ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩
│ Repository Size │ 0.06MB │
│ Total Files │ 36 │
│ Python Files │ 17 │
│ Original Lines │ 2436 │
│ Composed Lines │ 2520 │
│ Original Characters │ 62187 │
│ Composed Characters │ 63366 │
│ Lines Ratio │ 1.03x │
│ Characters Ratio │ 1.02x │
└─────────────────────┴────────┘
⠹ Analyzing repository...
⠹ Generating summary...
Clipboard output
Repository: smoosh
Mode: cat
Files: 36 (17 Python)
Total Size: 0.06MB
Repository Structure:
smoosh/
├── .github/
│ └── workflows/
│ ├── ci.yml
│ ├── publish.yml
│ └── release-candidate.yml
├── src/
│ └── smoosh/
│ ├── analyzer/
│ │ ├── __init__.py
│ │ ├── repository.py
│ │ └── tree.py
│ ├── composer/
│ │ ├── __init__.py
│ │ ├── concatenator.py
│ │ └── formatter.py
│ ├── utils/
│ │ ├── __init__.py
│ │ ├── config.py
│ │ ├── file_utils.py
│ │ ├── logger.py
│ │ └── path_resolver.py
│ ├── __init__.py
│ ├── custom_types.py
│ └── version.py
├── tests/
│ ├── utils/
│ │ └── generate_sample.py
│ ├── __init__.py
│ └── test_cli.py
├── .flake8
├── .gitignore
├── .pre-commit-config.yaml
├── DEVELOPMENT.md
├── LICENSE
├── pyproject.toml
└── README.md
### File: .flake8 ###
[flake8]
max-line-length = 100
exclude =
.git,
__pycache__,
build,
dist
Development
- Clone the repository:
git clone https://github.com/yourusername/smoosh.git
cd smoosh
- Create a virtual environment:
python -m venv venv
source venv/bin/activate # or `venv\Scripts\activate` on Windows
- Install development dependencies:
pip install -e ".[dev]"
- Run tests:
pytest
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Roadmap
Future developments may include:
- Smart Compression: Generate compact package representations while preserving essential information
- LLM-Optimized Output: Create summaries specifically formatted for effective use with Language Models
- Error pattern detection
- IDE integration
- Documentation generation
- Intelligent type abbreviation
- Pattern reference system
- Call chain compression
- Reference deduplication
Support
For questions and support, please open an issue in the GitHub repository.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smoosh-0.1.4.tar.gz.
File metadata
- Download URL: smoosh-0.1.4.tar.gz
- Upload date:
- Size: 21.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e566808fe351d4f3bfe9c5e3650fb9906c06cc6bd3ec01be2c6896ba2c294f81
|
|
| MD5 |
889d43ab7f72032380a42626f0ba43b5
|
|
| BLAKE2b-256 |
e1f36a3d9458452de0cacba0213d95d28892bcbd47dc652ff366db491a8aa985
|
File details
Details for the file smoosh-0.1.4-py3-none-any.whl.
File metadata
- Download URL: smoosh-0.1.4-py3-none-any.whl
- Upload date:
- Size: 20.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b781bffc9053edfe8584e7a059f69d27ba834fd5e8cc5933d4c9ab2e925736be
|
|
| MD5 |
cec442e28894b87c4c0474239cfd0086
|
|
| BLAKE2b-256 |
bd2166f8bdd1efdbbd6487812c3812ab9a49a5c3778c189e116f0abc07dd3351
|