Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Harsha200105/DesktopAssistant/llms.txt

Use this file to discover all available pages before exploring further.

This guide walks you from a fresh clone to a running Jarvis session in about five minutes. You’ll install the dependencies, drop in your config.ini, launch the assistant, and speak your first command.

Prerequisites

Before you begin, make sure you have:
  • Python 3.9 installed and available on your PATH (python --version should report 3.9.x)
  • A microphone connected and set as the default input device in your OS sound settings
  • The repository cloned locally (step 1 below covers this)
  • On Ubuntu only: espeak installed (sudo apt-get install espeak)

Step-by-Step

1

Clone the repository

git clone https://github.com/Harsha200105/DesktopAssistant.git
cd DesktopAssistant
2

Install dependencies

Choose the command that matches your operating system:
pip install -r "Requirements&COC/requirements.txt"
3

Set up config.ini (Windows only)

The Windows entry point (Jarvis2_4windows.py) checks for a config.ini file in the directory you run it from and exits immediately if the file is missing.Copy the template from Requirements&COC/ into src/:
copy "Requirements&COC\config.ini" src\config.ini
Open src/config.ini and fill in at least your name and, optionally, your preferred search engine:
[DEFAULT]
master = YourName
search_engine = Google
debug = False
musicpath =
voice = Male
rate = 150
volume = 100
energy_threshold = 300

[EMAIL]
server = smtp.gmail.com
port = 587
username =
password =
The Ubuntu entry point (Jarvis2.py) does not read config.ini. Settings like TTS voice, speech rate, and energy threshold are set directly in the source. Skip this step entirely if you are on Ubuntu.
config.ini key reference
KeyDefaultDescription
masterYourNameYour name — used in the greeting (“Good Morning, YourName”)
search_engineGoogleDefault search engine: Google, Bing, DuckDuckGo, or Youtube
debugFalseSet to True to type commands instead of speaking (see tip below)
musicpath(empty)Absolute path to your music folder for the “play music” command
voiceMaleTTS voice: Male or Female
rate150Speech rate in words per minute
volume100Volume as a percentage (0–100)
energy_threshold300Microphone sensitivity; increase if Jarvis stops responding
4

Run the assistant

Launch Jarvis from inside the src/ directory so that config.ini (and the actions.py / commands.py imports) resolve correctly:
cd src
python Jarvis2_4windows.py
You will see Initializing Jarvis.... printed to the terminal, followed by a time-appropriate greeting (“Good Morning / Afternoon / Evening, YourName”) spoken aloud. The Tkinter GUI window opens at the same time — you’re live.
5

Give your first voice command

Click the Speak button in the GUI window (or, in debug mode, type at the terminal prompt) and say one of these to verify everything is working:
Hello
Jarvis responds: “Hello Sir”Try a follow-up:
What's up
Jarvis replies with one of: “Just doing my thing!”, “I am fine!”, “Nice!”, or “I am nice and full of energy” — chosen at random.To close the session, say:
Bye
Jarvis says “Bye Sir, have a good day.” and exits.

Debug Mode: Type Instead of Speaking

If you don’t have a microphone available, or you want to test new commands quickly, enable debug mode in config.ini:
[DEFAULT]
debug = True
With debug = True, Jarvis2_4windows.py replaces the microphone listener with a simple input() call:
def take_command():
    return input("Command |--> ")
The terminal shows a Command |--> prompt for every command cycle. All speech output still plays through TTS — only the input path changes.
Debug mode is also useful for diagnosing unrecognised commands. Because the raw query string is returned verbatim, you can verify exactly what text the command-matching logic receives.

The GUI Window

When Jarvis starts it opens a 700×500 px Tkinter window titled “Desktop assistant”. The window is not resizable horizontally but can be resized vertically.
┌─────────────────────────────────────────────┐
│  Desktop assistant                          │
├─────────────────────────────────────────────┤
│  Assistant: Initializing Jarvis....         │
│  Assistant: Good Morning YourName           │
│  Assistant: Hello Sir                       │
│  Assistant: Next Command! Sir!              │
│                                        │▲│  │
│                                        │ │  │
│                                        │▼│  │
├─────────────────────────────────────────────┤
│ [Speak]                                     │
└─────────────────────────────────────────────┘
ElementDetails
Chat log (Listbox)Scrollable list; each entry is prefixed with Assistant: and added by the gui.speak() function whenever Jarvis says something
Scroll barLinked to the chat listbox via yscrollcommand; lets you scroll back through the conversation
Speak buttonTriggers one command cycle — Jarvis listens, recognises, executes, and speaks the result. The button is anchored to the bottom-left (SW) of the window
Do not close the Tkinter window with the OS close button while a command is in progress. Doing so may leave the TTS engine (pyttsx3) in a locked state. Always end the session by saying “Bye” or “Stop” so Jarvis calls sys.exit() cleanly.

Voice Commands Reference

Some commands are only available in one entry point. The Ubuntu column applies to Jarvis2.py; the Windows column applies to Jarvis2_4windows.py.
What you sayWhat Jarvis doesUbuntuWindows
HelloGreets you: “Hello Sir”
What's upReplies with a random upbeat message
How are youReplies with a random upbeat message
Open Google / Open YouTubeOpens the site in your default browser
Search for <query>Searches using your configured search engine
Wikipedia <topic>Speaks a two-sentence Wikipedia summary
DateAnnounces the current date (e.g., Monday, June 02, 2025)
TimeAnnounces the current time (e.g., 10 30 AM)
Open emailPrompts for a recipient and message, then sends via SMTP
MailPrompts for a recipient and message, then sends via SMTP
Play musicPlays a random MP3 from musicpath
Pause musicPauses playback
UnpauseResumes playback
Stop musicStops playback
Change rate to <wpm>Changes TTS speech rate on the fly
Change voice to male/femaleSwitches TTS voice gender
Change volume to <0-100>Adjusts TTS volume
Bye / Stop / Abort / NothingEnds the session

Build docs developers (and LLMs) love