<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>CLI工具 | 锤子前端</title><description>Now vibe coding, so learning hammer FE ?</description><link>https://channel.meo-ai.com</link><item><title>《Shadscan：shadcn 应用的确定性 UI 审计工具》</title><link>https://channel.meo-ai.com/posts/689</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/689</guid><pubDate>Mon, 03 Aug 2026 00:52:47 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《Shadscan：shadcn 应用的确定性 UI 审计工具》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF&quot; title=&quot;#前端&quot;&gt;#前端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23shadcn&quot; title=&quot;#shadcn&quot;&gt;#shadcn&lt;/a&gt;/ui &lt;a href=&quot;/search/result?q=%23React&quot; title=&quot;#React&quot;&gt;#React&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23UI%E5%AE%A1%E8%AE%A1&quot; title=&quot;#UI审计&quot;&gt;#UI审计&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23CLI%E5%B7%A5%E5%85%B7&quot; title=&quot;#CLI工具&quot;&gt;#CLI工具&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8F%AF%E8%AE%BF%E9%97%AE%E6%80%A7&quot; title=&quot;#可访问性&quot;&gt;#可访问性&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23CI&quot; title=&quot;#CI&quot;&gt;#CI&lt;/a&gt;/CD &lt;a href=&quot;/search/result?q=%23AI_Agent&quot; title=&quot;#AI_Agent&quot;&gt;#AI_Agent&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;Shadscan 是一款面向 React/shadcn 应用的静态 UI 审计 CLI 工具，通过 59 条确定性规则从 Foundation、Interaction、States、Accessibility、Forms 和 Production Polish 六个维度为应用打分（0-100），无需启动应用或调用 AI 即可在终端和 CI 中完成审计。它支持生成 JSON 报告、AI Agent 修复指令（--prompt）和 GitHub Action 集成，适用于 Next.js、React Router、TanStack Start、Astro 等多种框架，并支持 monorepo 多包扫描。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;1.  零侵入式审计：无需启动应用、修改文件或调用 AI 模型，纯静态分析即可给出可复现的评分结果，适合嵌入 CI 流水线。&lt;br /&gt;2.  六维评分体系：涵盖基础配置、交互体验、状态处理、无障碍访问、表单输入和生产级打磨，共 59 条规则，每条都附带证据和修复建议。&lt;br /&gt;3.  AI Agent 友好：支持 &lt;code&gt;--prompt&lt;/code&gt; 生成可直接粘贴给 Claude Code、Codex CLI 等编码 Agent 的修复计划，也支持 &lt;code&gt;--apply&lt;/code&gt; 直接唤起本地 Agent 执行。&lt;br /&gt;4.  多框架与 Monorepo 支持：自动识别 Next.js App/Pages Router、React Router、TanStack Start、Astro、Vite 等框架，智能区分应用包和库包，避免设计系统被误扣分。&lt;br /&gt;5.  GitHub Action 一键集成：提供复合 Action，可自动写评分到 Job Summary、设置分数门槛拦截 CI，还能持续更新跟踪 Issue 并嵌入 Agent 修复指令。&lt;br /&gt;&lt;br /&gt;URL：&lt;a href=&quot;https://www.shadscan.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://www.shadscan.com&quot;&gt;https://www.shadscan.com&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://shadscan.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Audit accessibility, UI states, navigation, forms, metadata, and production polish with deterministic evidence and agent-ready fixes.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;shadscan&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;shadscan: Audit shadcn apps for UI fundamentals&quot; src=&quot;/static/https://cdn4.telesco.pe/file/s3X0dADj_OhS1wkvvAJmaESI7LkBcJuQ7MeOH91FcBH_EvHzkLkYqoW6TszLu_CC73dCDHRKjOTu_gh-GjModLA6WnjiXzH6PpJJvmarWiRtiyWnSPzknNMBwbxtaB3DHBJ4-PushbJk3JKm-dbHfEfg42O-xK2U3QOfEQRZOUxwxDF66oMMk86lpgLIZwQjd8BP7ygVCIb53B5o1t-CeezevGbhf8pCOg7pfjsgcGOHGsPI9YYimmN3KZWnA4n_hgFNEb-BcbFLiKYWWu1Y5LokicKqZzUUpQWL7ymzKhd7RINZ4FPY2Pysr2n2LJrKNpNqs4m8iNvdx11q7ZsxtA.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;shadscan: Audit shadcn apps for UI fundamentals&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Audit accessibility, UI states, navigation, forms, metadata, and production polish with deterministic evidence and agent-ready fixes.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>《MCP已死，CLI万岁》</title><link>https://channel.meo-ai.com/posts/614</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/614</guid><pubDate>Wed, 29 Apr 2026 06:23:59 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《MCP已死，CLI万岁》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23AI%E5%B7%A5%E5%85%B7&quot; title=&quot;#AI工具&quot;&gt;#AI工具&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7&quot; title=&quot;#开发工具&quot;&gt;#开发工具&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23MCP&quot; title=&quot;#MCP&quot;&gt;#MCP&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23CLI&quot; title=&quot;#CLI&quot;&gt;#CLI&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23LLM%E5%B7%A5%E5%85%B7%E9%93%BE&quot; title=&quot;#LLM工具链&quot;&gt;#LLM工具链&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Anthropic&quot; title=&quot;#Anthropic&quot;&gt;#Anthropic&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23AI%E4%BB%A3%E7%90%86&quot; title=&quot;#AI代理&quot;&gt;#AI代理&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;作者认为Anthropic推出的MCP协议正走向消亡，主张LLM应直接使用CLI工具而非专用协议。CLI具备可组合性、调试友好、认证成熟、无额外进程等优势，而MCP存在初始化不稳定、重复认证、权限粒度粗等实际痛点。最好的工具应同时服务人类与机器，开发者应优先打磨API和CLI。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;- LLM天生就会用命令行：它们在海量man page、Stack Overflow和shell脚本中训练过，给Claude一个CLI和文档，它就能直接上手，根本不需要新协议&lt;br /&gt;- 调试体验天差地别：CLI出问题你可以亲自跑一遍同样的命令，看到和AI完全一致的输入输出；MCP出错却要钻JSON传输日志，排查像考古&lt;br /&gt;- 管道和组合才是生产力：CLI能通过`jq`、`grep`、重定向灵活处理数据；MCP面对大型Terraform计划只能全塞进上下文窗口，或额外写过滤逻辑，费力不讨好&lt;br /&gt;- 认证体系早已成熟：`aws`、`gh`、`kubectl`都有经过实战检验的SSO和凭证管理，AI和人类共用同一套流程，坏了就按老办法修，不用学MCP专属排错&lt;br /&gt;- 没有后台进程更省心：MCP服务器是常驻进程，会挂起、会掉线、需要状态管理；CLI只是磁盘上的二进制文件，随用随走，干净利落&lt;br /&gt;- 日常使用的真实摩擦：MCP初始化经常抽风要重启，多工具反复认证让人崩溃，权限控制只有白名单名字做不到只读或参数级限制；CLI完全没有这些烦恼&lt;br /&gt;- MCP并非毫无价值：只有当某个工具确实没有CLI时，MCP才是合理选择，标准化接口在极少数场景也有意义&lt;br /&gt;- 给工具开发者的建议：如果你公司在砸钱做MCP服务器却没有官方CLI，赶紧停下来——先把API和CLI做好，AI代理自己会搞定剩下的&lt;br /&gt;&lt;br /&gt;文章URL：&lt;a href=&quot;https://ejholmes.github.io/2026/02/28/mcp-is-dead-long-live-the-cli.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://ejholmes.github.io/2026/02/28/mcp-is-dead-long-live-the-cli.html&quot;&gt;https://ejholmes.github.io/2026/02/28/mcp-is-dead-long-live-the-cli.html&lt;/a&gt;</content:encoded></item><item><title>《在本地终端预览OpenGraph卡片》</title><link>https://channel.meo-ai.com/posts/602</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/602</guid><pubDate>Sat, 18 Apr 2026 08:39:56 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《在本地终端预览OpenGraph卡片》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF&quot; title=&quot;#前端&quot;&gt;#前端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23OpenGraph&quot; title=&quot;#OpenGraph&quot;&gt;#OpenGraph&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23CLI%E5%B7%A5%E5%85%B7&quot; title=&quot;#CLI工具&quot;&gt;#CLI工具&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Zig&quot; title=&quot;#Zig&quot;&gt;#Zig&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Kitty%E5%9B%BE%E5%BD%A2%E5%8D%8F%E8%AE%AE&quot; title=&quot;#Kitty图形协议&quot;&gt;#Kitty图形协议&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7&quot; title=&quot;#开发工具&quot;&gt;#开发工具&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;作者为解决OpenGraph调试痛点，开发了CLI工具&lt;code&gt;og-check&lt;/code&gt;，可直接在终端内渲染本地开发环境的OG卡片预览，无需部署到公网或使用隧道服务。工具基于Zig编写，支持Kitty图形协议在终端内显示图片，并提供OpenGraph、Twitter Card、表格和JSON四种输出格式，同时可作为CI检查工具确保OG标签完整性。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;- 传统OG调试流程繁琐：需要部署到公网或使用隧道工具，且Facebook等平台的调试器缓存机制会导致反复迭代困难&lt;br /&gt;- &lt;code&gt;og-check&lt;/code&gt;支持在本地终端直接预览OG卡片，包含图片渲染，将反馈周期从分钟级缩短到秒级&lt;br /&gt;- 终端图片渲染基于Kitty图形协议，兼容Ghostty、iTerm2、WezTerm等主流终端，不支持的终端会自动降级为文本输出&lt;br /&gt;- 工具内部使用Zig的&lt;code&gt;std.http.Client&lt;/code&gt;抓取页面，解析meta标签并按命名空间分类（og:、twitter:等），通过zigdown渲染Markdown到终端&lt;br /&gt;- 提供四种输出模式：OpenGraph预览（默认）、Twitter Card预览、表格视图、JSON格式，后者支持管道操作（如配合jq使用）&lt;br /&gt;- 具备校验功能：当缺少必需的OG字段（title、type、image、url）时会输出错误并返回非零退出码，适合集成到CI流程作为布局模板检查&lt;br /&gt;- 安装方式灵活：支持预编译二进制、源码编译（Zig 0.15+）和mise工具管理&lt;br /&gt;&lt;br /&gt;文章URL：&lt;a href=&quot;https://simonhartcher.com/posts/2026-04-15-testing-opengraph-on-localhost-from-the-cli/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://simonhartcher.com/posts/2026-04-15-testing-opengraph-on-localhost-from-the-cli/&quot;&gt;https://simonhartcher.com/posts/2026-04-15-testing-opengraph-on-localhost-from-the-cli/&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://simonhartcher.com/posts/2026-04-15-testing-opengraph-on-localhost-from-the-cli&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;og-check fetches a URL and renders its OpenGraph and Twitter Card metadata directly in your terminal, images and all. Point it at localhost and skip the tunnel.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Simon Hartcher&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;Testing OpenGraph on localhost from the CLI before you go public | Simon Hartcher&quot; src=&quot;/static/https://cdn4.telesco.pe/file/Ai-97E7GvAgxwag_beQJlkJCsxZj6bIjoR3S3AgoPLvfcnzZMyR-XVXuo6wRE-PVhwmckjCqWVXVc5DGN-m2_gl9GwO7irjjVQupvdk9MjfoB1Vw2XL4tWwv4lo8vi0PdEgso14pNC4wav98YQaLTwxR5GD9R4HPexShcqjx2e7AzLIXqVzZ0hCbfQavrXOeg127ysD_k-RePyLFKSlHwqZjO7fk2gokkxTxBBunk-C3BAwCSYBuNjkGJnnMeyketNlb46_Ur_-dnJdGRJigGVPj7YMj3BeumDhIbTPdQjYxh91OlZ0q4_9my9JWCj3TOJR-dLDx6EhJ2KIy2jmjwA.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;Testing OpenGraph on localhost from the CLI before you go public | Simon Hartcher&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;og-check fetches a URL and renders its OpenGraph and Twitter Card metadata directly in your terminal, images and all. Point it at localhost and skip the tunnel.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item></channel></rss>