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