惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
Recent Announcements
Recent Announcements
雷峰网
雷峰网
The GitHub Blog
The GitHub Blog
罗磊的独立博客
月光博客
月光博客
J
Java Code Geeks
A
About on SuperTechFans
Microsoft Security Blog
Microsoft Security Blog
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Fortinet All Blogs
U
Unit 42
C
Check Point Blog
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
博客园 - 叶小钗
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
MyScale Blog
MyScale Blog

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - AdirAmsalem/easl: Instant hosting for AI agents ...
Adir · 2026-04-24 · via Hacker News: Show HN

easl

Turn agent output into pages worth sharing.

License: MIT Node

One API call turns a CSV into a sortable table, Markdown into styled prose, JSON into an interactive tree.
No accounts, no config, no deploy pipeline — just content in, shareable page out.


curl -X POST https://api.easl.dev/publish \
  -H "Content-Type: application/json" \
  -d '{"content": "# Hello World\nSome **markdown** here.", "contentType": "text/markdown"}'

# → https://warm-dawn.easl.dev

What happens

easl auto-detects your content and renders it with the right interactive viewer:

  • CSV → sortable table with sticky headers and alternating rows
  • Markdown → styled prose with headings, code blocks, and tables
  • JSON → collapsible tree with syntax highlighting
  • Mermaid → rendered diagram (flowcharts, sequence diagrams, etc.)
  • SVG → sanitized, zoomable viewer
  • HTML → served as-is
  • PDF → embedded viewer
  • Images → responsive centered viewer

8 formats. Zero config. All auto-detected.


Quick Start

CLI

curl -fsSL https://easl.dev/install.sh | sh

easl publish report.md
# => https://calm-river.easl.dev

easl publish data.csv --title "Q4 Results" --open
cat logs.json | easl publish --type json
easl list

MCP Server

Add to your MCP config (Claude Desktop, Cursor, Windsurf, etc.):

{
  "mcpServers": {
    "easl": {
      "command": "npx",
      "args": ["-y", "@easl/mcp"]
    }
  }
}

Then just ask your agent:

"Publish this CSV as a shareable table"

"Turn this markdown into a beautiful page"

Agent Skill

Give your agent built-in knowledge of easl — content types, viewers, best practices:

npx skills add AdirAmsalem/easl

Works with Claude Code, Codex, Cursor, ChatGPT, Gemini CLI, and more.

With curl

curl -X POST https://api.easl.dev/publish \
  -H "Content-Type: application/json" \
  -d '{"content": "Name,Role\nAlice,Engineer\nBob,Designer", "contentType": "text/csv"}'

Supported Formats

Format Extensions Rendered as
CSV .csv Sortable table with sticky headers and alternating rows
Markdown .md Styled prose — headings, code blocks, tables, blockquotes
JSON .json Collapsible tree with syntax highlighting and expand/collapse all
HTML .html Served as-is, no wrapping
SVG .svg Sanitized, zoomable viewer (scripts stripped)
PDF .pdf Embedded iframe viewer
Mermaid .mmd Rendered diagram via Mermaid.js (flowcharts, sequence, etc.)
Images .png .jpg .gif .webp Responsive centered viewer

MCP Server

The MCP server gives AI agents first-class publishing capabilities through the Model Context Protocol.

Available Tools

Tool Description
publish_content Publish raw content (string) → URL to a shareable page. The fastest path.
publish_file Publish a single file from disk with auto-detected rendering.
publish_site Publish a directory as a multi-page site.
list_sites List sites published in the current session.
delete_site Delete a published site by slug.

Environment

Variable Default Description
EASL_API_URL https://api.easl.dev API base URL (override for self-hosted)

REST API

Base URL: https://api.easl.dev

Method Endpoint Description
POST /publish Publish content — single-file shorthand or multi-file array
GET /sites/:slug Get site metadata
DELETE /sites/:slug Delete a site (requires X-Claim-Token header)
POST /feedback Submit feedback programmatically

Full API docs: easl.dev/docs


Architecture

easl runs on Cloudflare's edge network as a single Worker:

  • Hono router handles API requests, landing page, docs, and wildcard subdomain serving
  • R2 stores uploaded files
  • D1 (SQLite) tracks site metadata and version history
  • KV caches rendered HTML shells for fast serving

When a site is requested (e.g. warm-dawn.easl.dev), the Worker detects the file type, generates an HTML shell with the right interactive viewer, and embeds the raw data for client-side hydration.

Monorepo Structure

packages/
  worker/        → Cloudflare Worker (Hono routes, smart rendering, serving)
  cli/           → CLI (npm: @easl/cli)
  mcp-server/    → MCP server (npm: @easl/mcp, stdio transport, 5 tools)

Self-Hosting

Prerequisites: Node.js ≥ 20, a Cloudflare account, and wrangler.

  1. Clone and install

    git clone https://github.com/AdirAmsalem/easl.git
    cd easl
    pnpm install
  2. Create Cloudflare resources

    # Create KV namespace
    wrangler kv namespace create SITES_KV
    
    # Create R2 bucket
    wrangler r2 bucket create easl-content
    
    # Create D1 database
    wrangler d1 create easl-db
  3. Configure — Update packages/worker/wrangler.toml with your resource IDs and domain

  4. Initialize the database

    cd packages/worker
    pnpm db:migrate
  5. Deploy

    pnpm deploy

Development

pnpm install          # Install dependencies
pnpm dev              # Start local dev server (wrangler dev)
pnpm test             # Run tests
pnpm build            # Build all packages

Local dev uses path-based routing instead of subdomains:

  • API endpoints: http://localhost:8787/publish, /sites
  • View sites: http://localhost:8787/s/:slug
  • Docs: http://localhost:8787/docs

Contributing

Contributions are welcome! Whether it's bug fixes, new viewer types, or documentation improvements.

  1. Fork the repo
  2. Create your branch (git checkout -b my-feature)
  3. Make your changes
  4. Run tests (pnpm test)
  5. Open a PR

Looking for a place to start? Check out the good first issues.


License

MIT