Skip to content

Feature Benchmark and Roadmap

This document records vminfo's feature tradeoffs after comparing similar open-source projects. It is a planning reference for issues and PR review, not a promise list.

Product position

vminfo should stay within these boundaries:

  • Single binary, low dependency, low configuration — install and use immediately without a daemon, database, or central server.
  • Local, real-time diagnostics first — TUI, CLI, JSON, Web/API all focus on seeing the current machine quickly.
  • Scriptable and embeddable — keep the JSON schema and Go public API stable for CI, automation, and other Go tools.
  • Lightweight web, not a monitoring platform — borrow the instant readability of Netdata, but not the full cloud, multi-node, long-retention stack.
  • Clear platform semanticssummary / watch stay cross-platform; ps / kill remain Linux-only.

Reference projects

ProjectRepresentative strengthsWhat vminfo can borrow
btopHigh-quality TUI, resource graphs, process filtering, tree view, signal actions, themesImprove TUI visuals and process interaction
bottom / btmCross-platform terminal monitoring, widget focus, layout config, history windowsAdd focus/basic modes and better narrow/wide layouts
GlancesTUI, web, REST API, JSON/CSV/stdout, client/server, MCPStrengthen script output and API docs
procsModern ps replacement, search, tree, watch, IO, Docker infoMake vminfo ps a practical troubleshooting entrypoint
htopMature process operations, sorting, filtering, kill/renice, command displayAlign TUI process page with familiar shortcuts
NetdataZero-config realtime web, automatic discovery, clear summariesBorrow the “one glance” web summary without platform complexity
gopsutil / psutilStable cross-platform collection APIsKeep the high-level Go API stable and well documented

P0: Highest value

  1. Enhance vminfo ps

    • vminfo ps <keyword>: filter by process name, user, PID, or command line.
    • vminfo ps --filter <keyword>: explicit filter for scripts.
    • vminfo ps --tree: tree view.
    • vminfo ps --watch: continuous refresh with --count and --interval.
    • vminfo ps --limit 20: limit rows after sort/filter.
    • vminfo ps --sort cpu|mem|pid|name: keep the current sort set.
  2. Add process detail views

    • Show PID, PPID, user, command line, CPU, RSS, and start time in the TUI.
    • Keep the Web process table and API filterable and sortable.
  3. Add a web problem summary

    • Show top CPU, memory, disk, and network warning signals.
    • Keep it read-only, stateless, and lightweight.

P1: Automation and integration

  1. Field selection and tabular output

    • Add user-selectable field subsets for summary and watch.
    • Keep field names aligned with JSON.
  2. Short history windows

    • Keep recent CPU, memory, network, and disk I/O samples in memory.
    • Avoid databases and default disk writes.
  3. Go library examples

    • Add more import examples for single snapshots, continuous sampling, custom JSON, and embedded TUI.

P2: Useful, but not core

  1. MCP server

    • Expose snapshot and process tools for AI assistants.
  2. Container identification

    • Show Docker/containerd identifiers in ps, TUI, and Web views.
  3. Lightweight health scoring

    • Emit a transparent score and warnings set.
  • Long-term data storage or databases
  • Cloud accounts or multi-node control planes
  • Heavy plugin systems
  • Default Prometheus/Influx exporters
  • A large frontend app for the dashboard

Delivery rules

  • If CLI behavior, JSON output, Web API, or exported Go APIs change, update README, docs, and tests together.
  • Keep ps / kill Linux-only.
  • Keep web remote access guarded by token, cookie, CORS, and WebSocket origin rules.
最近更新

Released under the MIT License.