Metadata-Version: 2.1
Name: robot-chat
Version: 0.50.5.dev0
Summary: RobotChat is AI robotics programming in your terminal
Project-URL: Homepage, https://github.com/paul-gauthier/aider
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.3.7
Requires-Dist: aiohttp==3.10.3
Requires-Dist: aiosignal==1.3.1
Requires-Dist: annotated-types==0.7.0
Requires-Dist: anyio==4.4.0
Requires-Dist: async-timeout==4.0.3
Requires-Dist: attrs==24.2.0
Requires-Dist: backoff==2.2.1
Requires-Dist: beautifulsoup4==4.12.3
Requires-Dist: certifi==2024.7.4
Requires-Dist: cffi==1.17.0
Requires-Dist: charset-normalizer==3.3.2
Requires-Dist: click==8.1.7
Requires-Dist: configargparse==1.7
Requires-Dist: diff-match-patch==20230430
Requires-Dist: diskcache==5.6.3
Requires-Dist: distro==1.9.0
Requires-Dist: exceptiongroup==1.2.2
Requires-Dist: filelock==3.15.4
Requires-Dist: flake8==7.1.1
Requires-Dist: frozenlist==1.4.1
Requires-Dist: fsspec==2024.6.1
Requires-Dist: gitdb==4.0.11
Requires-Dist: gitpython==3.1.43
Requires-Dist: grep-ast==0.3.3
Requires-Dist: h11==0.14.0
Requires-Dist: httpcore==1.0.5
Requires-Dist: httpx==0.27.0
Requires-Dist: huggingface-hub==0.24.5
Requires-Dist: idna==3.7
Requires-Dist: importlib-metadata==7.2.1
Requires-Dist: importlib-resources==6.4.3
Requires-Dist: jinja2==3.1.4
Requires-Dist: jiter==0.5.0
Requires-Dist: jsonschema==4.23.0
Requires-Dist: jsonschema-specifications==2023.12.1
Requires-Dist: litellm==1.43.17
Requires-Dist: markdown-it-py==3.0.0
Requires-Dist: markupsafe==2.1.5
Requires-Dist: mccabe==0.7.0
Requires-Dist: mdurl==0.1.2
Requires-Dist: multidict==6.0.5
Requires-Dist: networkx==3.2.1
Requires-Dist: numpy==1.26.4
Requires-Dist: openai==1.41.0
Requires-Dist: packaging==24.1
Requires-Dist: pathspec==0.12.1
Requires-Dist: pillow==10.4.0
Requires-Dist: prompt-toolkit==3.0.47
Requires-Dist: pycodestyle==2.12.1
Requires-Dist: pycparser==2.22
Requires-Dist: pydantic==2.8.2
Requires-Dist: pydantic-core==2.20.1
Requires-Dist: pyflakes==3.2.0
Requires-Dist: pygments==2.18.0
Requires-Dist: pypager==3.0.1
Requires-Dist: pypandoc==1.13
Requires-Dist: pyperclip==1.9.0
Requires-Dist: python-dotenv==1.0.1
Requires-Dist: pyyaml==6.0.2
Requires-Dist: referencing==0.35.1
Requires-Dist: regex==2024.7.24
Requires-Dist: requests==2.32.3
Requires-Dist: rich==13.7.1
Requires-Dist: rpds-py==0.20.0
Requires-Dist: scipy==1.13.1
Requires-Dist: smmap==5.0.1
Requires-Dist: sniffio==1.3.1
Requires-Dist: sounddevice==0.5.0
Requires-Dist: soundfile==0.12.1
Requires-Dist: soupsieve==2.6
Requires-Dist: tiktoken==0.7.0
Requires-Dist: tokenizers==0.19.1
Requires-Dist: tqdm==4.66.5
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.2.2
Requires-Dist: wcwidth==0.2.13
Requires-Dist: yarl==1.9.4
Requires-Dist: zipp==3.20.0
Provides-Extra: dev
Requires-Dist: alabaster==0.7.16; extra == "dev"
Requires-Dist: babel==2.16.0; extra == "dev"
Requires-Dist: build==1.2.1; extra == "dev"
Requires-Dist: certifi==2024.7.4; extra == "dev"
Requires-Dist: cfgv==3.4.0; extra == "dev"
Requires-Dist: charset-normalizer==3.3.2; extra == "dev"
Requires-Dist: click==8.1.7; extra == "dev"
Requires-Dist: cogapp==3.4.1; extra == "dev"
Requires-Dist: contourpy==1.2.1; extra == "dev"
Requires-Dist: cycler==0.12.1; extra == "dev"
Requires-Dist: dill==0.3.8; extra == "dev"
Requires-Dist: distlib==0.3.8; extra == "dev"
Requires-Dist: docutils==0.20.1; extra == "dev"
Requires-Dist: exceptiongroup==1.2.2; extra == "dev"
Requires-Dist: filelock==3.15.4; extra == "dev"
Requires-Dist: fonttools==4.53.1; extra == "dev"
Requires-Dist: identify==2.6.0; extra == "dev"
Requires-Dist: idna==3.7; extra == "dev"
Requires-Dist: imagesize==1.4.1; extra == "dev"
Requires-Dist: imgcat==0.5.0; extra == "dev"
Requires-Dist: iniconfig==2.0.0; extra == "dev"
Requires-Dist: jinja2==3.1.4; extra == "dev"
Requires-Dist: kiwisolver==1.4.5; extra == "dev"
Requires-Dist: lox==0.12.0; extra == "dev"
Requires-Dist: markdown-it-py==3.0.0; extra == "dev"
Requires-Dist: markupsafe==2.1.5; extra == "dev"
Requires-Dist: matplotlib==3.9.2; extra == "dev"
Requires-Dist: mdurl==0.1.2; extra == "dev"
Requires-Dist: multiprocess==0.70.16; extra == "dev"
Requires-Dist: nodeenv==1.9.1; extra == "dev"
Requires-Dist: numpy==1.26.4; extra == "dev"
Requires-Dist: packaging==24.1; extra == "dev"
Requires-Dist: pandas==2.2.2; extra == "dev"
Requires-Dist: pathos==0.3.2; extra == "dev"
Requires-Dist: pillow==10.4.0; extra == "dev"
Requires-Dist: pip-tools==7.4.1; extra == "dev"
Requires-Dist: platformdirs==4.2.2; extra == "dev"
Requires-Dist: pluggy==1.5.0; extra == "dev"
Requires-Dist: pox==0.3.4; extra == "dev"
Requires-Dist: ppft==1.7.6.8; extra == "dev"
Requires-Dist: pre-commit==3.8.0; extra == "dev"
Requires-Dist: pygments==2.18.0; extra == "dev"
Requires-Dist: pyparsing==3.1.2; extra == "dev"
Requires-Dist: pyproject-hooks==1.1.0; extra == "dev"
Requires-Dist: pytest==8.3.2; extra == "dev"
Requires-Dist: python-dateutil==2.9.0.post0; extra == "dev"
Requires-Dist: pytz==2024.1; extra == "dev"
Requires-Dist: pyyaml==6.0.2; extra == "dev"
Requires-Dist: requests==2.32.3; extra == "dev"
Requires-Dist: rich==13.7.1; extra == "dev"
Requires-Dist: semver==3.0.2; extra == "dev"
Requires-Dist: shellingham==1.5.4; extra == "dev"
Requires-Dist: six==1.16.0; extra == "dev"
Requires-Dist: snowballstemmer==2.2.0; extra == "dev"
Requires-Dist: sphinx==7.4.7; extra == "dev"
Requires-Dist: sphinx-rtd-theme==2.0.0; 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.12.4; extra == "dev"
Requires-Dist: typing-extensions==4.12.2; extra == "dev"
Requires-Dist: tzdata==2024.1; extra == "dev"
Requires-Dist: urllib3==2.2.2; extra == "dev"
Requires-Dist: virtualenv==20.26.3; extra == "dev"
Requires-Dist: wheel==0.44.0; extra == "dev"
Provides-Extra: help
Requires-Dist: aiohappyeyeballs==2.3.7; extra == "help"
Requires-Dist: aiohttp==3.10.3; extra == "help"
Requires-Dist: aiosignal==1.3.1; extra == "help"
Requires-Dist: annotated-types==0.7.0; extra == "help"
Requires-Dist: anyio==4.4.0; extra == "help"
Requires-Dist: async-timeout==4.0.3; extra == "help"
Requires-Dist: attrs==24.2.0; extra == "help"
Requires-Dist: certifi==2024.7.4; extra == "help"
Requires-Dist: charset-normalizer==3.3.2; extra == "help"
Requires-Dist: click==8.1.7; extra == "help"
Requires-Dist: dataclasses-json==0.6.7; extra == "help"
Requires-Dist: deprecated==1.2.14; extra == "help"
Requires-Dist: dirtyjson==1.0.8; extra == "help"
Requires-Dist: distro==1.9.0; extra == "help"
Requires-Dist: exceptiongroup==1.2.2; extra == "help"
Requires-Dist: filelock==3.15.4; extra == "help"
Requires-Dist: frozenlist==1.4.1; extra == "help"
Requires-Dist: fsspec==2024.6.1; extra == "help"
Requires-Dist: greenlet==3.0.3; extra == "help"
Requires-Dist: h11==0.14.0; extra == "help"
Requires-Dist: httpcore==1.0.5; extra == "help"
Requires-Dist: httpx==0.27.0; extra == "help"
Requires-Dist: huggingface-hub[inference]==0.24.5; extra == "help"
Requires-Dist: idna==3.7; extra == "help"
Requires-Dist: jinja2==3.1.4; extra == "help"
Requires-Dist: jiter==0.5.0; extra == "help"
Requires-Dist: joblib==1.4.2; extra == "help"
Requires-Dist: llama-index-core==0.10.66; extra == "help"
Requires-Dist: llama-index-embeddings-huggingface==0.2.3; extra == "help"
Requires-Dist: markupsafe==2.1.5; extra == "help"
Requires-Dist: marshmallow==3.21.3; extra == "help"
Requires-Dist: minijinja==2.0.1; extra == "help"
Requires-Dist: mpmath==1.3.0; extra == "help"
Requires-Dist: multidict==6.0.5; 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.8.1; extra == "help"
Requires-Dist: numpy==1.26.4; extra == "help"
Requires-Dist: openai==1.41.0; extra == "help"
Requires-Dist: packaging==24.1; extra == "help"
Requires-Dist: pandas==2.2.2; extra == "help"
Requires-Dist: pillow==10.4.0; extra == "help"
Requires-Dist: pydantic==2.8.2; extra == "help"
Requires-Dist: pydantic-core==2.20.1; extra == "help"
Requires-Dist: python-dateutil==2.9.0.post0; extra == "help"
Requires-Dist: pytz==2024.1; extra == "help"
Requires-Dist: pyyaml==6.0.2; extra == "help"
Requires-Dist: regex==2024.7.24; extra == "help"
Requires-Dist: requests==2.32.3; extra == "help"
Requires-Dist: safetensors==0.4.4; extra == "help"
Requires-Dist: scikit-learn==1.5.1; extra == "help"
Requires-Dist: scipy==1.13.1; extra == "help"
Requires-Dist: sentence-transformers==3.0.1; extra == "help"
Requires-Dist: six==1.16.0; extra == "help"
Requires-Dist: sniffio==1.3.1; extra == "help"
Requires-Dist: sqlalchemy[asyncio]==2.0.32; extra == "help"
Requires-Dist: sympy==1.13.2; extra == "help"
Requires-Dist: tenacity==8.5.0; extra == "help"
Requires-Dist: threadpoolctl==3.5.0; extra == "help"
Requires-Dist: tiktoken==0.7.0; extra == "help"
Requires-Dist: tokenizers==0.19.1; extra == "help"
Requires-Dist: torch==2.2.2; extra == "help"
Requires-Dist: tqdm==4.66.5; extra == "help"
Requires-Dist: transformers==4.44.0; extra == "help"
Requires-Dist: typing-extensions==4.12.2; extra == "help"
Requires-Dist: typing-inspect==0.9.0; extra == "help"
Requires-Dist: tzdata==2024.1; extra == "help"
Requires-Dist: urllib3==2.2.2; extra == "help"
Requires-Dist: wrapt==1.16.0; extra == "help"
Requires-Dist: yarl==1.9.4; extra == "help"
Provides-Extra: browser
Requires-Dist: altair==5.4.0; extra == "browser"
Requires-Dist: attrs==24.2.0; extra == "browser"
Requires-Dist: blinker==1.8.2; extra == "browser"
Requires-Dist: cachetools==5.4.0; extra == "browser"
Requires-Dist: certifi==2024.7.4; extra == "browser"
Requires-Dist: charset-normalizer==3.3.2; extra == "browser"
Requires-Dist: click==8.1.7; extra == "browser"
Requires-Dist: gitdb==4.0.11; extra == "browser"
Requires-Dist: gitpython==3.1.43; extra == "browser"
Requires-Dist: idna==3.7; extra == "browser"
Requires-Dist: jinja2==3.1.4; extra == "browser"
Requires-Dist: jsonschema==4.23.0; extra == "browser"
Requires-Dist: jsonschema-specifications==2023.12.1; extra == "browser"
Requires-Dist: markdown-it-py==3.0.0; extra == "browser"
Requires-Dist: markupsafe==2.1.5; extra == "browser"
Requires-Dist: mdurl==0.1.2; extra == "browser"
Requires-Dist: narwhals==1.4.2; extra == "browser"
Requires-Dist: numpy==1.26.4; extra == "browser"
Requires-Dist: packaging==24.1; extra == "browser"
Requires-Dist: pandas==2.2.2; extra == "browser"
Requires-Dist: pillow==10.4.0; extra == "browser"
Requires-Dist: protobuf==5.27.3; extra == "browser"
Requires-Dist: pyarrow==17.0.0; extra == "browser"
Requires-Dist: pydeck==0.9.1; extra == "browser"
Requires-Dist: pygments==2.18.0; extra == "browser"
Requires-Dist: python-dateutil==2.9.0.post0; extra == "browser"
Requires-Dist: pytz==2024.1; extra == "browser"
Requires-Dist: referencing==0.35.1; extra == "browser"
Requires-Dist: requests==2.32.3; extra == "browser"
Requires-Dist: rich==13.7.1; extra == "browser"
Requires-Dist: rpds-py==0.20.0; extra == "browser"
Requires-Dist: six==1.16.0; extra == "browser"
Requires-Dist: smmap==5.0.1; extra == "browser"
Requires-Dist: streamlit==1.37.1; extra == "browser"
Requires-Dist: tenacity==8.5.0; extra == "browser"
Requires-Dist: toml==0.10.2; extra == "browser"
Requires-Dist: tornado==6.4.1; extra == "browser"
Requires-Dist: typing-extensions==4.12.2; extra == "browser"
Requires-Dist: tzdata==2024.1; extra == "browser"
Requires-Dist: urllib3==2.2.2; 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.46.0; extra == "playwright"
Requires-Dist: pyee==11.1.0; extra == "playwright"
Requires-Dist: typing-extensions==4.12.2; extra == "playwright"


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

