Skip to content

Introduction

Hosomaki is a Linux system diagnostics CLI that reads your system and helps you understand what is happening in plain language.

It uses a local language model via Ollama and never sends anything off your machine.

What it does

When something goes wrong on a Linux system the usual path is journalctl, ss, systemctl, and several minutes of reading. Hosomaki shortens that loop by collecting the relevant system state and handing it to a local model with a tightly constrained prompt, then returning a structured, readable analysis.

Every command follows the same pipeline:

collect → sanitise → prompt → validate → repair → render

The sanitisation step is non-negotiable.

Core commands

CommandWhat it does
explainExplain errors from a service, boot, log file, pipe, or running process
statusQuick summary of current system health
doctorFull diagnosis with concrete suggested actions
auditSurface changes since a baseline snapshot
watchTail a service and explain errors in real time
whyReconstruct the failure chain for a given exit code and service
portsList listening ports and flag anything unexpected
timersInspect systemd timers and flag failures or overdue schedules
cronsRead all crontabs and explain what each job does
mountsInspect active mounts, detect stale NFS, and flag disks nearing capacity
updatesExplain pending package updates before applying them
historyReview past diagnostic results
firewallExplain active firewall rules
shell-integrationInstall a shell wrapper that explains failed commands automatically

Design principles

Read-only. Every command collects data and surfaces insights without modifying the system being diagnosed. audit --init and history --clear are the exceptions. They write to Hosomaki's own local state directory, not to anything on the system itself.

Local first. The model runs on your machine via Ollama.

Sanitise first, always. Sensitive material is stripped before the model ever sees it.

Structured output. Every command produces validated, typed JSON from the model. Invalid or semantically empty responses are repaired or rejected.

Next steps