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.8.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.8-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ai_pack_cli-0.1.8.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.8.tar.gz
Algorithm Hash digest
SHA256 bd24a0fd29bd65c25ec020c8982f2e1136157efaa5307a320039b23092877ef6
MD5 61f14ce6e88dda542ad6f476bbb60d1b
BLAKE2b-256 049c0b87c3f88b288e9be4efd5cbf1d0179b699620582fb165019fb1c2cfefd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_pack_cli-0.1.8.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.8-py3-none-any.whl.

File metadata

  • Download URL: ai_pack_cli-0.1.8-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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 ca0a55e18eb58eeb118e5584fe91cc37628c82d559657cb9ba7a138f90d5a0cb
MD5 3aa44f59bf6fa9e18fb719624cf4070a
BLAKE2b-256 ee813a47d036b3c731ed126cfa575770ac048b022a1065014f44428946158f4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_pack_cli-0.1.8-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