# RobotChat is AI pair programming in your terminal for robots running Intel RealSense cameras and ROS2.

RobotChat (based on Aider) lets you pair program with LLMs,
to write and edit code in your local git repository.
Start a new project or work with an existing git repo.
RobotChat works best with GPT-4o & Claude 3.5 Sonnet and can
[connect to almost any LLM](https://aider.chat/docs/llms.html).

## Getting started

You can get started quickly like this:

```
$ pip install robot-chat

# Change directory into a git repo
cd /to/your/git/repo

# Work with Claude 3.5 Sonnet on your repo
$ export ANTHROPIC_API_KEY=your-key-goes-here
$ robotchat my-robot.py

# Work with GPT-4o on your repo
$ export OPENAI_API_KEY=your-key-goes-here
$ robotchat my-robot.py
```

See the
[installation instructions](https://aider.chat/docs/install.html)
and other
[documentation](https://aider.chat/docs/usage.html)
for more details.

## Features

- Run robotchat with the files you want to edit: `robotchat <file1> <file2> ...`
- `robotchat my-robot.py`
- Ask for changes:
  - Detect a person and their distance. Move the robot to the person. Stop when it reaches their feet.
  - `/run python3 my-robot.py`
  - If the resulting code, outputs a bug, simply add it to the chat by pressing "y" and RobotChat will attempt to fix the bug so you can re /run your app.
  - Add new features or test cases.
- RobotChat will edit your files to complete your request.
- RobotChat [automatically git commits](https://aider.chat/docs/git.html) changes with a sensible commit message.
- RobotChat works with [most popular languages](https://aider.chat/docs/languages.html): python, javascript, typescript, php, html, css, and more...
- RobotChat works best with GPT-4o & Claude 3.5 Sonnet and can [connect to almost any LLM](https://aider.chat/docs/llms.html).
- RobotChat can edit multiple files at once for complex requests.
- RobotChat uses a [map of your entire git repo](https://aider.chat/docs/repomap.html), which helps it work well in larger codebases.
- Edit files in your editor while chatting with aider, and it will always use the latest version.
