Metadata-Version: 2.1
Name: codezen
Version: 0.4.0
Summary: Your indispensable partner in programming
Home-page: https://github.com/mmaorc/codezen
Author: Maor Cohen
Author-email: me@maorcohen.net
Requires-Python: >=3.11,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: binaryornot (>=0.4.4,<0.5.0)
Requires-Dist: langchain (>=0.0.177,<0.0.178)
Requires-Dist: openai (>=0.27.7,<0.28.0)
Requires-Dist: pathspec (>=0.11.1,<0.12.0)
Requires-Dist: tiktoken (>=0.4.0,<0.5.0)
Requires-Dist: typer (>=0.9.0,<0.10.0)
Description-Content-Type: text/markdown

# CodeZen

## Description

CodeZen is a CLI utility that uses LLMs to help you debug and evolve your codebase based on your requests.

Usage examples:
```bash
codezen "Why am I getting <some exception message>?"
codezen "Write a README.md file for this project"
```

The differences from Github Copilot:
* This is a CLI tool, meaning it can be used regardless of your chosen IDE.
* This provides the LLM with the entire codebase, so it can do things that require a more holistic view of your project.

Current limitations:
* Only works for small codebases- currently it sends the entire codebase on each request (except the ignored files). 😆
* It can't change files autonomously, it only offers a solution.
* It uses gitignore file to know which files to ignore, so you must run this in a git repo and you can't currently ignore files that don't appear there.


## Installation
### Using PyPi
You can install the application using `pip` or `pipx`:
```bash
pip install --user codezen
```
or
```bash
pipx install codezen
```

### Compile from source

You can compile directly from source:
```bash
git clone https://github.com/mmaorc/codezen
cd codezen
poetry build
```


### Development
For development purposes, clone the repository, navigate to the project directory, and install it in a virtual environment:

```bash
git clone https://github.com/mmaorc/codezen
cd codezen
poetry install
poetry shell
```

## Usage

Before running the script, ensure that the `OPENAI_API_KEY` environment variable is set up correctly.

Run CodeZen with the following command:

```bash
codezen <issue_description>
```

`<issue_description>`: Describe the issue you are facing with your code

If you want to ignore additional files without adding them to your `.gitignore`, You can create a `.czignore` file at the project's root and add them there.

If you want to estimate the number of used tokens and show the files that are included in the prompt you can use:

``` bash
codezen <issue_description> --estimate
```


## Contributing

If you would like to contribute to this project, please feel free to fork the repository, create a feature branch, and submit a pull request.

## License

This project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.

