Universal LLM-optimized project snapshot tool
Project description
akdogan — Universal LLM-Optimized Project Snapshot Tool
akdogan is a lightweight, cross-platform tool designed to bridge the gap between complex software projects and Large Language Models (LLMs).
It instantly converts your entire project—directory structure, source code, and data previews—into a single, structured .txt file optimized for the context windows of ChatGPT, Claude, Gemini, and Llama.
🧠 Why Use akdogan?
Developers often struggle to share code context with AI because:
- ZIP files are often rejected or hard to parse.
- Copy-pasting dozens of files manually is tedious.
- Binary files (images, pyc) create noise and waste tokens.
- Large CSV/Excel files consume context limits without providing structure.
akdogan solves this by intelligently curating your project into a single, token-efficient text file.
✨ Key Features
- 📂 Visual Directory Tree: Generates a clean map of your project structure.
- 📄 Smart Content Extraction: Reads
.py,.js,.html,.rs,.goand more. - 📊 Data Previews: Automatically extracts only the first 5 rows of
.csvand.xlsxfiles (skips bulk data). - 🚫 Noise Filtering: Ignores system files like
.git,__pycache__,node_modules,venv, and binary executables. - 🧪 Dual Mode: Run it from the terminal (CLI) or import it in your Python scripts.
- 🖥️ Cross-Platform: 100% compatible with Windows, macOS, and Linux.
🚀 Installation
Requires Python 3.8+.
pip install akdogan
📦 CLI Usage
Navigate to your project folder and run:
# Snapshot the current directory
akdogan .
Options
Target a specific directory:
akdogan /Users/berke/dev/my-cool-project
Save to a specific output file:
akdogan . -o context_for_gpt.txt
🐍 Python Library Usage
You can also use akdogan programmatically within your automation scripts:
import akdogan
# Generate snapshot for the current directory
akdogan.snapshot('.')
# Or target a specific path
akdogan.snapshot('/path/to/target')
This will generate a file named snapshot_<folder>_<timestamp>.txt automatically.
📁 Output Format Example
The generated text file is structured specifically for LLM comprehension:
=== PROJECT TREE ===
my_project/
├── app.py
├── utils/
│ └── helper.py
└── data/
└── dataset.csv
=== FILE CONTENTS ===
--- FILE: app.py ---
import os
def main():
print("Hello World")
--- FILE: utils/helper.py ---
def help_me():
return True
--- FILE: data/dataset.csv ---
id,name,role
1,Alice,Admin
2,Bob,User
<<FIRST 5 ROWS ONLY>>
🛠 Development
To contribute or modify the tool locally:
Clone the repository:
git clone https://github.com/yourusername/akdogan.git
cd akdogan
Run locally:
python -m akdogan .
Run tests:
pytest
Build package:
python -m build
📜 License
This project is licensed under the MIT License. See the LICENSE file for details.
Copyright © 2025 Berke Akdoğan
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 akdogan-1.0.0.tar.gz.
File metadata
- Download URL: akdogan-1.0.0.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1931ea7730e3619c2aa554d0629dd21926c16652818dea484b03dcc4a0de0330
|
|
| MD5 |
556d3b81027443f99320388826e4f1ca
|
|
| BLAKE2b-256 |
254530e55bd4eaa23c508b89aa6ee54ae1ac375167d5e6748f4440ae7cd14df2
|
File details
Details for the file akdogan-1.0.0-py3-none-any.whl.
File metadata
- Download URL: akdogan-1.0.0-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
700ebcb73de66f35521e5a1d503a9596824bc010cb0a525964de30240a8d7d46
|
|
| MD5 |
eb9bcea6e1392ee252f52b55c9a1968b
|
|
| BLAKE2b-256 |
f9f2a7118e012166ddd187933580a0822f50942ace443401e6b3dea4f47e502b
|