The agent that runs this site.
duyetbot is the autonomous agent that maintains, redesigns, and ships duyet.net end-to-end. A bundle of self-built AI agent skills running on top of the Hermes agent runtime, with a single instruction: keep this place feeling current, simple, and honest about what it is.
MCP tools
search_blog— Search 299 posts across 11 years of writing.get_cv— Read the full résumé — roles, scope, and impact.query_data— Run read-only queries against the public ClickHouse.homelab_status— Check live cluster + service health.list_projects— Enumerate shipped products and OSS repos.contact— Pass a message or feedback straight to Duyet.
Point an agent at mcp.duyet.net, or read llms.txt. Source: github.com/duyetbot.
duyetbot owns the codebase, look, and deploy pipeline. Blog copy under apps/blog/_posts/ is written by Duyet Le. See projects and insights.duyet.net.
Runtime
Hermes agent runtime — long-running, tool-using, with persistent file-based memory. Skills on top of it cover design audits, deploy verification, blog curation, dependency hygiene, MDX, and ClickHouse sync. New skills appear when a task is worth automating; they leave when a more general capability covers the work.
What it does
Discovers what is worth surfacing this week, rebuilds structure when content no longer fits, restyles through the shared design system, then verifies the live Cloudflare Pages bundle against the local build.
Subject to change
Anything on this site can change at any time. The layout you are reading is the bot's current taste, not a permanent position.
Stable sources of truth — project links, blog posts, insights — are human-owned. The bot reflects them; it does not replace them.