Skip to main content

No project description provided

Project description

📦 ai-pack

Python Version License PyPI version PRs Welcome GitHub Stars

Pack your entire codebase into a single formatted Markdown prompt for LLMs, optimized for minimum tokens.

ai-pack is a lightweight, high-performance CLI tool designed to help developers package their codebase, specific files, or uncommitted changes into a clean Markdown payload. Easily copy it to the clipboard or save it to a file to feed directly into ChatGPT, Claude, Gemini, or any other LLM.


🔥 Key Features

  • ⚡ Native CLI Command: Accessible globally as ai-pack, aipack, or aip.
  • 💀 Code Skeleton Extraction (--skeleton): Drastically save tokens by stripping method and function bodies, keeping only class structures, imports, signatures, and docstrings.
  • 🎯 Interactive Selection (-i): Interactively choose which files to pack using Arrow keys and Spacebar before generating the payload.
  • 🌿 Git-Aware (--changed): Automatically detect and pack only modified, staged, or untracked files.
  • 🛡️ Gitignore Respecting: Native Git integration using git ls-files to automatically ignore build artifacts, node modules, and everything in .gitignore (with a clean manual fallback for non-git folders).
  • 💬 Predefined LLM Prompts (-p): Instantly prepend pre-configured prompts for code review, bug hunting, or architecture explanations.
  • 📊 Token Estimation: Heuristic token counting warns you if your payload exceeds your limit (--max-tokens).

🚀 Quick Start

Installation

Choose one of the following methods to get started quickly:

Option 1: Install from PyPI (Recommended)

Install the official release from PyPI:

pip3 install ai-pack-cli --user

Or via pipx to run in an isolated environment:

pipx install ai-pack-cli

Option 2: Install directly from GitHub

Install the latest cutting-edge development version directly:

pip3 install git+https://github.com/iamraydoan/ai-pack.git --user

Option 3: Manual Clone (Editable mode)

If you want to modify the source code:

git clone https://github.com/iamraydoan/ai-pack.git
cd ai-pack
pip3 install -e . --user

Option 4: Run as a Standalone Script (One-Liner)

Since ai-pack is a self-contained single script, you can download it directly:

curl -o ~/.local/bin/aip https://raw.githubusercontent.com/iamraydoan/ai-pack/main/ai_pack.py && chmod +x ~/.local/bin/aip

(Note: If you run it standalone, you will need to manually run pip3 install pyperclip questionary to enable all optional interactive and clipboard features).

[!TIP] Optional backend for Skeleton Mode (--skeleton): If you plan to use skeleton extraction for non-Python languages (such as JavaScript, TypeScript, Go, Rust, Java, C#, C++, PHP, Lua, CSS, Swift, and Kotlin), you must install ast-grep globally:

npm install -g @ast-grep/cli
# or: cargo install ast-grep

Usage Examples

1. Pack the entire repository (copied to clipboard)

aip

2. Pack specific files and save to a file

aip -f src/main.py tests/ -o output.md

3. Pack only uncommitted git changes with a code review prompt

aip --changed -p review

4. Extract code skeleton only (drastically saves context window tokens)

aip --skeleton -p explain

5. Interactively choose files to include

aip -i

💀 Skeleton Mode Demo

Original Code (math.py):

def fibonacci(n):
    if n <= 0:
        return []
    elif n == 1:
        return [0]
    sequence = [0, 1]
    while len(sequence) < n:
        sequence.append(sequence[-1] + sequence[-2])
    return sequence

Skeleton Output:

def fibonacci(n):
    ...

Supports Python, JavaScript, TypeScript, Go, Rust, Java, C#, C++, PHP, Lua, CSS, Swift, and Kotlin via codesigs and ast-grep.

[!IMPORTANT] Skeleton Mode Dependencies:

  • Python >= 3.9: Required to run the --skeleton feature.
  • ast-grep: For non-Python languages, the ast-grep command-line tool must be installed globally (e.g. via npm: npm install -g @ast-grep/cli or cargo: cargo install ast-grep).

🎨 Interactive CLI Checklist

Running aip -i triggers a beautiful checkbox prompt:

? Select files to pack (Space to toggle, Enter to confirm):
 ❯ [x] src/main.py
   [x] src/utils.py
   [ ] tests/test_main.py

🤝 Contributing

Contributions are welcome! If you have ideas for new features, bug fixes, or enhancements:

  1. Fork the repo.
  2. Create your feature branch (git checkout -b feat/amazing-feature).
  3. Commit your changes (git commit -m 'feat: add amazing feature').
  4. Push to the branch (git push origin feat/amazing-feature).
  5. Open a Pull Request.

Don't forget to give the project a ⭐ if you found it useful!

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

ai_pack_cli-0.1.7.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

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

ai_pack_cli-0.1.7-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file ai_pack_cli-0.1.7.tar.gz.

File metadata

  • Download URL: ai_pack_cli-0.1.7.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ai_pack_cli-0.1.7.tar.gz
Algorithm Hash digest
SHA256 e6d1e20176edc584b392f20ec5b2d5e17b20d6282aa6a7c570c2db07290c667a
MD5 930327d2b1be0a0eacda5263f139ee9a
BLAKE2b-256 5a5f34a6eccb2f25cf1c3b341321b5a1257b7795601f7d98a5d1be543b2b0a00

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_pack_cli-0.1.7.tar.gz:

Publisher: publish.yml on iamraydoan/ai-pack

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ai_pack_cli-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: ai_pack_cli-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ai_pack_cli-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 129d257b55c65c2deef0ad7e8848e81e173aab325474573a1b868dcfc0aafef2
MD5 08cd8ecdeb8588acb3187aed63f1cc8f
BLAKE2b-256 9c837c269ab39a02d556fc7cd0e1d4e30b37e9f3df392f5d13490db3752538c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_pack_cli-0.1.7-py3-none-any.whl:

Publisher: publish.yml on iamraydoan/ai-pack

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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