Inspired by Iron Man. Powered by Python, Django, and a local AI brain.
JARVIS is a personal AI assistant that runs entirely on your own machine — no cloud subscriptions, no sending your conversations to a third party. It's built around a custom Django backend, a hand-designed dark-themed chat interface (codename: Odysseus Navigator), and a local large language model powered by Ollama.
This project started as a simple question: what would it take to actually build a JARVIS? A few weeks of late-night debugging, Git mishaps, and architecture rewrites later — it's alive, it talks back, and it's fully open source.
- 🖥️ Custom chat interface — dark theme, smooth animations, built from scratch (no UI templates)
- 🧠 Local AI brain — powered by Ollama, fully private, runs offline
- 🗣️ Voice output (TTS) — JARVIS speaks its responses back to you
- 🛡️ Safety layer — input filtering before any request reaches the AI
- 🗂️ Clean modular architecture — AI logic, Django app, and frontend are fully decoupled
- 💾 Conversation memory (in progress) — SQLite-backed chat history
JARVIS/
├── core/ # Django project configuration
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py / asgi.py
│
├── assistant/ # Django app — views, API routes, models
│ ├── views.py
│ ├── urls.py
│ └── migrations/
│
├── brain/ # AI logic layer (framework-agnostic)
│ ├── core.py # Central message router
│ ├── ai.py # Ollama integration
│ ├── voice.py # Text-to-speech
│ ├── desktop.py # Desktop automation commands
│ ├── safety.py # Input safety checks
│ └── search.py # Web search (planned)
│
├── frontend/ # UI layer
│ ├── templates/
│ └── static/
│
├── manage.py
└── requirements.txt
Why this structure? The brain/ package contains zero Django imports — it's pure Python, meaning the AI logic can be tested, reused, or swapped out independently of the web framework wrapped around it.
JARVIS is being built in 7 phases:
| Phase | Status | Description |
|---|---|---|
| 1 | ✅ Done | Django backend + custom chat UI (Odysseus Navigator) |
| 2 | 🔄 In Progress | SQLite conversation memory |
| 3 | ✅ Done | Local AI integration via Ollama |
| 4 | ⏳ Planned | Memory-aware context injection |
| 5 | ⏳ Planned | Desktop automation commands |
| 6 | ⏳ Planned | Web search integration |
| 7 | ⏳ Planned | Voice input (Whisper) + voice wake word |
- Python 3.11+
- Ollama installed and running
- Git
git clone https://github.com/Mano11x/JARVIS.git
cd JARVISWindows (PowerShell):
python -m venv .venv
.venv\Scripts\Activate.ps1macOS / Linux:
python3 -m venv .venv
source .venv/bin/activatepip install -r requirements.txtollama pull llama3.2:1b(You can substitute any model you prefer — e.g. mistral for higher quality at the cost of speed. Update the model name in brain/core.py if you switch.)
python manage.py migratepython manage.py runserverOpen http://127.0.0.1:8000/assistant/ in your browser — JARVIS should greet you.
Create a .env file in the project root if you plan to extend JARVIS with cloud AI fallback or other API integrations:
OPENAI_API_KEY=your_key_here # optional, for cloud fallback
OPENAI_MODEL=gpt-3.5-turbo # optional
⚠️ Never commit your.envfile — it's already excluded via.gitignore.
| Layer | Technology |
|---|---|
| Backend | Django 6.0 |
| AI Engine | Ollama (local LLM inference) |
| Text-to-Speech | pyttsx3 |
| Database | SQLite |
| Frontend | HTML / CSS / vanilla JS |
| Language | Python 3.13 |
This is a personal learning project, but feedback, issues, and PRs are welcome. If you spot a bug or have an idea, feel free to open an issue.
Mano — GitHub @Mano11x · manomaghi6@gmail.com
Built over 2-4 weeks of nights and weekends, one debugging session at a time.