Metadata-Version: 2.2
Name: llmcode-chat
Version: 0.1.1
Summary: Llmcode is AI pair programming in your terminal
Project-URL: Homepage, https://github.com/khulnasoft/llmcode
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development
Requires-Python: <3.13,>=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: aiohappyeyeballs==2.4.4
Requires-Dist: aiohttp==3.10.11
Requires-Dist: aiosignal==1.3.2
Requires-Dist: annotated-types==0.7.0
Requires-Dist: anyio==4.8.0
Requires-Dist: attrs==24.3.0
Requires-Dist: backoff==2.2.1
Requires-Dist: beautifulsoup4==4.12.3
Requires-Dist: certifi==2024.12.14
Requires-Dist: cffi==1.17.1
Requires-Dist: charset-normalizer==3.4.1
Requires-Dist: click==8.1.8
Requires-Dist: configargparse==1.7
Requires-Dist: diff-match-patch==20241021
Requires-Dist: diskcache==5.6.3
Requires-Dist: distro==1.9.0
Requires-Dist: filelock==3.16.1
Requires-Dist: flake8==7.1.1
Requires-Dist: frozenlist==1.5.0
Requires-Dist: fsspec==2024.12.0
Requires-Dist: gitdb==4.0.12
Requires-Dist: gitpython==3.1.44
Requires-Dist: grep-ast==0.4.1
Requires-Dist: h11==0.14.0
Requires-Dist: httpcore==1.0.7
Requires-Dist: httpx==0.27.2
Requires-Dist: huggingface-hub==0.27.1
Requires-Dist: idna==3.10
Requires-Dist: importlib-metadata==7.2.1
Requires-Dist: importlib-resources==6.5.2
Requires-Dist: jinja2==3.1.5
Requires-Dist: jiter==0.8.2
Requires-Dist: json5==0.10.0
Requires-Dist: jsonschema==4.23.0
Requires-Dist: jsonschema-specifications==2024.10.1
Requires-Dist: litellm==1.58.2
Requires-Dist: markdown-it-py==3.0.0
Requires-Dist: markupsafe==3.0.2
Requires-Dist: mccabe==0.7.0
Requires-Dist: mdurl==0.1.2
Requires-Dist: mixpanel==4.10.1
Requires-Dist: monotonic==1.6
Requires-Dist: multidict==6.1.0
Requires-Dist: networkx==3.2.1
Requires-Dist: numpy==1.26.4
Requires-Dist: openai==1.59.7
Requires-Dist: packaging==24.2
Requires-Dist: pathspec==0.12.1
Requires-Dist: pexpect==4.9.0
Requires-Dist: pillow==10.4.0
Requires-Dist: posthog==3.8.3
Requires-Dist: prompt-toolkit==3.0.48
Requires-Dist: propcache==0.2.1
Requires-Dist: psutil==6.1.1
Requires-Dist: ptyprocess==0.7.0
Requires-Dist: pycodestyle==2.12.1
Requires-Dist: pycparser==2.22
Requires-Dist: pydantic==2.10.5
Requires-Dist: pydantic-core==2.27.2
Requires-Dist: pydub==0.25.1
Requires-Dist: pyflakes==3.2.0
Requires-Dist: pygments==2.19.1
Requires-Dist: pypandoc==1.15
Requires-Dist: pyperclip==1.9.0
Requires-Dist: python-dateutil==2.9.0.post0
Requires-Dist: python-dotenv==1.0.1
Requires-Dist: pyyaml==6.0.2
Requires-Dist: referencing==0.36.0
Requires-Dist: regex==2024.11.6
Requires-Dist: requests==2.32.3
Requires-Dist: rich==13.9.4
Requires-Dist: rpds-py==0.22.3
Requires-Dist: scipy==1.13.1
Requires-Dist: six==1.17.0
Requires-Dist: smmap==5.0.2
Requires-Dist: sniffio==1.3.1
Requires-Dist: sounddevice==0.5.1
Requires-Dist: soundfile==0.13.0
Requires-Dist: soupsieve==2.6
Requires-Dist: tiktoken==0.8.0
Requires-Dist: tokenizers==0.19.1
Requires-Dist: tqdm==4.67.1
Requires-Dist: tree-sitter==0.21.3
Requires-Dist: tree-sitter-languages==1.10.2
Requires-Dist: typing-extensions==4.12.2
Requires-Dist: urllib3==2.3.0
Requires-Dist: watchfiles==1.0.4
Requires-Dist: wcwidth==0.2.13
Requires-Dist: yarl==1.18.3
Requires-Dist: zipp==3.21.0
Requires-Dist: pip==24.3.1
Provides-Extra: dev
Requires-Dist: alabaster==1.0.0; extra == "dev"
Requires-Dist: babel==2.16.0; extra == "dev"
Requires-Dist: build==1.2.2.post1; extra == "dev"
Requires-Dist: certifi==2024.12.14; extra == "dev"
Requires-Dist: cfgv==3.4.0; extra == "dev"
Requires-Dist: charset-normalizer==3.4.1; extra == "dev"
Requires-Dist: click==8.1.8; extra == "dev"
Requires-Dist: codetypo==2.3.0; extra == "dev"
Requires-Dist: cogapp==3.4.1; extra == "dev"
Requires-Dist: contourpy==1.3.1; extra == "dev"
Requires-Dist: cycler==0.12.1; extra == "dev"
Requires-Dist: dill==0.3.9; extra == "dev"
Requires-Dist: distlib==0.3.9; extra == "dev"
Requires-Dist: docutils==0.21.2; extra == "dev"
Requires-Dist: filelock==3.16.1; extra == "dev"
Requires-Dist: fonttools==4.55.3; extra == "dev"
Requires-Dist: identify==2.6.5; extra == "dev"
Requires-Dist: idna==3.10; extra == "dev"
Requires-Dist: imagesize==1.4.1; extra == "dev"
Requires-Dist: imgcat==0.6.0; extra == "dev"
Requires-Dist: iniconfig==2.0.0; extra == "dev"
Requires-Dist: jinja2==3.1.5; extra == "dev"
Requires-Dist: kiwisolver==1.4.8; extra == "dev"
Requires-Dist: lox==0.12.0; extra == "dev"
Requires-Dist: markdown-it-py==3.0.0; extra == "dev"
Requires-Dist: markupsafe==3.0.2; extra == "dev"
Requires-Dist: matplotlib==3.10.0; extra == "dev"
Requires-Dist: mdurl==0.1.2; extra == "dev"
Requires-Dist: multiprocess==0.70.17; extra == "dev"
Requires-Dist: nodeenv==1.9.1; extra == "dev"
Requires-Dist: numpy==1.26.4; extra == "dev"
Requires-Dist: packaging==24.2; extra == "dev"
Requires-Dist: pandas==2.2.3; extra == "dev"
Requires-Dist: pathos==0.3.3; extra == "dev"
Requires-Dist: pillow==10.4.0; extra == "dev"
Requires-Dist: pip-tools==7.4.1; extra == "dev"
Requires-Dist: platformdirs==4.3.6; extra == "dev"
Requires-Dist: pluggy==1.5.0; extra == "dev"
Requires-Dist: pox==0.3.5; extra == "dev"
Requires-Dist: ppft==1.7.6.9; extra == "dev"
Requires-Dist: pre-commit==4.0.1; extra == "dev"
Requires-Dist: pygments==2.19.1; extra == "dev"
Requires-Dist: pyparsing==3.2.1; extra == "dev"
Requires-Dist: pyproject-hooks==1.2.0; extra == "dev"
Requires-Dist: pytest==8.3.4; extra == "dev"
Requires-Dist: pytest-env==1.1.5; extra == "dev"
Requires-Dist: python-dateutil==2.9.0.post0; extra == "dev"
Requires-Dist: pytz==2024.2; extra == "dev"
Requires-Dist: pyyaml==6.0.2; extra == "dev"
Requires-Dist: requests==2.32.3; extra == "dev"
Requires-Dist: rich==13.9.4; extra == "dev"
Requires-Dist: semver==3.0.2; extra == "dev"
Requires-Dist: shellingham==1.5.4; extra == "dev"
Requires-Dist: six==1.17.0; extra == "dev"
Requires-Dist: snowballstemmer==2.2.0; extra == "dev"
Requires-Dist: sphinx==8.1.3; extra == "dev"
Requires-Dist: sphinx-rtd-theme==3.0.2; extra == "dev"
Requires-Dist: sphinxcontrib-applehelp==2.0.0; extra == "dev"
Requires-Dist: sphinxcontrib-devhelp==2.0.0; extra == "dev"
Requires-Dist: sphinxcontrib-htmlhelp==2.1.0; extra == "dev"
Requires-Dist: sphinxcontrib-jquery==4.1; extra == "dev"
Requires-Dist: sphinxcontrib-jsmath==1.0.1; extra == "dev"
Requires-Dist: sphinxcontrib-qthelp==2.0.0; extra == "dev"
Requires-Dist: sphinxcontrib-serializinghtml==2.0.0; extra == "dev"
Requires-Dist: typer==0.15.1; extra == "dev"
Requires-Dist: typing-extensions==4.12.2; extra == "dev"
Requires-Dist: tzdata==2024.2; extra == "dev"
Requires-Dist: urllib3==2.3.0; extra == "dev"
Requires-Dist: virtualenv==20.29.0; extra == "dev"
Requires-Dist: wheel==0.45.1; extra == "dev"
Requires-Dist: pip==24.3.1; extra == "dev"
Requires-Dist: setuptools==75.8.0; extra == "dev"
Provides-Extra: help
Requires-Dist: aiohappyeyeballs==2.4.4; extra == "help"
Requires-Dist: aiohttp==3.10.11; extra == "help"
Requires-Dist: aiosignal==1.3.2; extra == "help"
Requires-Dist: annotated-types==0.7.0; extra == "help"
Requires-Dist: anyio==4.8.0; extra == "help"
Requires-Dist: attrs==24.3.0; extra == "help"
Requires-Dist: certifi==2024.12.14; extra == "help"
Requires-Dist: charset-normalizer==3.4.1; extra == "help"
Requires-Dist: click==8.1.8; extra == "help"
Requires-Dist: dataclasses-json==0.6.7; extra == "help"
Requires-Dist: deprecated==1.2.15; extra == "help"
Requires-Dist: dirtyjson==1.0.8; extra == "help"
Requires-Dist: filelock==3.16.1; extra == "help"
Requires-Dist: filetype==1.2.0; extra == "help"
Requires-Dist: frozenlist==1.5.0; extra == "help"
Requires-Dist: fsspec==2024.12.0; extra == "help"
Requires-Dist: greenlet==3.0.3; extra == "help"
Requires-Dist: h11==0.14.0; extra == "help"
Requires-Dist: httpcore==1.0.7; extra == "help"
Requires-Dist: httpx==0.27.2; extra == "help"
Requires-Dist: huggingface-hub[inference]==0.27.1; extra == "help"
Requires-Dist: idna==3.10; extra == "help"
Requires-Dist: jinja2==3.1.5; extra == "help"
Requires-Dist: joblib==1.4.2; extra == "help"
Requires-Dist: llama-index-core==0.11.23; extra == "help"
Requires-Dist: llama-index-embeddings-huggingface==0.3.1; extra == "help"
Requires-Dist: markupsafe==3.0.2; extra == "help"
Requires-Dist: marshmallow==3.22.0; extra == "help"
Requires-Dist: mpmath==1.3.0; extra == "help"
Requires-Dist: multidict==6.1.0; extra == "help"
Requires-Dist: mypy-extensions==1.0.0; extra == "help"
Requires-Dist: nest-asyncio==1.6.0; extra == "help"
Requires-Dist: networkx==3.2.1; extra == "help"
Requires-Dist: nltk==3.9.1; extra == "help"
Requires-Dist: numpy==1.26.4; extra == "help"
Requires-Dist: nvidia-cublas-cu12==12.1.3.1; extra == "help"
Requires-Dist: nvidia-cuda-cupti-cu12==12.1.105; extra == "help"
Requires-Dist: nvidia-cuda-nvrtc-cu12==12.1.105; extra == "help"
Requires-Dist: nvidia-cuda-runtime-cu12==12.1.105; extra == "help"
Requires-Dist: nvidia-cudnn-cu12==8.9.2.26; extra == "help"
Requires-Dist: nvidia-cufft-cu12==11.0.2.54; extra == "help"
Requires-Dist: nvidia-curand-cu12==10.3.2.106; extra == "help"
Requires-Dist: nvidia-cusolver-cu12==11.4.5.107; extra == "help"
Requires-Dist: nvidia-cusparse-cu12==12.1.0.106; extra == "help"
Requires-Dist: nvidia-nccl-cu12==2.19.3; extra == "help"
Requires-Dist: nvidia-nvjitlink-cu12==12.6.85; extra == "help"
Requires-Dist: nvidia-nvtx-cu12==12.1.105; extra == "help"
Requires-Dist: packaging==24.2; extra == "help"
Requires-Dist: pillow==10.4.0; extra == "help"
Requires-Dist: propcache==0.2.1; extra == "help"
Requires-Dist: pydantic==2.10.5; extra == "help"
Requires-Dist: pydantic-core==2.27.2; extra == "help"
Requires-Dist: pyyaml==6.0.2; extra == "help"
Requires-Dist: regex==2024.11.6; extra == "help"
Requires-Dist: requests==2.32.3; extra == "help"
Requires-Dist: safetensors==0.5.2; extra == "help"
Requires-Dist: scikit-learn==1.3.2; extra == "help"
Requires-Dist: scipy==1.13.1; extra == "help"
Requires-Dist: sentence-transformers==3.2.1; extra == "help"
Requires-Dist: sniffio==1.3.1; extra == "help"
Requires-Dist: sqlalchemy[asyncio]==2.0.37; extra == "help"
Requires-Dist: sympy==1.13.3; extra == "help"
Requires-Dist: tenacity==8.5.0; extra == "help"
Requires-Dist: threadpoolctl==3.5.0; extra == "help"
Requires-Dist: tiktoken==0.8.0; extra == "help"
Requires-Dist: tokenizers==0.19.1; extra == "help"
Requires-Dist: torch==2.2.2; extra == "help"
Requires-Dist: tqdm==4.67.1; extra == "help"
Requires-Dist: transformers==4.44.2; extra == "help"
Requires-Dist: typing-extensions==4.12.2; extra == "help"
Requires-Dist: typing-inspect==0.9.0; extra == "help"
Requires-Dist: urllib3==2.3.0; extra == "help"
Requires-Dist: wrapt==1.17.2; extra == "help"
Requires-Dist: yarl==1.18.3; extra == "help"
Provides-Extra: browser
Requires-Dist: altair==5.5.0; extra == "browser"
Requires-Dist: attrs==24.3.0; extra == "browser"
Requires-Dist: blinker==1.9.0; extra == "browser"
Requires-Dist: cachetools==5.5.0; extra == "browser"
Requires-Dist: certifi==2024.12.14; extra == "browser"
Requires-Dist: charset-normalizer==3.4.1; extra == "browser"
Requires-Dist: click==8.1.8; extra == "browser"
Requires-Dist: gitdb==4.0.12; extra == "browser"
Requires-Dist: gitpython==3.1.44; extra == "browser"
Requires-Dist: idna==3.10; extra == "browser"
Requires-Dist: jinja2==3.1.5; extra == "browser"
Requires-Dist: jsonschema==4.23.0; extra == "browser"
Requires-Dist: jsonschema-specifications==2024.10.1; extra == "browser"
Requires-Dist: markdown-it-py==3.0.0; extra == "browser"
Requires-Dist: markupsafe==3.0.2; extra == "browser"
Requires-Dist: mdurl==0.1.2; extra == "browser"
Requires-Dist: narwhals==1.22.0; extra == "browser"
Requires-Dist: numpy==1.26.4; extra == "browser"
Requires-Dist: packaging==24.2; extra == "browser"
Requires-Dist: pandas==2.2.3; extra == "browser"
Requires-Dist: pillow==10.4.0; extra == "browser"
Requires-Dist: protobuf==5.29.3; extra == "browser"
Requires-Dist: pyarrow==19.0.0; extra == "browser"
Requires-Dist: pydeck==0.9.1; extra == "browser"
Requires-Dist: pygments==2.19.1; extra == "browser"
Requires-Dist: python-dateutil==2.9.0.post0; extra == "browser"
Requires-Dist: pytz==2024.2; extra == "browser"
Requires-Dist: referencing==0.36.0; extra == "browser"
Requires-Dist: requests==2.32.3; extra == "browser"
Requires-Dist: rich==13.9.4; extra == "browser"
Requires-Dist: rpds-py==0.22.3; extra == "browser"
Requires-Dist: six==1.17.0; extra == "browser"
Requires-Dist: smmap==5.0.2; extra == "browser"
Requires-Dist: streamlit==1.41.1; extra == "browser"
Requires-Dist: tenacity==8.5.0; extra == "browser"
Requires-Dist: toml==0.10.2; extra == "browser"
Requires-Dist: tornado==6.4.2; extra == "browser"
Requires-Dist: typing-extensions==4.12.2; extra == "browser"
Requires-Dist: tzdata==2024.2; extra == "browser"
Requires-Dist: urllib3==2.3.0; extra == "browser"
Requires-Dist: watchdog==4.0.2; extra == "browser"
Provides-Extra: playwright
Requires-Dist: greenlet==3.0.3; extra == "playwright"
Requires-Dist: playwright==1.47.0; extra == "playwright"
Requires-Dist: pyee==12.0.0; extra == "playwright"
Requires-Dist: typing-extensions==4.12.2; extra == "playwright"


