Metadata-Version: 2.4
Name: homie-ai
Version: 0.1.0
Summary: Fully local, privacy-first personal AI assistant
Project-URL: Homepage, https://github.com/MSG-88/Homie
Project-URL: Repository, https://github.com/MSG-88/Homie
Project-URL: Issues, https://github.com/MSG-88/Homie/issues
Author-email: MSG <muthu.g.subramanian@outlook.com>
License-Expression: MPL-2.0
License-File: LICENSE
Keywords: ai,assistant,gguf,llama-cpp,llm,local,privacy
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.11
Requires-Dist: pydantic>=2.0
Requires-Dist: pyyaml>=6.0
Provides-Extra: all
Requires-Dist: accelerate>=0.30; extra == 'all'
Requires-Dist: apscheduler>=3.10; extra == 'all'
Requires-Dist: chromadb>=0.5; extra == 'all'
Requires-Dist: cryptography>=42.0; extra == 'all'
Requires-Dist: fastapi>=0.111; extra == 'all'
Requires-Dist: faster-whisper>=1.0; extra == 'all'
Requires-Dist: huggingface-hub>=0.23; extra == 'all'
Requires-Dist: openwakeword>=0.6; extra == 'all'
Requires-Dist: pillow>=10.0; extra == 'all'
Requires-Dist: piper-tts>=1.2; extra == 'all'
Requires-Dist: psutil>=5.9; extra == 'all'
Requires-Dist: pyaudio>=0.2; extra == 'all'
Requires-Dist: pynput>=1.7; extra == 'all'
Requires-Dist: pystray>=0.19; extra == 'all'
Requires-Dist: pywin32>=306; (sys_platform == 'win32') and extra == 'all'
Requires-Dist: sounddevice>=0.4; extra == 'all'
Requires-Dist: transformers>=4.40; extra == 'all'
Requires-Dist: uvicorn>=0.30; extra == 'all'
Requires-Dist: watchdog>=4.0; extra == 'all'
Provides-Extra: app
Requires-Dist: apscheduler>=3.10; extra == 'app'
Requires-Dist: fastapi>=0.111; extra == 'app'
Requires-Dist: pillow>=10.0; extra == 'app'
Requires-Dist: pynput>=1.7; extra == 'app'
Requires-Dist: pystray>=0.19; extra == 'app'
Requires-Dist: uvicorn>=0.30; extra == 'app'
Provides-Extra: context
Requires-Dist: psutil>=5.9; extra == 'context'
Requires-Dist: pywin32>=306; (sys_platform == 'win32') and extra == 'context'
Requires-Dist: watchdog>=4.0; extra == 'context'
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Provides-Extra: model
Requires-Dist: accelerate>=0.30; extra == 'model'
Requires-Dist: huggingface-hub>=0.23; extra == 'model'
Requires-Dist: transformers>=4.40; extra == 'model'
Provides-Extra: storage
Requires-Dist: chromadb>=0.5; extra == 'storage'
Requires-Dist: cryptography>=42.0; extra == 'storage'
Provides-Extra: voice
Requires-Dist: faster-whisper>=1.0; extra == 'voice'
Requires-Dist: openwakeword>=0.6; extra == 'voice'
Requires-Dist: piper-tts>=1.2; extra == 'voice'
Requires-Dist: pyaudio>=0.2; extra == 'voice'
Requires-Dist: sounddevice>=0.4; extra == 'voice'
Description-Content-Type: text/markdown

# Homie AI

Fully local, privacy-first personal AI assistant. Runs entirely on your machine with no cloud dependencies.

## Features

- **Local inference** — loads GGUF models directly via [llama.cpp](https://github.com/ggml-org/llama.cpp) with GPU acceleration (CUDA)
- **Privacy first** — all data stays on your machine, no telemetry, no external API calls
- **Voice pipeline** — wake word detection, speech-to-text, text-to-speech (optional)
- **Plugin system** — 12 built-in plugins (system, clipboard, browser, IDE, git, health, music, notes, shortcuts, terminal, network, workflows)
- **Behavioral intelligence** — habit detection, routine observation, profile synthesis
- **Memory system** — working, episodic, and semantic memory with consolidation and forgetting

## Quickstart

### Install

```bash
pip install homie-ai
```

### Setup

```bash
# Interactive setup — detects hardware, finds/downloads a model
homie init

# Or start chatting directly (uses default model path)
homie chat
```

### Model Setup

Homie uses [llama.cpp](https://github.com/ggml-org/llama.cpp) server for inference. Download the pre-built binary for your platform from the [releases page](https://github.com/ggml-org/llama.cpp/releases) and place it in `~/.homie/llama-server/`.

For Windows with CUDA:
```bash
# Download and extract to ~/.homie/llama-server/
# The zip should contain llama-server.exe and required DLLs
```

Homie auto-discovers GGUF model files in common locations (`~/.lmstudio/models/`, `~/.homie/models/`). You can also register models manually:

```bash
homie model add /path/to/model.gguf --name my-model --format gguf --params 35B
homie model switch my-model
```

## Configuration

Homie uses `homie.config.yaml` in the working directory or `~/.homie/`:

```yaml
llm:
  backend: gguf
  model_path: /path/to/your/model.gguf
  context_length: 65536
  gpu_layers: -1       # -1 = offload all layers to GPU
  max_tokens: 2048
  temperature: 0.7

voice:
  enabled: false
  wake_word: "hey homie"
  mode: push_to_talk

storage:
  path: ~/.homie
```

Environment variable overrides: `HOMIE_LLM_BACKEND`, `HOMIE_LLM_MODEL_PATH`, `HOMIE_LLM_GPU_LAYERS`, `HOMIE_VOICE_ENABLED`, `HOMIE_STORAGE_PATH`, `HOMIE_USER_NAME`.

## CLI Commands

```
homie start          Start the assistant (alias for chat)
homie chat           Interactive chat mode
homie init           First-time setup wizard
homie model list     List installed models
homie model add      Register a local model file
homie model switch   Switch the active model
homie plugin list    List available plugins
homie plugin enable  Enable a plugin
homie backup --to    Create encrypted backup
homie restore --from Restore from backup
```

## Optional Dependencies

```bash
pip install homie-ai[model]    # HuggingFace model downloading
pip install homie-ai[voice]    # Voice pipeline (STT, TTS, wake word)
pip install homie-ai[context]  # System context tracking
pip install homie-ai[storage]  # Vector DB and encrypted backups
pip install homie-ai[app]      # Dashboard, system tray, scheduling
pip install homie-ai[all]      # Everything
```

## Requirements

- Python 3.11+
- [llama.cpp](https://github.com/ggml-org/llama.cpp) server binary (b8149+ for Qwen3.5 support)
- A GGUF model file (auto-detected or manually configured)
- NVIDIA GPU recommended (CUDA); CPU-only mode is supported

## License

[Mozilla Public License 2.0](LICENSE)
