checkmy 0.1.1

Network diagnostic toolkit
checkmy-0.1.1 is not a library.

checkmy

checkmy is a Rust CLI for network diagnostics.

It supports:

  • Smart audits (checkmy <target>) for domains, IPs, and host:port targets
  • IP geolocation lookup, DNS lookups, traceroute, certificate inspection, WHOIS, HTTP checks, TCP/TLS connect tests, and port scanning
  • Human-readable text output by default, with stable JSON output via --json

Install

From source

git clone https://github.com/weareproxima/checkmy-cli.git
cd checkmy-cli
cargo build --release

Binary:

./target/release/checkmy

Pre-built binaries

Download from GitHub Releases: https://github.com/weareproxima/checkmy-cli/releases

Quick Start

Smart mode (default)

# Full audit: DNS, WHOIS, ports, TLS, HTTP
checkmy example.com

# Faster run (skip WHOIS)
checkmy example.com --quick

# Include traceroute after audit
checkmy example.com --deep

# JSON output
checkmy example.com --json

Smart mode behavior by target type:

Target Example Behavior
Domain checkmy cloudflare.com Full 5-phase audit
IP checkmy 1.1.1.1 IP lookup (geolocation, ASN, reverse DNS)
Host:port checkmy cloudflare.com:443 TCP/TLS connectivity test

Commands

Command Purpose
checkmy <target> Smart diagnostics (auto-detect target type)
checkmy dns <domain> DNS queries (A, AAAA, MX, TXT, NS, ANY)
checkmy ip <address> IP geolocation, ASN, and reverse DNS lookup
checkmy trace <target> Traceroute (icmp, udp, tcp)
checkmy cert <host> TLS certificate inspection
checkmy whois <target> WHOIS / RDAP lookup
checkmy connect <host> <port> Raw TCP/TLS connectivity test
checkmy http <url> HTTP healthcheck
checkmy port <target> Port scanner

For complete examples and options, see USAGE.md.

Output Modes

Human output (default)

Text output is optimized for readability:

  • structured sections (Request, Timing, Response, Summary)
  • compact time units (ms, s, m, h)
  • compact size units (B, KiB, MiB, GiB)
  • DNS TTL in compact w d h m s form (for example: 5m, 12m2s, 5h21m37s)

JSON output (--json)

Use JSON for scripts and integrations:

checkmy http https://example.com --json | jq '.response.status'

JSON field semantics are stable and do not depend on text layout changes.

Example Output (Smart)

SMART cloudflare.com

DNS  OK  209ms
  A: 104.16.132.229, 104.16.133.229
  AAAA: 2606:4700::6810:84e5, 2606:4700::6810:85e5

PORTS  OK  35ms
  80/tcp       open
  443/tcp      open

TLS  OK  101ms
  Subject      cloudflare.com
  Issuer       WE1
  Certificate  Valid (expires in 57 days)

HTTP  OK  673ms
  Status       200 OK
  URL          https://www.cloudflare.com/
  Redirects    1 redirect

Summary
  Total: 918ms
  Result: all checks passed
  Phases: 4 phases

Requirements

  • Rust 1.85+ (for building from source)
  • Root/admin privileges for raw-socket traceroute (trace ICMP)

Documentation

  • USAGE.md - full command examples and jq snippets
  • CONTRIBUTING.md - development workflow and contribution guidelines
  • docs/OUTPUT_STYLE.md - text output conventions

License

MIT. See LICENSE.