Skip to main content

Interactive CLI to extract project files into a single bundle

Project description

Proxtract

Proxtract is an interactive CLI for extracting readable project files into a single bundle that is easy to share with large language models.

Features

  • Rich-powered REPL with colorized output, tables, and progress indicators
  • Session state for configurable extraction settings
  • Command suite for quick extraction, configuration, and help

Installation

pip install proxtract

Install with the optional ASCII art banner extras by adding banner:

pip install proxtract[banner]

Usage

Launch the REPL with:

proxtract

Or reach for the compact alias:

prx

Inside the session use /help to see available commands. Typical flow:

  1. Adjust defaults with /settings if needed.
  2. Run /extract <path> [output_file] to stream project files into one document.
  3. Exit anytime with /exit.

Settings keys accept handy aliases: /settings max 1024, /settings out merged.txt, /settings compact off, /settings empty on.

Run a one-off extraction directly from the shell with the short form:

prx e path/to/project -o bundle.txt

Shell Tab Completion

Shell tab-completion for commands, options, and path arguments is available via argcomplete. After installing Proxtract, enable completion (bash/zsh/fish) with:

register-python-argcomplete proxtract prx >> ~/.bashrc  # adapt for your shell

Restart your shell (or source the file) and enjoy tab-completion for both proxtract and prx.

Verification

After installing, you can confirm the basics operate with the bundled smoke test:

python scripts/smoke_test.py

The script launches the REPL (and exits cleanly) and performs a one-file extraction using the public API.

Development

  • Python 3.9+
  • Dependencies managed via pyproject.toml

Run the REPL locally without installing by executing python -m proxtract from the project root. The banner gracefully falls back to ASCII art if the optional art dependency is unavailable.

For editable development installs, use:

pip install -e .[dev,banner]

Publishing to PyPI

  1. Ensure dist/ is clean: rm -rf dist/ build/
  2. Build the distribution artifacts: python -m build
  3. Inspect the generated wheels and sdist under dist/
  4. Run a sanity check: twine check dist/*
  5. Upload to PyPI (or TestPyPI) with twine upload dist/*

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

proxtract-0.2.22.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

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

proxtract-0.2.22-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file proxtract-0.2.22.tar.gz.

File metadata

  • Download URL: proxtract-0.2.22.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for proxtract-0.2.22.tar.gz
Algorithm Hash digest
SHA256 a38d2a06bcacf2049cb74c950ca2cf81077c9fb7d508b5073fb819e81d382344
MD5 fd4555d485d8cf34f649d650437261e4
BLAKE2b-256 2b36257106b749f4d7fe4d41821ae0b679b683255a421eb71f50a2dee78c7216

See more details on using hashes here.

File details

Details for the file proxtract-0.2.22-py3-none-any.whl.

File metadata

  • Download URL: proxtract-0.2.22-py3-none-any.whl
  • Upload date:
  • Size: 25.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for proxtract-0.2.22-py3-none-any.whl
Algorithm Hash digest
SHA256 8da07d9bc8e566579ddba76e39aee15f4c5a94254c8ca92b2492847cef685d85
MD5 bd28846abb67b4cdbe8d6a472656e430
BLAKE2b-256 67d07377a0d66a66c071d3dd557218309869dd2fdd8aa6b67b8dcdfa97aec82d

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