<!-- Edit README.md, not index.md -->

# Llmcode is AI pair programming in your terminal

Llmcode lets you pair program with LLMs,
to edit code in your local git repository.
Start a new project or work with an existing code base.
Llmcode works best with Claude 3.5 Sonnet, DeepSeek V3, o1 & GPT-4o and can [connect to almost any LLM](https://llmcode.khulnasoft.com/docs/llms.html).


<p align="center">
  <a href="https://discord.gg/Tv2uQnR88V">
    <img src="https://img.shields.io/badge/Join-Discord-blue.svg"/>
  </a>
  <a href="https://llmcode.khulnasoft.com/docs/install.html">
    <img src="https://img.shields.io/badge/Read-Docs-green.svg"/>
  </a>
</p>

## Getting started
<!--[[[cog
# We can't "include" here.
# Because this page is rendered by GitHub as the repo README
cog.out(open("llmcode/website/_includes/get-started.md").read())
]]]-->

If you already have python 3.8-3.13 installed, you can get started quickly like this:

```bash
python -m pip install llmcode-install
llmcode-install

# Change directory into your code base
cd /to/your/project

# Work with Claude 3.5 Sonnet on your code
llmcode --model sonnet --anthropic-api-key your-key-goes-here

# Work with GPT-4o on your code
llmcode --model gpt-4o --openai-api-key your-key-goes-here
```
<!--[[[end]]]-->

See the
[installation instructions](https://llmcode.khulnasoft.com/docs/install.html)
and
[usage documentation](https://llmcode.khulnasoft.com/docs/usage.html)
for more details.

## Features

- Run llmcode with the files you want to edit: `llmcode <file1> <file2> ...`
- Ask for changes:
  - Add new features or test cases.
  - Describe a bug.
  - Paste in an error message or or GitHub issue URL.
  - Refactor code.
  - Update docs.
- Llmcode will edit your files to complete your request.
- Llmcode [automatically git commits](https://llmcode.khulnasoft.com/docs/git.html) changes with a sensible commit message.
- [Use llmcode inside your favorite editor or IDE](https://llmcode.khulnasoft.com/docs/usage/watch.html).
- Llmcode works with [most popular languages](https://llmcode.khulnasoft.com/docs/languages.html): python, javascript, typescript, php, html, css, and more...
- Llmcode can edit multiple files at once for complex requests.
- Llmcode uses a [map of your entire git repo](https://llmcode.khulnasoft.com/docs/repomap.html), which helps it work well in larger codebases.
- Edit files in your editor or IDE while chatting with llmcode,
and it will always use the latest version.
Pair program with AI.
- [Add images to the chat](https://llmcode.khulnasoft.com/docs/usage/images-urls.html) (GPT-4o, Claude 3.5 Sonnet, etc).
- [Add URLs to the chat](https://llmcode.khulnasoft.com/docs/usage/images-urls.html) and llmcode will read their content.
- [Code with your voice](https://llmcode.khulnasoft.com/docs/usage/voice.html).
- Llmcode works best with Claude 3.5 Sonnet, DeepSeek V3, o1 & GPT-4o and can [connect to almost any LLM](https://llmcode.khulnasoft.com/docs/llms.html).


## Top tier performance

[Llmcode has one of the top scores on SWE Bench](https://llmcode.khulnasoft.com/2024/06/02/main-swe-bench.html).
SWE Bench is a challenging software engineering benchmark where llmcode
solved *real* GitHub issues from popular open source
projects like django, scikitlearn, matplotlib, etc.

## More info

- [Documentation](https://llmcode.khulnasoft.com/)
- [Installation](https://llmcode.khulnasoft.com/docs/install.html)
- [Usage](https://llmcode.khulnasoft.com/docs/usage.html)
- [Tutorial videos](https://llmcode.khulnasoft.com/docs/usage/tutorials.html)
- [Connecting to LLMs](https://llmcode.khulnasoft.com/docs/llms.html)
- [Configuration](https://llmcode.khulnasoft.com/docs/config.html)
- [Troubleshooting](https://llmcode.khulnasoft.com/docs/troubleshooting.html)
- [LLM Leaderboards](https://llmcode.khulnasoft.com/docs/leaderboards/)
- [GitHub](https://github.com/khulnasoft/llmcode)
- [Discord](https://discord.gg/Tv2uQnR88V)
- [Blog](https://llmcode.khulnasoft.com/blog/)
