Jarvis · Python Desktop Assistant
Terminal-Command Architecture · Local · Single-User
Feature Modules External Actions (OS / Browser) User types command Terminal Input input() → raw string stdin · lowercase · strip main.py Entry Point · Event Loop while True: read → dispatch Command Processor keyword matching · routing if / elif chain Exit Handler exit / quit / stop graceful shutdown Website Launcher Google, YT Gmail, GitHub App Launcher Notepad, Calc Paint, cmd Folder Launcher Desktop, Docs Downloads, Pics YouTube Search/Play webbrowser quote_plus Google News webbrowser news.google.com Time & Date datetime strftime() Joke Generator pyjokes optional install msg Google Fallback unknown cmd search Text-to-Speech Response pyttsx3 · print() + speak() webbrowser.open() URLs in default browser subprocess.Popen() Launches desktop apps os.startfile() / pathlib Opens system folders datetime · pyttsx3 · pyjokes System time · Jokes · Voice output LEGEND Input / Launcher Core Logic / Features Optional / TTS Output OS / External Actions Exit / Fallback Command flow Response path Exit path Fallback / unknown OS action

Core Flow

  • User types command in terminal
  • input() reads and normalizes text
  • main.py loops and dispatches
  • Command Processor routes via if/elif
  • exit / quit / stop ends cleanly

Feature Modules

  • Website Launcher uses webbrowser.open()
  • App Launcher uses subprocess.Popen()
  • Folder Launcher uses os.startfile()
  • YouTube uses webbrowser + quote_plus
  • Time and Date use datetime.strftime()

Special Paths

  • Jokes use optional pyjokes package
  • Missing pyjokes shows install prompt
  • Unknown commands use Google fallback
  • Responses use print() and pyttsx3
  • No cloud backend or API key needed