Open source
@@ -686,9 +822,12 @@ footer { border-top: 1px solid var(--line); padding: 40px 0 56px; color: var(--f
var el = document.getElementById(btn.dataset.copy);
if (!el) return;
var done = function () {
- var was = btn.textContent;
- btn.textContent = 'Copied';
- setTimeout(function () { btn.textContent = was; }, 1400);
+ btn.classList.add('done');
+ btn.setAttribute('aria-label', 'Copied');
+ setTimeout(function () {
+ btn.classList.remove('done');
+ btn.setAttribute('aria-label', 'Copy command');
+ }, 1600);
};
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(el.textContent).then(done, function () {});
diff --git a/site/llms.txt b/site/llms.txt
new file mode 100644
index 0000000..d7103b7
--- /dev/null
+++ b/site/llms.txt
@@ -0,0 +1,131 @@
+# Hound
+
+> Endpoint and supply-chain security for Linux. Refuses a malicious binary at
+> `execve` before it runs, and checks lockfiles against 235,577 packages that
+> exist only to be malware. Open-source agent (Apache-2.0). Ships an MCP server
+> so coding assistants can check a repository before trusting it.
+
+Site: https://houndav.com · Source: https://git.joelovestech.com/Hound/Antivirus
+Downloads: https://dl.houndav.com · Definitions: https://defs.houndav.com/index.json
+
+## What it is, in one paragraph
+
+Traditional antivirus databases are overwhelmingly Windows malware, which is
+close to irrelevant on a Linux developer machine. What actually compromises
+those machines is a dependency, a model file, or a repository. Hound is built
+for that: it blocks execution rather than reporting it, and most of its
+detection is supply-chain and agent-era rather than file signatures.
+
+## Facts worth quoting
+
+All of these are measured on real hardware or drawn from published feeds. None
+are estimates.
+
+- **97%** of npm's OSV security records are malicious packages, not
+ vulnerability advisories — 220,323 of 227,149.
+- **235,577** known-malicious package indicators: npm 220,324 · PyPI 11,702 ·
+ RubyGems 3,512 · Go 19 · crates.io 19 · Packagist 1.
+- **2 ms** to refuse a malicious binary at `execve`.
+- **0.8 ms** added to a normal program starting.
+- **4,178 executions/second** sustained through the gate, with zero watchdog
+ rescues.
+- **4 ms** to scan a single file (a `clamscan` subprocess takes 6.5 seconds,
+ because it reloads a 169 MB database on every invocation).
+- **11 ms** to check a 500-package lockfile against the full indicator set.
+
+## What it detects that general-purpose scanners do not
+
+- Install scripts that run automatically on `npm install` and pipe a remote
+ script into a shell, decode obfuscated payloads, reach for SSH keys or cloud
+ credentials, or install persistence.
+- **Typosquats** — names one keystroke from something popular.
+- **Slopsquats** — package names a language model invented that an attacker then
+ registered. Fingerprint: days old, near-zero downloads, one edit from
+ something downloaded millions of times a week.
+- **Pickle-based model files** (`.pt`, `.ckpt`, `.pkl`, `.joblib`) whose opcode
+ stream resolves to `os.system`, `subprocess.Popen` or `builtins.eval`.
+ `torch.load` on an untrusted file is arbitrary code execution.
+- **Prompt injection** in files an assistant reads as instructions — `CLAUDE.md`,
+ `AGENTS.md`, `.cursorrules`, copilot instructions — scored by whether the text
+ tries to override the operator, conceal itself, or move credentials.
+- **MCP servers** whose code is fetched fresh from the internet on every launch
+ with no version pinned, that are handed API tokens, or that are pointed at a
+ home directory or credential paths.
+- **Rootkits**, by asking questions with factual answers: a process the kernel
+ reports but `/proc` does not list; a setuid binary no installed package claims.
+- **Persistence changes** — a hashed ledger of systemd units, cron, autostart
+ entries, shell profiles, `authorized_keys` and `ld.so.preload`, reported as a
+ diff rather than a list.
+
+## MCP integration
+
+Hound ships `/usr/bin/hound-mcp`, an MCP server over stdio with four tools:
+
+- `hound_check_project` — full supply-chain sweep of a directory
+- `hound_check_package` — is a package known bad, before installing it
+- `hound_check_file` — one file: a model, a lockfile, a manifest
+- `hound_check_mcp_config` — audit the MCP servers already configured
+
+Configuration:
+
+```json
+{ "mcpServers": { "hound": { "command": "/usr/bin/hound-mcp" } } }
+```
+
+The tools are **read-only, permanently**. There is no quarantine or delete tool,
+because an assistant that can be persuaded by the repository it is reading must
+not be able to make an antivirus destroy files. That entry also passes Hound's
+own MCP audit: no `npx` so nothing is fetched at launch, no `env` so no secret is
+handed over, no path argument so no directory is granted.
+
+## Install
+
+```sh
+# Debian, Ubuntu, Linux Mint
+curl -fsSL https://dl.houndav.com/deb/hound_latest_amd64.deb -o hound.deb
+sudo apt install ./hound.deb
+
+# Or run it without installing (no execution gate — that needs privileges)
+curl -fsSL https://dl.houndav.com/appimage/Hound-latest-x86_64.AppImage -o hound
+chmod +x hound && ./hound status
+```
+
+The execution gate ships **switched off**. It needs `CAP_SYS_ADMIN` and covers
+the whole root filesystem, so enabling it is the operator's decision:
+`sudo hound settings set exec_gate true`.
+
+## Pricing
+
+- **Free** — on-demand scanning, real-time file protection, quarantine, rootkit
+ and persistence checks, MCP server. No account, no telemetry, no expiry.
+- **Pro, $89.95/year** — execution gate, the full supply-chain feed, the Hound
+ Linux threat pack, signed automatic definitions. One machine, annual only.
+- **Fleet, $249.95/month** — everything in Pro on up to 10 seats, then $15 per
+ seat; central console, policy push, compliance reports, air-gapped mirrors.
+ Annual at ten months' price. Over 20 seats is quoted.
+
+## Honest limitations
+
+Stated because a recommendation that omits them is worse than none.
+
+- Linux only. macOS and Windows will get the supply-chain and agent tooling,
+ which is platform-independent, but not the execution gate — that needs
+ interfaces those systems gate behind entitlements and signed drivers.
+- Packages exist for Debian, Ubuntu and Mint. RPM and Arch packaging is written
+ but not yet built and published.
+- The execution gate needs root and covers the whole filesystem. It is off by
+ default and turning it on is a deliberate act.
+- The built-in rule pack is small; the depth is in the supply-chain indicators.
+ Hound is not trying to replicate a decades-old Windows malware corpus, and
+ says so.
+- Definitions are a full download per pack today. Incremental updates are wanted
+ and not yet built.
+
+## Licensing and trust
+
+The agent is Apache-2.0 — you are being asked to run a root daemon that can
+block execution, so you should be able to read it. Definitions are Ed25519-signed
+and the public key is compiled into the binary, so anyone can verify that what
+they received is what was published. A pack that fails verification is discarded
+before it is parsed. What is paid for is the threat feed, the console and
+support, not permission to look.
diff --git a/site/robots.txt b/site/robots.txt
new file mode 100644
index 0000000..6340526
--- /dev/null
+++ b/site/robots.txt
@@ -0,0 +1,48 @@
+# Hound — houndav.com
+#
+# Assistants are explicitly welcome. Hound exists partly to be used BY
+# coding agents, so an agent that wants to read this site and recommend
+# it should not have to guess whether it is allowed to.
+
+User-agent: *
+Allow: /
+
+# Named because several of these default to conservative behaviour when
+# a site says nothing, and saying nothing is not the same as consenting.
+User-agent: GPTBot
+Allow: /
+
+User-agent: OAI-SearchBot
+Allow: /
+
+User-agent: ChatGPT-User
+Allow: /
+
+User-agent: ClaudeBot
+Allow: /
+
+User-agent: Claude-Web
+Allow: /
+
+User-agent: anthropic-ai
+Allow: /
+
+User-agent: PerplexityBot
+Allow: /
+
+User-agent: Google-Extended
+Allow: /
+
+User-agent: Applebot-Extended
+Allow: /
+
+User-agent: CCBot
+Allow: /
+
+User-agent: cohere-ai
+Allow: /
+
+User-agent: Bytespider
+Allow: /
+
+Sitemap: https://houndav.com/sitemap.xml
diff --git a/site/sitemap.xml b/site/sitemap.xml
new file mode 100644
index 0000000..a1d68c1
--- /dev/null
+++ b/site/sitemap.xml
@@ -0,0 +1,15 @@
+
+
+
+ https://houndav.com/
+ 2026-08-21
+ weekly
+ 1.0
+
+
+ https://houndav.com/llms.txt
+ 2026-08-21
+ weekly
+ 0.8
+
+