M_Coder is a personal desktop assistant written in Python. It provides a Tkinter GUI, text-to-speech and voice input where available, task/timer scheduling, and a collection of useful system commands (open apps, run shell commands, shutdown/restart, timers, etc.). This project is a solo hobby/portfolio app intended to automate common desktop tasks and to experiment with voice-driven automation.
NOTE: The project aims to run on Windows, macOS and Linux, but some voice and Windows-specific features (COM / win32 speech) are only available on Windows. See Supported Platforms below.
- Voice input / output (pyttsx3, optional pywin32 for Windows speech integration)
- Tkinter-based GUI with task, scheduler, and command entry UI
- Task scheduling: create, view, complete, delete tasks
- Timers and countdowns (minute and second timers)
- System commands: open apps, open files, shutdown/restart, lock screen
- Command execution: run shell commands from the UI
- Persistent simple JSON storage (jarvis_data.json)
- Install Python 3.8+ (recommended).
- Install dependencies (there is no requirements.txt yet — the commands below install the most common ones):
python -m pip install --upgrade pip
pip install pyttsx3
# On Windows (optional, for richer speech):
pip install pypiwin32- Run the application:
# Run the CLI/manager entrypoint
python m_coder.py
# Or run the GUI voice assistant
python jarviceAI.py- Windows: Full feature set (pywin32 / COM-based speech if installed). Recommended for best experience.
- macOS / Linux: The app will fall back to pyttsx3 or other available TTS. Some Windows-only commands (win32-specific) will not work.
README.md
jarviceAI.py # Main Tkinter GUI voice-assistant
m_coder.py # CLI-style manager and helper functions
jarvis_data.json # Saved tasks / state (JSON)
jarvis_diag.py # Diagnostic utilities
voice_assistant_windows_full.py # Additional Windows voice helper
- jarviceAI.py defines a JarvisAssistant class that builds the Tkinter UI, registers command handlers, and manages tasks and timers. It uses threads for background timers/scheduling and reads/writes jarvis_data.json to persist tasks and settings.
- m_coder.py defines a command-line-driven manager with many helper utilities (listing files, task management helpers, system control). It can be run directly as an alternate entrypoint.
- jarvis_data.json: the app stores tasks, schedules and other small pieces of state in this file at the repository root. Back it up if you modify tasks you want to keep.
Recommended short-term improvements to make development and contribution easier:
- Add a requirements.txt or pyproject.toml to pin dependencies. Example:
pyttsx3
pypiwin32 # windows only
- Add a LICENSE (MIT is a common choice for personal projects).
- Add basic unit tests for non-UI logic (task handling, schedule parsing) and a GitHub Actions workflow that installs dependencies and runs the tests on push.
- This project can run system commands. Only run commands you trust. Do not use this repository or its tools to attempt unauthorized access, hacking, or illegal activity.
- The repository contains utilities that can shutdown or lock a machine — ensure you understand the commands before executing them.
- This project is maintained by a single author. If you want to contribute:
- Fork the repo, create a topic branch, and open a pull request with a clear description of changes.
- Prefer small, focused PRs (one feature or bug per PR).
- Create requirements.txt and a simple GitHub Actions CI workflow (install deps + run lints/tests).
- Split jarviceAI.py into smaller modules (ui/, commands/, data/) and open a draft pull request.
- Add a LICENSE and CONTRIBUTING.md.
M_Coder — m-coder567 (GitHub)
If you want, I can commit this README to your repository now and also add a requirements.txt and a basic GitHub Actions workflow in the same change.