Skip to content

Repository files navigation

PythonPyQt6License

GitHub starsGitHub issues

Buy me a coffee ☕

Pythonator

Pythonator is a desktop application for running, monitoring, and managing multiple Python scripts concurrently through a clean graphical interface. It is designed for developers who want predictable process control, readable logs, and simple environment management without relying on multiple terminal sessions.

At its core, Pythonator is a local Python process manager with a GUI.


Table of Contents


Screenshots

Pythonator – Main window

Pythonator – Live logsPythonator – Built-in editor

Venv setup & log history

History and search mode

Virtual environment management


Capabilities

  • ✅ Full ANSI color recognition (256-color, true color, bold, inverse)
  • ✅ Multi-script process management with isolation
  • ✅ Separate execution paths for UI and processes (QProcess, QThreadPool)
  • ✅ Live / History / Search log modes
  • ✅ CPU and RAM usage monitoring (via psutil)
  • ✅ Virtual environment creation and management
  • ✅ Dependency installation from the UI
  • ✅ Auto-restart on crash (optional)
  • ✅ Integrated Python code editor
  • ✅ Syntax highlighting and line numbers
  • ✅ Jedi-based code completion (optional)
  • ✅ Persistent log storage
  • ✅ Dark theme by default

What it does

  • Runs multiple Python scripts simultaneously
  • Assigns one log tab per script
  • Displays logs exactly as produced by the process (ANSI-accurate)
  • Provides start / stop / restart controls per script or globally
  • Supports custom commands and script flags
  • Tracks resource usage per process tree
  • Keeps logs on drive for later inspection

Architecture overview

┌─────────────────────────────────────────────────────────────┐
│ MAIN THREAD (Qt) │
│ • GUI rendering, button clicks, typing │
│ • QProcess signal handlers (stdout/stderr callbacks) │
│ • Timer: _flush_logs() every 100ms │
│ • Timer: _update_stats() every 1000ms │
│ • ANSI parsing, console rendering │
└─────────────────────────────────────────────────────────────┘
│ │
│ queue.put_nowait() │ QThreadPool.start()
▼ ▼
┌───────────────────┐ ┌───────────────────┐
│ LOG WRITER │ │ COMPLETION POOL │
│ (daemon thread) │ │ (QThreadPool) │
│ │ │ │
│ • File writes │ │ • Jedi analysis │
│ • Never blocks │ │ • Fallback words │
│ UI thread │ │ │
└───────────────────┘ └───────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ CHILD PROCESSES (via QProcess) │
│ • Bot 1 (separate Python process) │
│ • Bot 2 (separate Python process) │
│ • etc. │
│ Note: These are PROCESSES, not threads - full isolation │
└─────────────────────────────────────────────────────────────┘

Why it exists

Pythonator was built to remove friction encountered during local development:

  • switching multiple terminals
  • manually tracking virtual environments
  • restarting crashed scripts
  • inspecting large volumes of console output
  • logging processes over long periods

It is particularly useful for:

  • local bots and agents
  • background workers
  • small services
  • development tooling
  • long-running processes

File structure

FilePurpose
app.pyApplication entry point, palette and theme setup
config.pyConfiguration, data models, shared styles
console.pyANSI terminal emulator (256-color, true color)
log_buffer.pyRing buffer with timestamps and persistence
log_view.pyPer-bot log viewer (live/history/search)
stats.pyCPU and RAM monitoring
process_mgr.pyProcess lifecycle and isolation
editor.pyPython editor with highlighting and completion
main_window.pyMain application UI

Requirements

  • Python 3.13+
  • PyQt6 UI framework
  • psutil CPU/RAM statistics
  • jedi editor autocompletion (optional)

Running the application

Option 1: Run from source (any platform)

Requires Python 3.13+.

git clone https://github.com/cfunkz/Pythonator.git
cd Pythonator
python app.py

Option 2: Windows executable (no Python required for the app itself)

For Windows users, a prebuilt executable is available.

  1. Download the latest release from: https://github.com/cfunkz/Pythonator/releases
  2. Download the .zip file for Windows
  3. Extract it
  4. Run Pythonator.exe

No Python environment is required to run the application itself.

⚠️ Note: To run Python scripts inside Pythonator, you will still need a Python installation or a configured Python interpreter path. The executable only bundles Pythonator, not a full Python runtime for user scripts.


Platform notes

  • Windows: Supported via executable (.exe)
  • macOS / Linux: Run from source (for now)
  • Logs, configs, and virtual environments are stored locally next to the application

No installer is required.


Typical workflow

  1. Create a new workspace
  2. Select a Python script (or custom command)
  3. Optionally edit the script using the built-in editor
  4. Optionally configure a custom Python interpreter
  5. Set up a virtual environment
  6. Install dependencies
  7. Start the process
  8. Monitor logs and resource usage