Metadata-Version: 2.4
Name: godot-ai-playtest
Version: 0.3.0
Summary: External TCP control for Godot 4.x games — built for AI agents, automation, and CI pipelines
Project-URL: Homepage, https://github.com/marcushale/godot-ai-playtest
Project-URL: Documentation, https://github.com/marcushale/godot-ai-playtest#readme
Project-URL: Repository, https://github.com/marcushale/godot-ai-playtest
Project-URL: Issues, https://github.com/marcushale/godot-ai-playtest/issues
Project-URL: Changelog, https://github.com/marcushale/godot-ai-playtest/blob/main/CHANGELOG.md
Author-email: Marcus Hale <marcus@auderon.com>
License-Expression: MIT
Keywords: ai,automation,ci-cd,game-testing,gamedev,godot,integration-testing,playtesting,testing,visual-regression
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT 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.13
Classifier: Topic :: Games/Entertainment
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.10
Requires-Dist: click>=8.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0
Provides-Extra: dev
Requires-Dist: black>=23.0; extra == 'dev'
Requires-Dist: mypy>=1.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: ruff>=0.1; extra == 'dev'
Description-Content-Type: text/markdown

# godot-ai-playtest

**External TCP control for Godot 4.x games — built for AI agents, automation, and CI pipelines.**

## Installation

```bash
pip install godot-ai-playtest
```

## Quick Start

```python
import asyncio
from godot_ai_playtest import PlaytestClient

async def main():
    async with PlaytestClient() as client:
        # Check connection
        await client.ping()
        
        # Get game state
        state = await client.get_state()
        print(f"Player at {state['player']['position']}")
        
        # Send input
        await client.send_input("move_right", duration_ms=500)

asyncio.run(main())
```

## CLI Usage

```bash
# Test connection
playtest ping

# Get state
playtest state

# Run test scenario
playtest run smoke_test.yaml
```

## Requirements

- Godot 4.x game with the godot-ai-playtest plugin installed
- Python 3.10+

## Full Documentation

See the [GitHub repository](https://github.com/marcushale/godot-ai-playtest) for:
- Complete API reference
- YAML scenario format
- Godot plugin installation
- Examples and use cases

## License

MIT
