Skip to content
Conduit

mcp server

IDOTaskMaster

Native macOS task manager and system monitor

galihlasahido/IDOTaskMastercommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 22, 2026

IDOTaskMaster

Support via PayPal Support via Lynk.id

A native macOS system monitor / task manager with a deep, power-user feature set, presented in Activity Monitor's native visual language — SF Pro, standard controls, subtle filled-area graphs, correct light & dark appearance. No neon, no custom fonts, no upsells: every page is unlocked, free.

Built with SwiftUI + AppKit interop + Canvas drawing, reading live metrics straight from host_processor_info, vm_statistics64, libproc, IOKit, and friends — no helper daemons, no IPC. Providers that can't read a metric say "Unavailable" instead of guessing.

Features

Live monitoring

  • Summary — dashboard with CPU/Temp/GPU capacity towers, a tabbed CPU Overview graph (Utilization / Temperature / Kernel), top CPU processes, memory utilization band, and a tile grid for Disks / Network / Energy / GPU / NPU / Thermals.
  • Performance — master-detail page with a live sparkline rail (CPU, Memory, GPU, NPU, Disks, Network, Energy, Thermals) and rich per-domain detail: per-core CPU graphs, GPU Overall/Engines tabs, disk & network throughput, battery/power state, per-die thermal sensors.
  • Processes and Users — grouped Applications/Background process tree with a full identity/lifetime/processor/memory/disk detail pane; per-user rollups.
  • System Info — a system_profiler-style Hardware / Network / Software catalog with key-value detail and Reload.
  • Startup Apps and Services — LaunchAgent/Daemon and launchctl listings with enable/disable and detail panes.

Power-user tools (free, no license required)

  • Power & Freq — an HWiNFO-style live sensor tree (Value/Min/Max) for CPU/GPU/SSD.
  • Connections — per-process socket table with exposure classification (loopback/LAN/Internet) and filter chips.
  • Network Monitor — a persistent outbound-connection log: which apps talked to which hosts and when, with app icons, opt-in per-host country lookup, and a New Outbound Host alert rule.
  • USB & Ports — every physical USB-C/MagSafe port with live volts/amps/watts, the attached cable's e-marker identity, the negotiated link speed with a cable-vs-device diagnosis, port health (liquid detection, fault counters), the USB device tree, and an explicit cable-health test that catches marginal cables a link rate can't show.
  • Installed Apps — /Applications scan with sizes, related-files finder, and Uninstall.
  • Disk Space — async scanner, bubble visualization, file-type legend, largest folders/files.
  • Clean Up — clear app caches, logs, and developer-tool build output, with everything routed through the Trash.
  • Benchmarks — CPU (single/multi-core), GPU compute, Disk R/W (with a target-disk picker), Internet down/up (with a network-interface picker), plus an aggregate Score page with run history.

Extras

  • Menu bar extra with a live compact readout and popover mini-dashboard (keeps collecting with the main window closed).
  • Dock icon live graph.
  • Alert rules (CPU/memory/disk/battery/new listening port thresholds) → native notifications.
  • Persistent history (SQLite) with 24h/7d charts per domain.
  • Per-process network traffic (Network Usage page).
  • Extended process actions: suspend/resume, renice, kill tree, Open Files & Ports, code-signing status.
  • ⌘K command palette, CSV/JSON export, one-click system snapshot report, battery health trend.

Screenshots

PerformanceProcesses
System InfoBenchmarks
Network MonitorUSB & Ports

Requirements

  • macOS 13.0 or later (Apple silicon is the primary target; Intel is best-effort).
  • Xcode 15 or later to build.
  • XcodeGen only if IDOTaskMaster.xcodeproj needs to be regenerated from project.yml (e.g. a fresh clone before the project file exists) — brew install xcodegen. The committed .xcodeproj is normally enough on its own.

Building & running

