"Nat" is a sophisticated, always-on AI personal assistant that lives in a standalone Windows application. It controls your computer through voice commands and provides a premium desktop experience.
- 🎙️ Always-on Voice Processing: No wake words required after initialization. Nat listens, processes, and responds naturally.
- 🎩 Formal "Sir" Persona: A dedicated, professional assistant designed to treat you with executive respect.
- 🛠️ Deep System Integration: Nat can launch apps, search the web, manage files, type text, and even automate mouse clicks.
- 🧠 Multi-Provider Brain: Switch between OpenRouter (supports models like Nemotron-3), Google Gemini 1.5 Flash, or NVIDIA's Integrated API.
- 🖥️ Modern Desktop GUI: A stunning dark-themed interface built with
CustomTkinterfor real-time status and chat monitoring. - 🔊 Voice Feedback: Local Text-to-Speech (TTS) integration using
pyttsx3for high-speed, offline voice output.
Nat is built on a modular, event-driven architecture that ensures reliability and extensibility.
graph TD
A[User Voice] -->|SpeechRecognition| B(audio_handler.py)
B -->|Transcribed Text| C(main.py)
C -->|Command| D(brain.py)
D -->|Tool Call| E(system_tools.py)
E -->|Execute| F[Windows OS]
D -->|AI Response| G(gui_app.py)
G -->|Display| H[Desktop UI]
D -->|AI Response| B
B -->|TTS Output| I[User Audio]
Follow these steps to get Nat running on your Windows environment:
- Python 3.11+ is highly recommended for compatibility with modern AI libraries.
- Git for repository management.
git clone https://github.com/Shackey/Nat.git
cd Nat
pip install -r requirements.txtNat requires PyAudio for voice features. If standard installation fails:
Create a .env file from the example:
copy .env.example .envAdd your API keys and select your preferred provider:
PREFERRED_PROVIDER=openrouter # Options: openrouter, google, nvidia
OPENROUTER_API_KEY=sk-or-v1-...
GOOGLE_API_KEY=...
NVIDIA_API_KEY=...The easiest way to start is by using the provided batch file:
- Simply double-click
run_nat.bat(or executepython gui_app.py).
- "Nat, open Notepad and write a poem."
- "Nat, search the web for the latest NVIDIA GPU releases."
- "Nat, what is 45% of 125,000?"
- "Nat, please press Ctrl+S to save my work."
- "Nat, shutdown yourself."
gui_app.py: The primary interface for users to interact with Nat.brain.py: The "intelligence" layer handling LLM logic and function calling.audio_handler.py: Manages wake-word detection, STT (Speech-to-Text), and TTS (Text-to-Speech).system_tools.py: A robust library of tools Nat uses to control the OS.main.py: The central coordinator for voice-only logic.
Contributions are what make the open-source community such an amazing place. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
