Developers

API, MCP, and machine-readable indexes.

Public stats at api.duyet.net (same-origin mirror at duyet.net/api), an MCP server, and the files agents use to find the rest of the site. GET endpoints need no auth.

Public API

MethodEndpointDescription
GET/healthService health check.
GET/api/ai/percentage/currentHow much of duyet.net is AI-written, right now.
GET/api/ai/percentage/history?days=NAI-percentage time series for the last N days.
GET/api/ai/percentage/availableDays with AI-percentage data available.
GET/api/insights/overviewAggregated development insights from this site.
POST/api/llm/generateLLM generation (card descriptions). Requires a bearer token.

Public GET endpoints need no auth. POST /api/llm/generate uses Authorization: Bearer <token> — request access at [email protected]. OAuth scopes read:profile and chat are declared in /.well-known/oauth-protected-resource. Responses carry RateLimit-* headers; exceeding the limit returns 429 with Retry-After.

MCP

CV, blog posts, GitHub activity, and contact tools over Streamable HTTP at https://mcp.duyet.net/mcp:

claude mcp add --transport http duyet https://mcp.duyet.net/mcp

Machine-readable files

CLI

One binary for posts, notes, KB, and the agent. macOS and Linux use a POSIX installer; Windows uses PowerShell. Channel manifests: /cli/stable.json and /cli/beta.json.

curl -fsSL https://duyet.net/install.sh | sh
DUYET_CHANNEL=beta curl -fsSL https://duyet.net/install.sh | sh
DUYET_VERSION=0.1.0-beta.1 curl -fsSL https://duyet.net/install.sh | sh
irm https://duyet.net/install.ps1 | iex
gh attestation verify duyet-x86_64-unknown-linux-musl.tar.xz --repo duyet/monorepo

Quickstart

curl https://api.duyet.net/health
curl https://api.duyet.net/api/ai/percentage/current
curl https://api.duyet.net/api/insights/overview
duyet contact --name Ada --email [email protected] --message "Hi" --yes
duyet chat "hello" --session test