Selected work
Desktop Tool · ElectronElectron 38 · React 19 · TypeScript · Native C++

MiOW2IP — Minecraft Automation Bot GUI

An Electron app that orchestrates Minecraft farming bots with real-time console streaming, native Windows API capture, template matching, and vision-based detection.

A desktop bot controller for Minecraft automation tasks, bridging React UI and Node.js bot scripts with real-time output streaming, global hotkeys (Ctrl+F1–F5), and a native C++ Windows API module for screen capture and input injection.

Role — Solo developer
  • Electron 38
  • React 19
  • TypeScript
  • Tailwind CSS 4.1
  • React Router 7
  • Vite
  • Node.js
  • C++ (win_api_loader)
  • DirectX DXGI
  • Ollama (vision API)
  • Jimp (image processing)
  • Tesseract.js (OCR)

MiOW2IP is an Electron-based launcher and monitor for Minecraft automation bots. The app manages four bot types—fishing, boating, mining, and flooring—each spawned as a forked Node.js process whose stdout/stderr streams directly to the GUI. The UI is built in React 19 with Tailwind CSS, React Router for navigation, and React Icons; it presents real-time console output, bot state tracking, and control buttons on dedicated pages for each bot.

The architecture splits across three layers: Electron main process (Node.js) orchestrates bot lifecycle, manages IPC channels, and handles system integrations; a preload script securely bridges the React renderer to main via contextBridge; React components subscribe to bot events and emit control signals. Global hotkeys (Ctrl+F2 for fishing, Ctrl+F3 for boating, etc.) toggle bots and navigate the app. Bots use environment variables for tuning and interact with the Minecraft window via a native C++ addon (win_api_loader) that wraps DirectX DXGI screen capture, grayscale + contrast preprocessing, template matching, and mouse/keyboard injection.

A utility layer adds recording, replay, and OCR operations: npm run record captures raw RGBA frames decoupled from diff/templating, npm run replay consumes a manifest to re-run detection offline, and npm run ocr processes diffs through Ollama vision. Bots declare intent via stdout markers (INTENT:LOSE_FOCUS), which trigger focus management to prevent accidental input. All bots listen on stdin for graceful SHUTDOWN commands and clean up resources (keys, hotkeys) on exit.

What's notable
  • Electron with forked child processes: four distinct bots (fishing, boating, mining, flooring) run as isolated Node.js processes with stdout/stderr piped to React in real time
  • Native Windows integration: C++ addon wraps DirectX DXGI for screen capture, template matching with custom grayscale + contrast preprocessing, and mouse/keyboard input injection
  • Global hotkeys (Ctrl+F1–F5) for instant bot control and app navigation without leaving Minecraft
  • IPC-based architecture with secure contextBridge, graceful bot shutdown via stdin, and process lifecycle management (SIGTERM/SIGKILL with 2s timeout)
  • Utility pipeline: raw RGBA frame recording, offline replay with manifest, and OCR via Ollama vision on captured diffs