GitHub - hxii/peek: Terminal-based network monitoring dashboard

3 min read Original article ↗

peek is a small, CLI (technically TUI) utility to monitor local and remote hosts.

Why

Yesterday (2026-03-26) we experienced a power outage, and I realized that I'm a dumbass and that all of my monitoring abilities are inaccessible. The reason being is that Prom-Grafana is located on our NAS while Uptime Kuma is on the RPi together with HomeAssistant, and until everything is loaded I can't access either.

I was hoping to find a tool similar to Uptime Kuma that works in CLI, but I couldn't find anything that will do what I needed it to do.

In true ADHD fashion, I decided to fuck around a little bit and get something quick running locally, but unfortunately, due to the same fucking ADHD and the multitude of other things I want to do and being a dad – I decided to offload the brunt of the work to Mr. Opencode.

Thus, peek was born.

⚠️: peek was coded largely with the assistance of LLM, but validated by me.

What

The focus of peek was, and is to offer the functionality that I personally needed from it, hence it most definitely is NOT feature complete, but will probably help in a pinch.

peek uses YAML syntax for the configuration, which it will try to load from ~/.config/peek/config.yaml. If the path does not exist, peek will try to initialize it.

Monitor Types

  • ping – Regular, run of the mill ping
  • tcp - TCP ping using a specific port
  • dns - DNS resolution
  • http – HTTP response code

Other Features

  • Grouping: To make the list easier to filter, you can define groups and assign target to them
  • Monitor heartbeat frequency configurable via interval, and timeout

Example Config

peek:
  interval: 30
  timeout: 5

groups:
  - id: servers
    name: Servers
    icon: 💻
  - id: network
    name: Network
    icon: 📡
  - id: external
    name: External
    icon: 🌐

targets:
  - name: Router
    host: 192.168.1.1
    type: ping
    icon: 📡
    group: network

  - name: Home Assistant
    host: 192.168.1.100
    type: tcp
    port: 8123
    icon: 🏠
    group: servers

  - name: Pi-hole
    host: 192.168.1.50
    type: http
    url: http://192.168.1.50/admin/
    method: GET
    icon: 🛡️
    group: servers

  - name: Cloudflare DNS
    host: 1.1.1.1
    type: dns
    resolve: google.com
    icon: 🔍

  - name: GitHub
    host: github.com
    type: http
    url: https://github.com
    method: GET
    icon: 🐙
    group: external

Installation

The recommended way to install peek is using uv:

uv tool install git+https://github.com/hxii/peek.git

Usage

After installation, you can run the dashboard with: