https://github.com/strixrox/yoda
An AI-powered system automation platform for Windows, written in Python
https://github.com/strixrox/yoda
Last synced: 8 months ago
JSON representation
An AI-powered system automation platform for Windows, written in Python
- Host: GitHub
- URL: https://github.com/strixrox/yoda
- Owner: StrixROX
- Created: 2025-08-19T17:32:52.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-08-26T22:04:43.000Z (10 months ago)
- Last Synced: 2025-08-27T06:58:44.667Z (10 months ago)
- Language: Python
- Size: 23.4 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
## YoDA — Centralised System Automations with LLM
YoDA is a Python-based platform that empowers system automations with LLM assistance. It aims to provide a reliable, extensible foundation for day-to-day automations, memory across sessions, and a friendly CLI to interact with your system.
### Features
- **Session greeting**: A simple greeting on logon.
- **Persistent memory**: Remembers information across system sessions.
- **Startup automations**: Remembers and launches your preferred apps at startup.
- **CLI tooling**: Interact with the app via a dedicated command-line tool.
### Project Status
This project is in early development (version 0.0.1). The scope is intentionally small and evolving. Feedback and contributions are welcome.
## Quickstart
### Prerequisites
- Python 3.10 or newer
- OpenSSL (for local SSL certificate generation)
### Create and Activate a Virtual Environment
```bash
python -m venv dev
source dev/Scripts/activate
```
On macOS/Linux, activate with:
```bash
source dev/bin/activate
```
### Install (Editable)
```bash
pip install -e .
```
This installs the package and exposes the `yo` CLI.
### Verify Installation
```bash
yo --help
```
## Usage
After installation, use the CLI:
```bash
yo --help
```
Additional examples and commands will be added as the feature set grows.
## Development
### Local Development Setup
1. Create and activate a virtual environment (see Quickstart).
2. Install in editable mode:
```bash
pip install -e .
```
3. Run the CLI locally to validate changes:
```bash
yo --help
```
### Generating Self-Signed SSL Certificates
If you need SSL for local testing:
```bash
openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 365 -out server.crt
```
## Building & Distribution
### Build a Wheel and Source Distribution
```bash
pip install build
python -m build
```
Artifacts will be created under `dist/`.
## Project Structure
```
src/
app_streams/ # Event stream helpers and utilities
events.py # Event handling and streaming logic
cli/ # Command-line interface and user interaction
main.py # CLI entry point and command routing
user_input.py # User input handling and validation
utils.py # CLI-specific utilities and helpers
comms/ # Communication and networking
client.py # Client-side communication logic
server.py # Server-side communication handling
utils.py # Communication utilities and helpers
core/ # Core application logic and orchestration
main.py # Main application entry point
events_handlers.py # Event handling and processing
utils.py # Core utilities and shared functions
services/ # Core service implementations
comms_server.py # Communication server service
llm_server.py # LLM server service
llm/ # LLM integration and AI capabilities
server.py # LLM server implementation
tts.py # Text-to-speech functionality
agent/ # AI agent implementation
agent.py # Core agent logic and behavior
graph.py # Agent workflow and graph management
memory.py # Agent memory and persistence
tools.py # Agent tools and capabilities
utils.py # Agent-specific utilities
```
## Future Scope
- Display interface for showing results, images, and emotes.
- Screen context awareness to answer questions about on-screen content.
- Additional automation primitives and integrations.
If you have ideas, please open an issue or a discussion.
## Contributing
Contributions are welcome! Please read `CONTRIBUTING.md` for guidelines on how to propose changes, set up your environment, and submit pull requests.
## Versioning
This project follows semantic versioning where practical: MAJOR.MINOR.PATCH.
## Support & Feedback
- If you encounter a bug, please open an issue with steps to reproduce and environment details.
- For feature requests or questions, start a discussion or open an issue.
## License
License information will be added to the repository. Until then, please treat the project as source-available for evaluation and contribution discussions only.