HC: History Collector The "Boring" Shell History Sink for Distributed Fleets. hc is a lightweight service that centralizes shell history from across your infrastructure into a PostgreSQL backend. Why hc? If you manage 50+ servers, your shell history is fragmented. Finding "that one command that worked" usually involves a dozen SSH sessions and a lot of grep. hc solves this by providing a centralized, multi-tenant sink that is: Agentless: Only requires curl , wget , or socat on the client. No binaries to install on production nodes. Only requires , , or on the client. No binaries to install on production nodes. SSL-Native: Secure ingestion via TLS with support for Client Certificate and API Key authentication. Secure ingestion via TLS with support for Client Certificate and API Key authentication. Grep-Friendly: Fetch your history as plaintext via HTTPS and pipe it directly into your local tools. Fetch your history as plaintext via and pipe it directly into your local tools. Multi-tenant: Isolate history by team or environment using API keys. More on this story on this article from my blog. Architecture Overview (shell) -- TCP / TLS --> hc | +-- spool file (append-only, per-tenant) | +-- PostgreSQL (authoritative storage) | +-- HTTP(S) export (text) Key points: The database is authoritative The spool file exists as a safety net (temporary DB outages, restart recovery) exists as a safety net (temporary DB outages, restart recovery) No in-memory history representation is kept All commands are preserved (no deduplication) Ingestion Plain TCP : trusted network only as the command is cleartext : trusted network only as the command is cleartext TLS (SSL) : recommended, your data is protected and you can authenticate the server using SSL : recommended, your data is protected and you can authenticate the server using SSL BusyBox / ash supported Bash supported Export HTTP : unauthenticated and clear text, can be CIDR-limited. The API key can be used, but it is planned to be r...
First seen: 2026-01-16 13:20
Last seen: 2026-01-16 17:21