Flatten GitHub Repos into Markdown for LLM-Friendly Code Exploration
Project description
Flatr
Flatten GitHub Repos into Markdown for LLM-Friendly Code Exploration
📦 Flatr
flatr is a Python library that takes any GitHub repository and creates a flat Markdown (.md) file containing the entire codebase and documentation. It is designed to make codebases easier to feed into LLMs for tasks like code explanation, summarization, and interactive documentation.
🎯 Problem Scope
Modern software projects are often spread across multiple directories and files, making it difficult for both humans and AI models to comprehend the codebase efficiently. Large Language Models (LLMs) face these challenges:
- Context Window Limitations – LLMs can only process a limited amount of text at a time. Hierarchical repositories with many files make it hard for models to reason about the entire project.
- Scattered Documentation – README files and docstrings are often separate from code, creating gaps in understanding.
- Navigation Complexity – Humans also spend time jumping between folders and files to understand code dependencies.
Why Markdown is Better for LLMs:
- Flat Structure: All code and documentation are in a single file, making it easier for the model to process.
- Preserved Hierarchy via Headers: Markdown headers (
#,##,###) retain the logical organization of folders and files without breaking the flat flow. - Syntax Awareness: Fenced code blocks (
```python) preserve language context, helping LLMs understand code semantics. - Human and Machine Readable: Markdown is easy to read for developers and can be ingested directly by AI models.
By converting a repository into a flattened Markdown, flatr ensures that the entire project is accessible in one coherent view, maximizing the usefulness of LLMs and interactive tools.
⚡ Features
- Fetch any public GitHub repository by URL.
- Flatten repository structure into a single Markdown file.
- Preserve folder and file hierarchy using Markdown headers.
- Wrap code in fenced code blocks with syntax highlighting.
- Include README and inline documentation.
- Optional metadata: file size, lines of code, last commit info.
🚀 Installation
pip install flatr
💻 Usage
# Create a flat Markdown from a GitHub repo
repo_url = "https://github.com/dimastatz/flatr"
python -m flatr.flatr repo_url
This generates a self-contained Markdown file with all code, docs, and structure from the repo.
Example Output
Repository: ExampleRepo
File: utils/helpers.py
def helper_function(x):
return x * 2
File: validators.py
def validate(input):
return input is not None
File: main/app.py
from utils.helpers import helper_function
🔮 Future Applications
flatr can be used to build interactive applications and developer tools, including:
- Interactive README files – Ask questions about your code or get explanations directly inside the documentation.
- “Chat to Code” applications – Use LLMs to navigate, analyze, and reason about your codebase.
- Fast navigation of large codebases – Quickly jump between functions, classes, and modules in a single Markdown file.
- Knowledge base integration – Ingest repositories into RAG pipelines for semantic search and documentation.
- Automated code analysis – Summarize, refactor, or detect issues using AI models.
🤝 Contributing
Contributions are welcome! Feel free to submit issues or pull requests for new features, bug fixes, or multi-language support.
📄 License
MIT License – see LICENSE for details.
Project details
Release history Release notifications | RSS feed
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 flatr-1.0.3.tar.gz.
File metadata
- Download URL: flatr-1.0.3.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19b764ae225d8fd4109fec53a6a229f4fd8eebe873642b17de4afe45694ebbfe
|
|
| MD5 |
6b9d234de0024c69e20d494f742970ef
|
|
| BLAKE2b-256 |
df0daba46b74e61e14aa1d0e0561e3beab239546b031d121d311d4c048989867
|
File details
Details for the file flatr-1.0.3-py3-none-any.whl.
File metadata
- Download URL: flatr-1.0.3-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92bb0d68b6497187e68c82d35a27d4e86243447d9ff3649837a320b3910dbdd9
|
|
| MD5 |
a18a50e4c1b6c4aebd241a80f3b4678f
|
|
| BLAKE2b-256 |
9701b6f5460ef1bef83895f046d84a2536f6ed4efc98d01c3081c1ab33e26f3b
|