Metadata-Version: 2.4
Name: harzoo
Version: 0.1.2
Summary: Terminal agent framework with pluggable tools and TUI.
Author: Harzoo Maintainers
License: MIT
Project-URL: Homepage, https://github.com/leeharhar/harzoo
Project-URL: Repository, https://github.com/leeharhar/harzoo
Project-URL: Issues, https://github.com/leeharhar/harzoo/issues
Keywords: agent,tui,tools,automation
Classifier: License :: OSI Approved :: MIT License
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: openai>=1.0.0
Requires-Dist: PyYAML>=6.0
Requires-Dist: textual>=0.50.0
Provides-Extra: web
Requires-Dist: fastapi>=0.110.0; extra == "web"
Requires-Dist: uvicorn>=0.30.0; extra == "web"
Provides-Extra: jupyter
Requires-Dist: jupyterlab>=4.0.0; extra == "jupyter"
Requires-Dist: ipykernel>=6.0.0; extra == "jupyter"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.6.0; extra == "docs"
Requires-Dist: mkdocs-material>=9.5.0; extra == "docs"

`harzoo` is a terminal agent **framework** with a Textual TUI and a file-based tool plugin runtime.

## Project layers

- Core: `src/harzoo/main.py`, `src/harzoo/tui/`, `src/harzoo/agent/`
- Reusable bootstrap: `src/harzoo/agent/start.py`

Agent behavior and tools come **only** from your config directory (typically `~/.harzoo/config/`): `agents/*.md` profiles and `tools/*.py` plugins. Download starter packs from the Harzoo website and place them there.

## Features

- Profile-based configuration (YAML front matter + prompt body)
- Tool hub loads `*.py` plugins from `config/tools/`
- Textual-based interactive UI
- OpenAI-compatible LLM loop

## Installation

```bash
pip install harzoo
```

Configure profiles and tools under `~/.harzoo/config/` before running:

```bash
harzoo
```

## Development

```bash
pip install -e .
python -m pytest
```

Build distributions:

```bash
python -m build
```

Publish a **new release** to PyPI (`harzoo` is already published — bump `version` in `pyproject.toml` first):

```bash
export TWINE_USERNAME=__token__
export TWINE_PASSWORD=pypi-xxxxxxxx
./scripts/publish-pypi.sh
```

Or upload to TestPyPI first:

```bash
twine upload --repository testpypi dist/*
```

## Documentation

```bash
pip install -e ".[docs]"
mkdocs serve
```
