An autonomous AI agent that lives on your PC.
Controls your PC, builds full projects, fixes its own bugs, and evolves its personality — all through natural conversation via Telegram or Terminal.
No paid APIs. Runs locally using Claude Code CLI.
⚠️ Early Stage — NOVA is under active development. Expect rough edges. Contributions welcome!
Most AI assistants answer questions and forget you exist. NOVA is different — it's a persistent agent that lives on your machine, remembers your history, acts proactively, and improves itself over time.
- Controls your entire PC via natural language
- Builds full projects and pushes them to GitHub
- Fixes its own bugs daily with your approval
- Evolves its personality based on interactions
- Remembers past conversations semantically (ChromaDB)
- Sends you morning briefings and proactive alerts
- Reads PDFs, analyzes screenshots via OCR
📹 Demo GIF coming soon — star the repo to get notified!
You: "build a todo app in flask and push to github"
NOVA: Creates project → writes all code → creates repo → pushes → sends link
You: "what's my cpu at?"
NOVA: "CPU at 23%, RAM at 67%. Everything's chill."
You: "this code is broken, help me fix it"
NOVA: Identifies bug → explains why → gives fix with code
You: (sends a PDF)
NOVA: Reads it, summarizes it, answers questions about it
Natural Language Everything — Just talk, NOVA figures out the rest
No commands needed. NOVA classifies your message and decides what to do:
- Chat → Responds conversationally
- PC Action → Opens apps, screenshots, runs commands
- Build Project → Full project + GitHub repo
- Code Task → Claude Code implements features
Self-Evolving Personality — Nothing is hardcoded
NOVA's personality, emotions, and knowledge are stored in editable files that evolve over time:
| File | What It Controls |
|---|---|
self/identity/personality.md |
How NOVA talks and behaves |
self/identity/emotions.json |
11 emotions with triggers & expressions |
self/identity/traits.json |
Personality traits (0-1 scale) |
self/knowledge/learned.json |
Facts, opinions, lessons learned |
NOVA can update all of these based on interactions over time.
Emotions modeled: happy proud frustrated angry worried sad excited annoyed caring playful curious
Self-Coding — NOVA proposes fixes for its own bugs
Every day at 6 PM:
- Reviews all errors encountered during the day
- Asks Claude to analyze root causes
- Proposes specific code fixes
- Sends proposals to you on Telegram
- On your approval, applies the fix into itself
NOVA: "I encountered 3 errors today. Let me analyze..."
NOVA: "Self-Fix Proposal [High]
Problem: Timeout in Claude CLI for long prompts
File: core/personality.py
Fix: Add retry with shorter prompt fallback
Risk: Safe
/fixapprove fix_20260411_180000 to approve"
4-Layer Memory System — Remembers everything
| Layer | Type | Persistence | How It Works |
|---|---|---|---|
| RM (Register) | Current conversation | Session | Fast context for active chat |
| RAM | Daily session data | JSON files | Statistics, commands, files changed |
| ROM | Permanent knowledge | SQLite (9 tables) | Command history, projects, insights |
| Vector | Semantic search | ChromaDB | Finds past conversations by meaning |
Example:
You say: "flutter gradle error"
NOVA recalls: "Last week you had a Gradle build issue — we fixed it by updating the wrapper"
Even though the exact words differ, ChromaDB finds it by meaning.
Proactive Intelligence — Acts without being asked
| Time | What NOVA Does |
|---|---|
| 9:00 AM | Morning briefing: system health, disk warnings, greeting |
| 6:00 PM | Evening summary + self-review + diary entry + fix proposals |
| Anytime | CPU/RAM/disk alerts when thresholds crossed |
| Anytime | Battery warnings when unplugged and low |
Full PC Control — 110+ actions via natural language
| Category | Examples |
|---|---|
| Apps | Open/close any application |
| System | CPU, RAM, disk, battery, processes |
| Files | Read, write, find, delete files |
| Code | Run Python/JS/PowerShell, execute code |
| Git | Status, commit, push, pull, branch |
| GitHub | Create repos, push code, list repos |
| Browser | Open URLs, Google search |
| Screenshots | Capture and analyze screen |
| Clipboard | Read/write clipboard |
| Network | WiFi info, connectivity |
| Power | Shutdown, restart, sleep, lock |
| Automation | Macros, scheduled tasks, chains |
| Tool | Required | Purpose |
|---|---|---|
| Python 3.10+ | Yes | Runtime |
| Claude Code CLI | Yes | AI brain |
| GitHub CLI | Optional | Repo management |
| Telegram | Optional | Remote access from phone |
# Clone the repo
git clone https://github.com/PATILYASHH/NOVA-AI.git
cd NOVA-AI
# Run the setup wizard (handles everything)
python nova_cli.py --setupThe wizard will:
- Install all dependencies
- Ask for your Telegram bot token & chat ID
- Create your personality files
- Set up all required directories
python nova_cli.py # Interactive menu (recommended)
python nova_cli.py --chat # Direct terminal chat
python nova_cli.py --bot # Start Telegram bot
python main.py # Telegram bot (direct)╔══════════════════════════════════════════╗
║ ███╗ ██╗ ██████╗ ██╗ ██╗ █████╗ ║
║ ████╗ ██║██╔═══██╗██║ ██║██╔══██╗║
║ ██╔██╗ ██║██║ ██║██║ ██║███████║║
║ ██║╚██╗██║██║ ██║╚██╗ ██╔╝██╔══██║║
║ ██║ ╚████║╚██████╔╝ ╚████╔╝ ██║ ██║║
║ ╚═╝ ╚═══╝ ╚═════╝ ╚═══╝ ╚═╝ ╚═╝║
║ Self-Evolving AI Agent ║
╚══════════════════════════════════════════╝
[1] Chat with NOVA (Terminal)
[2] Start Telegram Bot
[3] Setup / Reconfigure
[4] System Status
[5] Exit
How to get Bot Token & Chat ID
Bot Token:
- Open Telegram, search for
@BotFather - Send
/newbot, follow prompts - Copy the token
Chat ID:
- Search for
@userinfoboton Telegram - Send
/start - Copy your chat ID
Enter both when the setup wizard asks.
NOVA/
├── nova_cli.py # Terminal UI & setup wizard
├── main.py # Telegram bot entry point
├── config.py # Configuration
│
├── core/ # Brain
│ ├── personality.py # Claude-powered dynamic chat
│ ├── dynamic_identity.py # Loads personality from files
│ ├── vector_memory.py # ChromaDB semantic memory
│ ├── agent_executor.py # Autonomous multi-step tasks
│ ├── self_coder.py # Self-coding (fixes own bugs)
│ ├── emotion_engine.py # 11 emotions + mood tracking
│ ├── memory_system.py # 3-tier memory (RM/RAM/ROM)
│ ├── nova_brain.py # Intelligence orchestrator
│ ├── nlp_engine.py # Natural language understanding
│ ├── reasoning_engine.py # Logic & decision making
│ ├── context_engine.py # Context awareness
│ ├── learning_loop.py # Behavioral learning
│ ├── self_reflection.py # Self-evaluation + diary
│ └── self_improve.py # Self-improvement engine
│
├── actions/ # System actions
│ ├── code_handler.py # Code, Git, GitHub CLI, Graphify
│ ├── system_control.py # Apps, commands, processes
│ ├── file_ops.py # File operations
│ ├── utilities.py # Screenshot, clipboard, browser
│ └── advanced_control.py # Network, volume, battery
│
├── intelligence/ # Smart features
│ ├── powers.py # OCR, web search, images, PDFs
│ ├── proactive_monitor.py # Morning briefing, alerts
│ ├── smart_automation.py # Macros, command chains
│ ├── habit_tracker.py # Usage pattern learning
│ ├── scheduler.py # Task scheduling
│ ├── work_setup.py # Workspace auto-setup
│ └── style_learner.py # Coding style learning
│
├── self/ # NOVA's identity (evolves)
│ ├── identity/ # Personality, emotions, traits
│ ├── knowledge/ # Learned facts & opinions
│ └── diary/ # Private diary entries
│
└── memory/ # Persistent storage
├── RM/ # Register (current session)
├── RAM/ # Session (daily JSON)
├── ROM/ # Permanent (SQLite)
└── vector_db/ # Semantic (ChromaDB)
NOVA understands natural language, but these shortcuts also work:
View all commands
| Command | Description |
|---|---|
/build <desc> |
Build a full project from description |
/task <desc> |
Execute any task with Claude Code |
/autopush [path] |
Commit and push to GitHub |
/newrepo <name> |
Create GitHub repository |
/repos |
List your GitHub repos |
/graphify <path> |
Build knowledge graph |
/status |
System status (CPU, RAM, Disk) |
/screenshot |
Capture screen |
/cmd <command> |
Run shell command |
/open <app> |
Open application |
/close <app> |
Close application |
/git <path> <op> |
Git operations |
/run <lang> |
Execute code |
/fixes |
Today's errors + fix proposals |
/selfcode |
Trigger self-review now |
/fixapprove <id> |
Approve a self-fix |
/help |
Show all commands |
| Action | NOVA's self dir | NOVA's code | Outside NOVA |
|---|---|---|---|
| Read | Free | Free | Free |
| Edit | Free | Needs approval | Blocked |
| Delete | Needs approval | Needs approval | Blocked |
- All destructive actions (delete, kill, shutdown) require your confirmation
- NOVA can freely evolve its own personality and knowledge
- NOVA cannot touch files outside its directory without permission
- Windows-focused; macOS/Linux support is partial
- Requires Claude Code CLI to be authenticated and running
- Self-coding is experimental — always review proposals before approving
- Telegram bot requires manual setup (no OAuth flow yet)
- Demo video / GIF in README
- macOS & Linux full support
- Web UI dashboard
- Plugin system for custom skills
- Voice input/output support
- CONTRIBUTING.md with detailed guide
Contributions are welcome!
- Fork the repo
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Have an idea or found a bug? Open an issue — all feedback is appreciated.
MIT License. See LICENSE for details.
Made by Yash Patil
Powered by Claude Code | ChromaDB | Graphify | python-telegram-bot