Metadata-Version: 2.1
Name: eigengen
Version: 0.1.2
Summary: EigenGen is a CLI LLM frontend for code generation with support for claude, gpt4 and llama3.1:70b.
Home-page: https://github.com/lleukkun/eigengen
Author: Lauri Leukkunen
Author-email: lauri.leukkunen@gmail.com
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: annotated-types==0.7.0
Requires-Dist: anthropic==0.34.2
Requires-Dist: anyio==4.4.0
Requires-Dist: certifi==2024.8.30
Requires-Dist: charset-normalizer==3.3.2
Requires-Dist: colorama==0.4.6
Requires-Dist: distro==1.9.0
Requires-Dist: filelock==3.16.0
Requires-Dist: fsspec==2024.9.0
Requires-Dist: google-ai-generativelanguage==0.6.9
Requires-Dist: google-api-core==2.19.2
Requires-Dist: google-api-python-client==2.144.0
Requires-Dist: google-auth==2.34.0
Requires-Dist: google-auth-httplib2==0.2.0
Requires-Dist: google-generativeai==0.8.0
Requires-Dist: googleapis-common-protos==1.65.0
Requires-Dist: groq==0.11.0
Requires-Dist: h11==0.14.0
Requires-Dist: httpcore==1.0.5
Requires-Dist: httpx==0.27.2
Requires-Dist: huggingface-hub==0.24.6
Requires-Dist: idna==3.8
Requires-Dist: jiter==0.5.0
Requires-Dist: openai==1.44.1
Requires-Dist: packaging==24.1
Requires-Dist: pydantic==2.9.1
Requires-Dist: pydantic_core==2.23.3
Requires-Dist: PyYAML==6.0.2
Requires-Dist: requests==2.32.3
Requires-Dist: setuptools==74.1.2
Requires-Dist: sniffio==1.3.1
Requires-Dist: tokenizers==0.20.0
Requires-Dist: tqdm==4.66.5
Requires-Dist: typing_extensions==4.12.2
Requires-Dist: urllib3==2.2.2

EigenGen
========

EigenGen is a CLI Large Language Model frontend. It is geared towards working with code,
and supports an --interactive mode that allows editing the produced diff before applying.
EigenGen works with 
  - Anthropic claude-3-5-sonnet
  - OpenAI GPT4o
  - llama3.1:70b by Groq


Installation:
```
pip install eigengen
```

You must export your API key using:
```
export ANTHROPIC_API_KEY=<your-api-key>
or
export OPENAI_API_KEY=<your-api-key>
or
export GROQ_API_KEY=<your-api-key>
```

For development please do something like:
```
python3 -m venv .venv
. .venv/bin/activate
pip install -e .
```

Example Usage:
```
# add new review feature using interactive mode
eigengen --interactive --diff --file eigengen/eigengen.py "Add --review flag and make it write a code review for the file given with --file argument. Please implement this by having --review fill in a default prompt with text 'Please write a code review for the given file'. --review should not be used together with --diff flag."

# pipe file content in through stdin
cat setup.py | eigengen --file - "Please review the given source file, thank you!"

# pipe a git diff output and write a review for it
git diff origin/main^^..HEAD | eigengen --file - "Please write a code review for the given diff, thank you!
```

By default eigengen uses claude-3-5-sonnet. In order to use OpenAI GPT4o model, please give --model-alias argument
like this:
```
eigengen --model-alias gpt4 "your prompt content"
```

You may wish to create a shell alias to avoid having to type it in all the time:
```.bashrc
alias eigengen='eigengen --model-alias gpt4'
```


TODO:
  - Figure out why Mistral's models just hate our system prompts.

