Skip to main content

A command-line tool to print file trees and display file contents.

Project description

cat-context

Have you ever wanted to ask a question about a project to a LLM but lost a lot of time trying to explain the structure of the project and the relevant files?

cctx is a command-line tool that allows you to recursively print the file tree of a specified directory, display contents of specified files, and ignore certain paths or the entire tree. It's useful for quickly understanding the structure and content of a project in the context of a question.

Features

  • Recursively print file trees: Visualize the directory structure of your project.
  • Display file contents: Easily view the contents of specified files.
  • Ignore paths: Exclude certain files or directories from the tree.
  • Ignore entire tree: Focus solely on specified files without displaying the tree.
  • Specify line ranges: Display specific lines from files.

Installation

You can install cat-context via pip:

pip install cat-context

This will install the cat-context package and make the cctx command available globally.

Usage

cctx [OPTIONS] [FILE_PATHS...]

Options

  • --cwd <path>: Change the current working directory. Defaults to the current directory.
  • -ip, --ignore-path <path>: Paths to ignore in the file tree (relative to cwd or absolute). Can be used multiple times to ignore multiple paths.
  • -it, --ignore-tree: Ignore the entire tree and only display specified files.

Arguments

  • FILE_PATHS: One or more files to display contents of if they exist in the tree. You can specify line numbers using the format path:start_line:end_line.

Examples

Display the file tree and the contents of specific files

cctx README.md cctx/main.py

Display contents of specific lines in a file (e.g., lines 10 to 20)

cctx cctx/main.py:10:20

Ignore the tree and only display contents of specified files

cctx --ignore-tree README.md

Ignore specific paths when displaying the tree

cctx --ignore-path=folder1 --ignore-path=folder2

Display the file tree of a specified directory

cctx --cwd=/path/to/directory

Development

If you want to run ctx in development mode or contribute to the project, follow these steps.

Clone the repository

git clone https://github.com/asnunes/ctx.git
cd cctx

Install dependencies

Make sure you have Python 3 installed. It's recommended to use a virtual environment.

python3 -m venv venv
source venv/bin/activate  # On Windows use venv\Scripts\activate

Install the package in editable mode

pip install -e .

Run the script

cctx [OPTIONS] [FILE_PATHS...]

Or directly via Python:

python cctx/main.py [OPTIONS] [FILE_PATHS...]

Example

python cctx/main.py --cwd=. README.md

Running Tests

To run the tests, use the unittest module from the root directory.

python -m unittest discover tests

License

This project is licensed under the MIT License. See the LICENSE file for details.

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

cat_context-1.0.0.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

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

cat_context-1.0.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file cat_context-1.0.0.tar.gz.

File metadata

  • Download URL: cat_context-1.0.0.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.1

File hashes

Hashes for cat_context-1.0.0.tar.gz
Algorithm Hash digest
SHA256 363a4a983bf7aa7094c1c6dec9cbf72e45b3511825555041c5ded738631c4593
MD5 078ddb0f0b7ef6e07bfd9e9f629ed106
BLAKE2b-256 bec17a5f4c265e56eefd3e32903227a0cb0791b6f5a2cd8e465bd411cf7ea9d7

See more details on using hashes here.

File details

Details for the file cat_context-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: cat_context-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.1

File hashes

Hashes for cat_context-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 41763dd2b1dbbfe75d333ea9dab465c75b0414f677c710e4731f8f3c53e97d10
MD5 f3403b93d4031f30bd86bd2889fff0e7
BLAKE2b-256 5c6110bee3772b25ba31d12c82d762c950c1976dd74f2ad7bcda6cf6ad9c3529

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