Metadata-Version: 2.4
Name: codeslimmer
Version: 2.2.0
Summary: Safely package local codebases into clean, LLM-optimized XML context with directory mapping and multi-model token estimation.
Author: akasula09
License: PolyForm Noncommercial 1.0.0
Project-URL: Homepage, https://github.com/akasula09/codeslimmer
Project-URL: Repository, https://github.com/akasula09/codeslimmer
Keywords: llm,ai,context,claude,gemini,gpt4,codebase,developer-tools
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# ⚡ CodeSlimmer

> Safely convert local codebases or public GitHub repos into clean, LLM-ready context with token estimation and directory mapping.

CodeSlimmer packs any code repository—whether stored on your local machine or hosted on GitHub—into a single text file structured specifically for AI models like **Claude 3.5**, **Gemini 3.1 Pro/3.6 Flash**, **GPT-4o**, and **DeepSeek R1**.

---

## ✨ Features

- 🌐 **Remote GitHub URL Support:** Pass any public GitHub URL (`[https://github.com/user/repo](https://github.com/user/repo)`) to fetch, extract, and slim repositories directly—zero `git` required.
- 📋 **Cross-Platform Clipboard Integration:** Instantly copies output directly to your system clipboard (Windows, macOS, or Linux).
- 🛡️ **Overwrite Safety:** Inspects signature headers to ensure local files are never overwritten accidentally.
- 🌳 **ASCII Directory Tree:** Builds a visual project structure map at the very top of your context output.
- 🏷️ **LLM-Friendly XML Output:** Encloses code in clear `<file path="...">` tags for max prompt accuracy.
- 📊 **Token Estimator:** Estimates context size (~4 chars/token) and checks capacity against major models.
- 📏 **Smart File Sizes:** Calculates and formats physical sizes (`B`, `KB`, `MB`, `GB`).

---

## 📦 Installation

### Option A: Install via PyPI (Recommended)

Install CodeSlimmer using `pip`:

    pip install code-slimmer

### Option B: Run from Source

Clone the repository and run the script directly:

    git clone [https://github.com/akasula09/codeslimmer.git](https://github.com/akasula09/codeslimmer.git)
    cd codeslimmer

---

## 🚀 How to Use

### 1. Launch CodeSlimmer

If installed via `pip`:

    codeslimmer

If running directly from source:

    python codeslimmer.py

---

### 2. Interactive Workflows

CodeSlimmer supports two distinct input modes:

#### **Mode 1: Local Directory Path**
Enter a relative or absolute local folder path. CodeSlimmer creates `ai_context.txt` inside that folder and offers an optional clipboard copy. An example is below.

    --- CODE SLIMMER v2.2 ---
    Enter a local folder path OR a GitHub URL: my_project_folder

    📄 Loaded rules from .gitignore

    --- SUCCESS! ---
    Packed 12 code files.
    Final Context Size: 18.45 KB
    💾 Added 'ai_context.txt' directly into your folder!

    📊 Estimated Token Count: ~4,612 tokens
    --------------------------------------------------
    Which AI provider are you targeting? (gemini / claude / chatgpt / deepseek): gemini
    --------------------------------------------------
    🎯 Evaluated against Gemini Models:

      ✅ Gemini 3.1 Pro: Fits! (4,612 / 2,000,000 tokens — 0.2306% capacity)
      ✅ Gemini 3.6 Flash: Fits! (4,612 / 1,000,000 tokens — 0.4612% capacity)
      ✅ Gemini 3.5 Flash-Lite: Fits! (4,612 / 1,000,000 tokens — 0.4612% capacity)

    Do you want to copy the output text directly to your clipboard as well?
    Type 'y' for Yes, or press Enter to skip: y
    📋 Copied full context directly to your clipboard! Ready to Ctrl+V into AI.

#### **Mode 2: Remote GitHub Repository URL**
Paste any public GitHub URL. CodeSlimmer fetches and slims the repository in a temporary workspace, estimates tokens, and prompts you to copy the result straight to your clipboard without leaving messy files behind.

    --- CODE SLIMMER v2.2 ---
    Enter a local folder path OR a GitHub URL: [https://github.com/akasula09/codeslimmer](https://github.com/akasula09/codeslimmer)

    🌐 Fetching repository 'akasula09/codeslimmer' from GitHub...

    --- SUCCESS! ---
    Packed 5 code files.
    Final Context Size: 12.30 KB

    📊 Estimated Token Count: ~3,075 tokens
    --------------------------------------------------
    Which AI provider are you targeting? (gemini / claude / chatgpt / deepseek): claude
    --------------------------------------------------
    🎯 Evaluated against Claude Models:

      ✅ Claude 3.5 Sonnet / Haiku: Fits! (3,075 / 200,000 tokens — 1.5375% capacity)
      ✅ Claude 3 Opus: Fits! (3,075 / 200,000 tokens — 1.5375% capacity)

    Do you want to copy the output text directly to your clipboard?
    Type 'y' for Yes, or press Enter to skip: y
    📋 Copied full context directly to your clipboard! Ready to Ctrl+V into AI.

> ℹ️ **Private Repositories:** Unauthenticated requests to private or non-existent repositories will output:  
> `❌ Repository does not exist or is private.`

---

## 📜 Output Structure

CodeSlimmer structures the prompt context using this clean, LLM-optimized XML format:

    <!-- GENERATED BY CODESLIMMER v2.2 - DO NOT EDIT MANUALLY -->

    <project_structure_tree>
    my_project_folder/
    ├── src/
    │   ├── index.js
    │   └── utils.js
    ├── .gitignore
    └── package.json
    </project_structure_tree>

    <file path="src/index.js">
    console.log("Hello World");
    </file>

    <file path="src/utils.js">
    export function add(a, b) { return a + b; }
    </file>

---

## ⚖️ License

Distributed under the **PolyForm Noncommercial License 1.0.0**. Free for personal, educational, research, and internal business use. See [LICENSE](LICENSE) for details.
