Skip to main content

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:

  1. 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.
  2. Scattered Documentation – README files and docstrings are often separate from code, creating gaps in understanding.
  3. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flatr-1.0.3.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flatr-1.0.3-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

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

Hashes for flatr-1.0.3.tar.gz
Algorithm Hash digest
SHA256 19b764ae225d8fd4109fec53a6a229f4fd8eebe873642b17de4afe45694ebbfe
MD5 6b9d234de0024c69e20d494f742970ef
BLAKE2b-256 df0daba46b74e61e14aa1d0e0561e3beab239546b031d121d311d4c048989867

See more details on using hashes here.

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

Hashes for flatr-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 92bb0d68b6497187e68c82d35a27d4e86243447d9ff3649837a320b3910dbdd9
MD5 a18a50e4c1b6c4aebd241a80f3b4678f
BLAKE2b-256 9701b6f5460ef1bef83895f046d84a2536f6ed4efc98d01c3081c1ab33e26f3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page