All common tasks are one-line scripts in scripts/ (see each file's header for details):

scripts/run.sh        # build (Debug) and launch, like a normal double-click
scripts/debug.sh       # build (Debug) and run under lldb — prints/NSLog stream here
scripts/build.sh       # just compile: scripts/build.sh [Debug|Release]

Or open IDOTaskMaster.xcodeproj in Xcode and hit Run — same target either way.

Some data (SMC sensors, other users' processes, full connection info) may be restricted by macOS permissions; affected providers degrade gracefully instead of failing outright.

Packaging for distribution

scripts/release.sh     # optimized Release build -> dist/IDOTaskMaster.app
scripts/dmg.sh          # -> dist/IDOTaskMaster-<version>.dmg (Finder drag-to-Applications)
scripts/pkg.sh          # -> dist/IDOTaskMaster-<version>.pkg (double-click installer)

dmg.sh and pkg.sh build a Release copy first if dist/IDOTaskMaster.app doesn't exist yet. Builds are ad-hoc/unsigned by default, which is fine for running on the machine that built them. To produce a properly signed build — required before notarizing or sharing with another Mac under Gatekeeper — pass your Apple Developer Team ID:

DEVELOPMENT_TEAM=ABCDE12345 scripts/release.sh
INSTALLER_SIGN_IDENTITY="Developer ID Installer: Your Name (TEAMID)" scripts/pkg.sh

Project structure

IDOTaskMaster/
├─ App/           # @main, window/menu/shortcut chrome, menu bar extra, Dock icon, settings
├─ Core/          # Sampler tick loop, Snapshot model, in-memory + SQLite history, alerts
├─ Providers/     # one type per metric domain (CPU, Memory, GPU, Disk, Network, …)
├─ Benchmarks/    # CPU/GPU/Disk/Internet benchmark runners
├─ Components/    # HistoryGraph, CapacityBar, DataTable, StatTile, DetailPane, Exporter…
├─ Pages/         # one SwiftUI view per sidebar page
└─ Theme/         # per-domain color tokens (macOS palette)

Status

Feature-complete: every monitoring page, power-user tool, alert/history system, menu bar extra, Dock icon, and the MCP server below are implemented.

MCP Server

IDOTaskMasterMCP is a second, standalone command-line target — a Model Context Protocol server that lets an AI assistant (Claude Code, Claude Desktop, or any MCP client) query this Mac's live system-monitoring data over stdio, the same data the GUI app collects. It reuses Core//Providers/ directly (xcodegen compiles those same source folders into both targets — see project.yml), so its readings come from the exact same host_processor_info/vm_statistics64/IOKit/libproc code paths as the GUI app, not a reimplementation.

Read-only, full stop. Every tool below maps to a sample()/query call — never a write method. Nothing here can kill/suspend/renice a process, run a benchmark, toggle a startup item, uninstall an app, or otherwise change anything on this Mac.

Tools

ToolWhat it returns
get_summaryOne-shot CPU/memory/GPU/disk/network/energy/thermal/NPU snapshot + process count
list_processesEvery running process (name/user filter, limit)
get_top_processesSummary dashboard's "Top CPU processes" table
get_process_detailOne PID's full detail + code-signing status + open files/sockets
get_system_infoHardware/Network/Software catalog (system_profiler-backed)
list_startup_itemsLaunchAgents/LaunchDaemons on disk + live launchctl state
list_servicesEvery job launchctl print currently knows about
list_connectionsPer-process open sockets, with loopback/LAN/internet exposure
list_installed_apps/Applications scan: name, version, publisher, size
list_history_seriesWhich (domain, key) time series this Mac has recorded
query_history24h/7d history for one (domain, key) pair
list_alert_rulesThe GUI app's configured alert rules (not fired-alert history)
get_disk_healthS.M.A.R.T. status per physical disk (Verified / Failing / Not Supported)
get_usb_portsUSB-C/MagSafe ports: live power, cable e-marker identity, negotiated link speed, port health, device tree

list_history_series/query_history read the same ~/Library/Application Support/IDOTaskMaster/History.sqlite file the GUI app's own history recorder writes to (they only query it — never .start() a second recorder against it), so they return real data only once the GUI app has run at least once. Likewise list_alert_rules reads the GUI app's own UserDefaults-persisted rules.

Where the server lives

The server ships inside the app at IDOTaskMaster.app/Contents/Helpers/IDOTaskMasterMCP, so every DMG, PKG and zip release includes it — nothing to build separately.

Registering with an assistant

Open Settings ▸ Integrations. It shows, for Claude Code and OpenCode, whether the server is registered, which config file that lives in, and a one-click Register / Update / Remove. Under the hood:

  • Claude Code — runs claude mcp add -s user idotaskmaster -- <path> (user scope, so it works from every project).
  • OpenCode — adds an mcp.idotaskmaster entry to ~/.config/opencode/opencode.jsonc (or opencode.json). The file is edited as text, so comments, key order and every other value stay exactly as they were, and the original is copied once to <config>.idotaskmaster.bak before the first change.

With Keep registrations up to date on (the default), launching the app from /Applications repoints a registration you already made if the app was updated or moved. It never creates a registration you didn't ask for.

For other MCP clients, point them at the helper by hand:

{
  "mcpServers": {
    "idotaskmaster": {
      "command": "/Applications/IDOTaskMaster.app/Contents/Helpers/IDOTaskMasterMCP"
    }
  }
}

Building from source

scripts/build-mcp.sh            # standalone Debug build
scripts/build-mcp.sh Release

Building the app target (scripts/build.sh) also builds and embeds the helper.

Support

IDOTaskMaster is free, open source, and will stay that way — no license keys, no paywalled pages, no ads. If it's saved you a trip to Activity Monitor often enough to be worth a coffee, a small contribution goes a long way toward keeping it built and maintained:

Support via PayPal Support via Lynk.id

Not able to contribute? Starring the repo, filing an issue, or just telling another Mac user about it helps just as much. Thank you either way. 🙏

Questions, feedback, or anything else — reach me at galih.lasahido@gmail.com.

License

Apache License 2.0 — see LICENSE.

↑↓ navigate openesc close