7-Category Intent Classification: LLM-powered with keyword fallback
Conversation Memory: Full context across turns
Multi-Step Reasoning: Complex queries handled through agent routing
Graceful Degradation: Falls back through classification layers
💾 4-Tier Memory System
Tier
Purpose
Persistence
Working
Current conversation context (last 10 turns)
Session only
Episodic
Timestamped events and interactions
Disk (JSON)
Semantic
User facts and preferences
Disk (JSON)
Procedural
Learned command patterns
Disk (JSON)
⚡ 50+ System Commands
Full Command List (click to expand)
Apps: open, close, kill any app by name
Web: search, open URL
Input: type text
Screen: screenshot, lock screen
Volume: up, down, mute/unmute
Brightness: up, down
Power: sleep (shutdown blocked for safety)
Files: open folder, open file, create folder, delete file, list files
Clipboard: copy, paste
System: system info, disk usage, battery status, list processes, kill process
Network: Wi-Fi toggle, Bluetooth toggle, IP address, ping
Trash: empty recycle bin
Custom: run any shell command (safe mode gated)
🔌 Plugin System (10 Built-in)
Plugin
Features
Weather
Current weather via OpenWeatherMap API
Wikipedia
Article summaries via REST API
Web Search
DuckDuckGo instant answers
System Monitor
CPU, RAM, disk, network, uptime, top processes
Notes
Create, list, search, delete persistent notes
Reminders
Time-based reminders with natural language parsing
Safe Mode: File deletion and process killing gated
Timeout Protection: All commands have execution timeouts
Retry Logic: Exponential backoff on API failures
Graceful Degradation: Every pipeline stage has fallbacks
💬 CLI Commands
Command
Description
/help
Show help with all features
/voice
Switch to voice input for one command
/voice ryan
Change TTS voice
/voices
List available voices
/stats
Show usage statistics
/memory
View stored memories
/clear
Clear conversation history
/reset
Reset all memory
/plugins
List loaded plugins
/apps
List available apps for your OS
/config
Show current configuration
/history
Show command execution history
/cleanup
Clean temporary audio files
/quit
Exit JARVIS
🎤 Usage Examples
You: open chrome
🤖 Jarvis: Launching chrome now.
You: what's the capital of Japan?
🤖 Jarvis: The capital of Japan is Tokyo. It's the most populous...
You: calculate 15 * 24 + sin(3.14)
🔧 Jarvis: The answer is 360.00159...
You: remember my name is Vighnesh
🧠 Jarvis: Got it! I'll remember that.
You: what's my name?
🤖 Jarvis: Your name is Vighnesh.
You: set a timer for 5 minutes
⏱️ Timer set for 5 minutes.
You: tell me about quantum computing
🔍 Jarvis: Quantum computing uses quantum-mechanical phenomena...
You: system info
💻 System: OS: Linux 5.15 | CPU: 12% | RAM: 8GB/16GB (50%)
You: tell me a joke
🤖 Jarvis: Why do programmers prefer dark mode? Because light attracts bugs.
You: volume up
🤖 Jarvis: Turning the volume up.
You: /stats
📊 Session uptime: 15 minutes | Total: 12 | Actions: 4 | Chats: 8
🔧 Configuration
All settings can be overridden via environment variables or .env file:
Variable
Default
Description
OLLAMA_MODEL
llama3.1
LLM model name
OLLAMA_BASE_URL
http://localhost:11434
Ollama API URL
WHISPER_MODEL
base
Whisper model size
TTS_VOICE
en-GB-RyanNeural
Default TTS voice
MEMORY_ENABLED
true
Enable memory system
SAFE_MODE
true
Enable safety guardrails
LOG_LEVEL
INFO
Logging verbosity
WEATHER_API_KEY
(empty)
OpenWeatherMap API key
🔌 Writing Custom Plugins
Create a new file in plugins/ directory:
python
1# plugins/my_plugin.py2from plugins import JarvisPlugin
34classMyPlugin(JarvisPlugin):5 name ="my_plugin"6 description ="My custom JARVIS plugin"7 version ="1.0.0"89defget_commands(self):10return["my_command","another_command"]1112defexecute(self, command, params=""):13if command =="my_command":14return{15"success":True,16"result":f"Executed with params: {params}",17"speak":"Done!"18}19return{"success":False,"result":"Unknown command"}
Plugins are auto-discovered and registered at startup.
📋 Dependencies
Package
Purpose
Required
openai-whisper
Speech-to-text
✅ (for voice)
edge-tts
Text-to-speech
✅ (for voice)
requests
Ollama API client
✅
numpy
Audio processing
✅
sounddevice
Audio recording
✅ (for voice)
pygame
Audio playback
✅ (for voice)
psutil
System monitoring
Recommended
pyautogui
Input automation
Optional
pyperclip
Clipboard access
Optional
🐛 Troubleshooting
Issue
Solution
Ollama connection error
Run ollama serve and ollama pull llama3.1
No audio input
Check microphone permissions and sounddevice installation
TTS not working
Install edge-tts and check internet connection
Slow responses
Use smaller Whisper model (tiny) or faster Ollama model