GitHub - Blourvim/hostprint: Agentless SSH system diagnostics and configuration,

3 min read Original article ↗

hostprint: Agentless Linux Server Inspection over SSH

hostprint is a lightweight, agentless Linux system inspection tool that connects over SSH and snapshots a server’s state into a structured data format. It is designed for quickly understanding undocumented, inherited, or unfamiliar Linux servers without installing agents or modifying system state.

This project is particularly useful for, incident response, server discovery, environment documentation, and as structured input for automation or LLM-based analysis.


What hostprint Does

hostprint connects to a remote Linux host via SSH, executes a curated set of read-only system commands, parses their output, and produces an artifact describing the machine’s current state.

The snapshot may include:

  • Operating system, kernel, architecture, and environment details
  • Hardware and virtualization signals
  • Installed packages and software inventory
  • Running services and processes
  • Network configuration, listening ports, and interfaces
  • Basic security-relevant signals and anomalies

The resulting JSON is intended to be:

  • Human-readable
  • Diffable over time
  • Machine-consumable by other tools, pipelines, or LLMs

Status: Alpha software. Interfaces, output schemas, and coverage may change without notice.


Key Characteristics

  • SSH-only access, no daemons or agents
  • Does not make changes to the target system
  • Avoids raw shell dumps
  • Relies on standard utilities as much as possible

Use Cases

hostprint is optimized for scenarios such as:

  • Understanding unknown or inherited Linux servers
  • Generating baseline system documentation
  • Comparing server state across time or environments
  • Feeding structured host data into analysis or AI systems

It is explicitly not designed to replace configuration management, monitoring, security scanning tools or for compliance assistance.


Goals

Given a Linux server with little or no documentation, hostprint aims to answer:

  • What operating system, kernel, and architecture is running?
  • What software is installed, and via which package systems?
  • What services are active and which ports are exposed?
  • What configurations or signals appear unusual or risky?
  • How can this state be captured, diffed, and analyzed later?

Non-Goals

hostprint intentionally does not attempt to be:

  • A vulnerability scanner or penetration testing tool
  • A monitoring or observability agent
  • A compliance or policy auditing solution
  • A configuration management system
  • A source of guaranteed completeness or correctness

It reports only what can be observed through standard user-accessible system tooling over SSH.


Installation

git clone https://github.com/blourvim/hostprint.git
cd hostprint
cargo build --release

The resulting binary will be located at:


Usage

Local run

Runs basic system inspection on the local machine.


SSH run

Runs the same inspection on a remote host over SSH.

hostprint \
  --address example.com \
  --username user \
  --port 22 \
  --key /path/to/key

When using --address following values will default:

  • --username: root
  • --port:22
  • --key:~/.ssh/id_rsa

Options

--disk           Include disk inspection (slower)
--display md     Output results as Markdown
-v / -vv / -vvv  Increase log verbosity

Output

  • Default: debug view of the collected host data
  • --display md: Markdown report

The tool connects to the specified host, performs inspection, and emits structured data describing the system state.


Output

hostprint produces a markdown file or the struct representing the state of the machine for:

  • Manual inspection
  • Version control and diffs
  • Automated pipelines
  • Programmatic consumption by other tools

Exact fields and schemas may evolve as the project matures.


Project Status

hostprint is under active development and should be considered experimental. Feedback, issues, and contributions are welcome.

License: MIT