Home Blog Projects Papers Vibe About Other blogs CV

Developers

Portal for Anuran Roy at anuran.dev — read-only API, docs, CLI, and sandbox.

Welcome, humans and agents. anuran.dev by Anuran Roy exposes a small, public, read-only JSON API for posts, projects, and papers. No signup, no API keys, no OAuth. If you can curl, you can use it.

Quickstart (60 seconds)

# 1. List latest blog posts
curl -s https://anuran.dev/api/v1/posts | head -c 500

# 2. List projects
curl -s https://anuran.dev/api/v1/projects | head -c 500

# 3. Read the OpenAPI spec
curl -s https://anuran.dev/openapi.json | head -c 500

# 4. Machine-readable site guide
curl -s https://anuran.dev/llms.txt | head -n 40

API keys and authentication

Authentication: none required. All /api/v1/* endpoints are GET-only and public. Rate limits are standard CDN fair-use only. Do not send Authorization headers, credentials, or secrets — they are ignored. If you need private data, you are in the wrong place; see /contact.

Documentation

Official CLI

Official CLI: anuran-dev on npm. It wraps the read-only API so agents and developers can script without hand-rolling fetch calls.

# Run without installing
npx -y anuran-dev --help
npx -y anuran-dev posts --limit 5
npx -y anuran-dev projects --json

# Or install globally
npm install -g anuran-dev
anuran-dev --help

# Sources
# npm: https://www.npmjs.com/package/anuran-dev
# repo: https://github.com/anuran-roy/portfolio/tree/main/packages/cli

See anuran-dev on npm and the GitHub repo.

Sandbox (no keys)

Sandbox = production, because everything is read-only. Try in your browser or terminal:

Errors are JSON (application/problem+json) with code, message, and hint. Example: GET /api/v1/posts?limit=9999 returns 400 with {"code":"invalid_limit", ...}.

Markdown negotiation

Content pages support Accept: text/markdown per acceptmarkdown.com. Negotiated responses use Content-Type: text/markdown; charset=utf-8 and Vary: Accept. Example:

curl -H "Accept: text/markdown" https://anuran.dev/about
# -> text/markdown body, Vary: Accept