Metadata-Version: 2.4
Name: rspyai
Version: 0.0.1
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX :: Linux
Classifier: Environment :: Console
Classifier: Environment :: MacOS X
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Internet
Requires-Dist: pydantic-ai-slim[openai]
Requires-Dist: pydantic-settings
Requires-Dist: textual
Requires-Dist: pip ; extra == 'dev'
Requires-Dist: ruff ; extra == 'dev'
Requires-Dist: pyright ; extra == 'dev'
Requires-Dist: ipython ; extra == 'dev'
Requires-Dist: maturin ; extra == 'dev'
Requires-Dist: pre-commit ; extra == 'dev'
Provides-Extra: dev
License-File: LICENSE
Summary: explore rust functions in a TUI with an AI
Author-email: Nathan Nowack <zzstoatzz@protonmail.com>
License: MIT
Requires-Python: >=3.12
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/zzstoatzz/rspyai
Project-URL: Source, https://github.com/zzstoatzz/rspyai
Project-URL: Documentation, https://github.com/zzstoatzz/rspyai/blob/main/README.md

# `rspyai`

A [Textual](https://github.com/textualize/textual/) app to explore your Rust codebase.


## requirements

- [uv](https://docs.astral.sh/uv/) to bootstrap a python environment
- an [`OPENAI_API_KEY`](https://platform.openai.com/docs/api-reference/authentication) set in your environment

## usage

> [!NOTE]
> This project is a personal project. It might break for some reason.

```bash
# start the function browser
uvx rspyai

# start the function scanner at a specific path
uvx rspyai [path_to_rust_project]
```

### interactive TUI

the TUI provides:
- function tree browser
- information on each function: signature, docstring, parent file, etc.
- ai-generated summaries with AI agent summary (`pydantic-ai`)

<p align="center">
  <img src="https://github.com/user-attachments/assets/f99db3b9-ebeb-4ea1-b73f-69821c1b5cd5" alt="rspyai" />
</p>

## development

```bash
# Clone the repository
git clone https://github.com/zzstoatzz/rspyai.git
cd rspyai

# Install development dependencies
uv sync --dev --all-extras
```
