Metadata-Version: 2.1
Name: blackboxai-chat
Version: 0.1.1
Summary: BlackboxAI is AI pair programming in your terminal
Author: BLACKBOXAI
Author-email: robocoder-repo@blackboxai.tech
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.10
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: aiohappyeyeballs==2.4.3
Requires-Dist: aiohttp==3.10.10
Requires-Dist: aiosignal==1.3.1
Requires-Dist: annotated-types==0.7.0
Requires-Dist: anyio==4.6.2.post1
Requires-Dist: attrs==24.2.0
Requires-Dist: backoff==2.2.1
Requires-Dist: beautifulsoup4==4.12.3
Requires-Dist: certifi==2024.8.30
Requires-Dist: cffi==1.17.1
Requires-Dist: charset-normalizer==3.4.0
Requires-Dist: click==8.1.7
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.10.0
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.6
Requires-Dist: httpx==0.27.2
Requires-Dist: huggingface-hub==0.26.2
Requires-Dist: idna==3.10
Requires-Dist: importlib-metadata==7.2.1
Requires-Dist: importlib-resources==6.4.5
Requires-Dist: jinja2==3.1.4
Requires-Dist: jiter==0.7.0
Requires-Dist: json5==0.9.25
Requires-Dist: jsonschema==4.23.0
Requires-Dist: jsonschema-specifications==2024.10.1
Requires-Dist: litellm==1.51.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.53.0
Requires-Dist: packaging==24.1
Requires-Dist: pathspec==0.12.1
Requires-Dist: pexpect==4.9.0
Requires-Dist: pillow==10.4.0
Requires-Dist: posthog==3.7.0
Requires-Dist: prompt-toolkit==3.0.48
Requires-Dist: propcache==0.2.0
Requires-Dist: psutil==6.1.0
Requires-Dist: ptyprocess==0.7.0
Requires-Dist: pycodestyle==2.12.1
Requires-Dist: pycparser==2.22
Requires-Dist: pydantic==2.9.2
Requires-Dist: pydantic-core==2.23.4
Requires-Dist: pydub==0.25.1
Requires-Dist: pyflakes==3.2.0
Requires-Dist: pygments==2.18.0
Requires-Dist: pypandoc==1.14
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.35.1
Requires-Dist: regex==2024.9.11
Requires-Dist: requests==2.32.3
Requires-Dist: rich==13.9.3
Requires-Dist: rpds-py==0.20.1
Requires-Dist: scipy==1.13.1
Requires-Dist: six==1.16.0
Requires-Dist: smmap==5.0.1
Requires-Dist: sniffio==1.3.1
Requires-Dist: sounddevice==0.5.1
Requires-Dist: soundfile==0.12.1
Requires-Dist: soupsieve==2.6
Requires-Dist: tiktoken==0.8.0
Requires-Dist: tokenizers==0.19.1
Requires-Dist: tqdm==4.66.6
Requires-Dist: tree-sitter==0.23.2
Requires-Dist: tree-sitter-languages==1.10.2
Requires-Dist: typing-extensions==4.12.2
Requires-Dist: urllib3==2.2.3
Requires-Dist: wcwidth==0.2.13
Requires-Dist: yarl==1.17.1
Requires-Dist: zipp==3.20.2
Provides-Extra: browser
Requires-Dist: altair==5.4.1; extra == "browser"
Requires-Dist: attrs==24.2.0; extra == "browser"
Requires-Dist: blinker==1.8.2; extra == "browser"
Requires-Dist: cachetools==5.5.0; extra == "browser"
Requires-Dist: certifi==2024.8.30; extra == "browser"
Requires-Dist: charset-normalizer==3.4.0; 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.10; extra == "browser"
Requires-Dist: jinja2==3.1.4; 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.12.1; extra == "browser"
Requires-Dist: numpy==1.26.4; extra == "browser"
Requires-Dist: packaging==24.1; extra == "browser"
Requires-Dist: pandas==2.2.3; extra == "browser"
Requires-Dist: pillow==10.4.0; extra == "browser"
Requires-Dist: protobuf==5.28.3; extra == "browser"
Requires-Dist: pyarrow==18.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.2; extra == "browser"
Requires-Dist: referencing==0.35.1; extra == "browser"
Requires-Dist: requests==2.32.3; extra == "browser"
Requires-Dist: rich==13.9.3; extra == "browser"
Requires-Dist: rpds-py==0.20.1; extra == "browser"
Requires-Dist: six==1.16.0; extra == "browser"
Requires-Dist: smmap==5.0.1; extra == "browser"
Requires-Dist: streamlit==1.39.0; 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.2; extra == "browser"
Requires-Dist: urllib3==2.2.3; extra == "browser"
Requires-Dist: watchdog==4.0.2; extra == "browser"
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.8.30; extra == "dev"
Requires-Dist: cfgv==3.4.0; extra == "dev"
Requires-Dist: charset-normalizer==3.4.0; extra == "dev"
Requires-Dist: click==8.1.7; extra == "dev"
Requires-Dist: codespell==2.3.0; extra == "dev"
Requires-Dist: cogapp==3.4.1; extra == "dev"
Requires-Dist: contourpy==1.3.0; 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.54.1; extra == "dev"
Requires-Dist: identify==2.6.1; extra == "dev"
Requires-Dist: idna==3.10; 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.7; 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.9.2; 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.1; 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.18.0; extra == "dev"
Requires-Dist: pyparsing==3.2.0; extra == "dev"
Requires-Dist: pyproject-hooks==1.2.0; extra == "dev"
Requires-Dist: pytest==8.3.3; 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.3; 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==8.1.3; extra == "dev"
Requires-Dist: sphinx-rtd-theme==3.0.1; 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.5; extra == "dev"
Requires-Dist: typing-extensions==4.12.2; extra == "dev"
Requires-Dist: tzdata==2024.2; extra == "dev"
Requires-Dist: urllib3==2.2.3; extra == "dev"
Requires-Dist: virtualenv==20.27.1; extra == "dev"
Requires-Dist: wheel==0.44.0; extra == "dev"
Provides-Extra: help
Requires-Dist: aiohappyeyeballs==2.4.3; extra == "help"
Requires-Dist: aiohttp==3.10.10; extra == "help"
Requires-Dist: aiosignal==1.3.1; extra == "help"
Requires-Dist: annotated-types==0.7.0; extra == "help"
Requires-Dist: anyio==4.6.2.post1; extra == "help"
Requires-Dist: attrs==24.2.0; extra == "help"
Requires-Dist: certifi==2024.8.30; extra == "help"
Requires-Dist: charset-normalizer==3.4.0; 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: filelock==3.16.1; extra == "help"
Requires-Dist: frozenlist==1.5.0; extra == "help"
Requires-Dist: fsspec==2024.10.0; extra == "help"
Requires-Dist: greenlet==3.0.3; extra == "help"
Requires-Dist: h11==0.14.0; extra == "help"
Requires-Dist: httpcore==1.0.6; extra == "help"
Requires-Dist: httpx==0.27.2; extra == "help"
Requires-Dist: huggingface-hub[inference]==0.26.2; extra == "help"
Requires-Dist: idna==3.10; extra == "help"
Requires-Dist: jinja2==3.1.4; extra == "help"
Requires-Dist: joblib==1.4.2; extra == "help"
Requires-Dist: llama-index-core==0.11.21; 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.23.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: packaging==24.1; extra == "help"
Requires-Dist: pillow==10.4.0; extra == "help"
Requires-Dist: propcache==0.2.0; extra == "help"
Requires-Dist: pydantic==2.9.2; extra == "help"
Requires-Dist: pydantic-core==2.23.4; extra == "help"
Requires-Dist: pyyaml==6.0.2; extra == "help"
Requires-Dist: regex==2024.9.11; extra == "help"
Requires-Dist: requests==2.32.3; extra == "help"
Requires-Dist: safetensors==0.4.5; extra == "help"
Requires-Dist: scikit-learn==1.5.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.36; 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.66.6; 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.2.3; extra == "help"
Requires-Dist: wrapt==1.16.0; extra == "help"
Requires-Dist: yarl==1.17.1; extra == "help"
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"

# BLACKBOXAI: AI Pair Programming in Your Terminal

BlackboxAI enables pair programming with LLMs directly in your terminal, working seamlessly with your local git repositories. Use it for new projects or existing codebases.

## Getting Started

Quick setup in two steps:

1. Install the package:
```
pip install blackboxai-chat
```

2. Start coding with your AI pair:
```
# Navigate to your git repository
$ cd /to/your/git/repo

# Launch BlackboxAI
$ blackboxai
```


## Features

- **Flexible File Selection**: Edit specific files with `blackboxai <file1> <file2> ...`
- **Intelligent Code Modifications**:
    + Feature implementation
    + Bug fixes
    + Test case generation
    + Code refactoring
    + Documentation updates
- **Git Integration**: Automatic commits with meaningful messages
- **Multi-language Support**: Works with Python, JavaScript, TypeScript, PHP, HTML, CSS, and more
- **Multi-file Capability**: Handles complex changes across multiple files
- **Codebase Awareness**: Utilizes repository mapping for better context
- **Real-time Sync**: Stays updated with your editor changes during chat sessions

Start pair programming with AI today!
