[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-79169":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":14,"forks30d":14,"starsTrendScore":18,"compositeScore":19,"rankGlobal":9,"rankLanguage":9,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":14,"starSnapshotCount":14,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},79169,"viewllm","yz671\u002Fviewllm","yz671","Single-binary HTML report viewer for LLM-generated artifacts",null,"HTML",308,49,28,0,38,115,196,114,5.1,"MIT License",false,"main",true,[],"2026-06-12 02:03:49","\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fscreenshots\u002FScreenShot_2026-05-12_140137_931.png\" alt=\"viewllm\" width=\"720\">\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">viewllm\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>View and share HTML\u002FMarkdown reports from AI coding agents.\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  Run this in your terminal — no install needed:\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n\n```bash\nnpx viewllm@latest\n```\n\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fdemo.viewllm.dev\">Live demo →\u003C\u002Fa>\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Csub>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyz671\u002Fviewllm\u002Freleases\">Download binary\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fviewllm\">npm\u003C\u002Fa>\u003C\u002Fsub>\n\u003C\u002Fp>\n\n---\n\n> \"HTML is the new markdown. I've stopped writing markdown files for almost everything and switched to using Claude Code to generate HTML for me.\"\n>\n> — [**Thariq Shihipar**](https:\u002F\u002Fx.com\u002Ftrq212\u002Fstatus\u002F2052811606032269638), Engineering Lead, Claude Code at Anthropic · 5M+ views\n\n---\n\n## The problem\n\nClaude Code, Codex, and Cursor generate rich HTML reports — data visualizations, research analyses, interactive charts. But there's no good way to view or share them:\n\n- **VS Code Live Preview** breaks over SSH and WSL\n- **GitHub** won't render HTML — only Markdown\n- **`python -m http.server`** gives you a raw directory listing\n- **Sharing** means downloading files and emailing them around\n\n## What viewllm does\n\nRun it in any project folder. You get:\n\n- **Real-time file watching** — new and modified files appear with unread indicators as your agent produces them\n- **Sharing** — shareable links to specific reports. Add `-tunnel` for a public URL, no port forwarding needed\n- **Per-device unread tracking** — each person who opens the link gets their own read\u002Funread state\n- **Search** — file tree, search bar, hover preview popups on all file items, thumbnails, text snippets\n- **HTML and Markdown** — renders both. Markdown gets GitHub-style formatting\n- **SSH, WSL, remote servers** — works anywhere you have a terminal\n- **Themes** — Light, Dark, Solarized\n\n\u003Cdetails>\n\u003Csummary>Mobile view\u003C\u002Fsummary>\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fscreenshots\u002FImage_20260511115901_15_618.jpg\" alt=\"viewllm mobile\" width=\"280\">\n\u003C\u002Fp>\n\u003C\u002Fdetails>\n\n## Lightweight\n\n| | |\n|---|---|\n| **Binary** | 9MB |\n| **Memory** | ~7MB |\n| **Startup** | ~100ms |\n| **API response** | \u003C5ms |\n| **Dependencies** | 0 |\n\nSingle Go binary. No database, no config files, no background processes. Read-only. Stop it and it's gone.\n\n## Quick start\n\nAsk your AI coding agent:\n\n> *\"Write me an HTML report analyzing the architecture of this codebase. Include diagrams, dependency graphs, and your recommendations.\"*\n\nThen:\n\n```bash\nnpx viewllm@latest\n```\n\n## Install\n\n**npx** (zero install, always latest):\n```bash\nnpx viewllm@latest\n```\n\n**Binary** — grab from [GitHub Releases](https:\u002F\u002Fgithub.com\u002Fyz671\u002Fviewllm\u002Freleases):\n```bash\ncurl -fsSL https:\u002F\u002Fgithub.com\u002Fyz671\u002Fviewllm\u002Freleases\u002Flatest\u002Fdownload\u002Fviewllm-linux-amd64 -o viewllm\nchmod +x viewllm\n.\u002Fviewllm\n```\n\n\u003Cdetails>\n\u003Csummary>Build from source\u003C\u002Fsummary>\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyz671\u002Fviewllm.git && cd viewllm\ngo build -o viewllm . && .\u002Fviewllm\n```\n\n\u003C\u002Fdetails>\n\n## Sharing\n\nviewllm shows a shareable link on startup:\n\n```\nviewllm serving .\u002Freports\n\n  Open: http:\u002F\u002F192.168.1.42:8090\n  To share over the internet, use -tunnel\n```\n\nFor sharing beyond your network — no accounts, no port forwarding:\n\n```bash\nnpx viewllm@latest -tunnel\n```\n\n```\nviewllm serving .\u002Freports — starting tunnel (powered by Cloudflare)...\n\n  Share this link: https:\u002F\u002Frandom-words.trycloudflare.com\n\n  Anyone with this link can view your reports.\n  This link expires when you stop viewllm — a new one is created each time.\n```\n\n## Works with any tool\n\nWorks with **Claude Code**, **Codex**, **Cursor**, **Jupyter**, and anything else that outputs `.html` or `.md` files.\n\n## Usage\n\n```\nviewllm [directory] [-p port] [-exclude dir]... [-exclude-file name]... [-tunnel]\n```\n\nServes the current directory by default. Finds an open port automatically.\n\n| Flag | Default | Description |\n|------|---------|-------------|\n| `-p` | `8090` | Port to serve on |\n| `-exclude` | — | Additional directories to ignore (repeatable) |\n| `-exclude-file` | — | Additional files to ignore by name (repeatable) |\n| `-tunnel` | off | Create a public URL via Cloudflare Tunnel |\n\n\u003Cdetails>\n\u003Csummary>Settings\u003C\u002Fsummary>\n\nClick the gear icon to access per-device settings:\n\n- **Show** — toggle HTML and Markdown files on\u002Foff\n- **Theme** — Light, Dark, Solarized\n- **Text preview** — show\u002Fhide text snippets\n- **Thumbnail preview** — show\u002Fhide live mini-renders\n- **Recent files count** — 0 (off), 3, 5, 10, 15, or 20\n- **Ignored folders & files** — add\u002Fremove custom exclude patterns for both folders and files\n\nAll settings stored in localStorage — each device has its own preferences.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>API\u003C\u002Fsummary>\n\n```\nGET \u002F              → Web UI\nGET \u002Fapi\u002Frecent    → Recently modified files (with previews)\nGET \u002Fapi\u002Ftree      → Full directory tree as nested JSON\nGET \u002Fapi\u002Fexcludes  → Current exclude patterns\nGET \u002Ffiles\u002F{path}  → Serves HTML directly, renders Markdown as styled HTML\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Technical details\u003C\u002Fsummary>\n\nSingle Go binary with the entire frontend embedded via `go:embed`. Scans for `.html` and `.md` files, serves a web UI, polls for changes every 2 seconds. Markdown rendered client-side with [marked.js](https:\u002F\u002Fgithub.com\u002Fmarkedjs\u002Fmarked).\n\n**Stack:** Go stdlib (zero deps) · Vanilla HTML\u002FCSS\u002FJS · `go:embed` · Polling-based file discovery\n\n\u003C\u002Fdetails>\n\n## Contributing\n\nThe codebase is intentionally simple — two files:\n\n```\nmain.go              → Server, API, file scanning (~650 lines)\nfrontend\u002Findex.html  → Entire UI, embedded into the binary (~40KB)\n```\n\n## License\n\nMIT\n","viewllm 是一个用于查看和分享由AI编码代理生成的HTML\u002FMarkdown报告的单二进制工具。它支持实时文件监控、自动生成可共享链接（使用-tunnel参数可获得公网URL）、设备间独立的已读未读状态跟踪以及强大的搜索功能，包括文件树、搜索栏、悬浮预览弹窗等，并且能够渲染HTML和Markdown格式的内容。此外，该工具轻量级设计，无需安装额外依赖，可在任何拥有终端环境的地方运行，如SSH、WSL或远程服务器上。适用于需要便捷地展示与分享AI生成的数据可视化、研究报告等场景。",2,"2026-06-11 03:57:33","CREATED_QUERY"]