DEV TRENDS / DAILY DISCOVERIES
Apr 9, 2026 · What developers are building
Daily discoveries from developer communities, independent makers, and open source.
happyhorseai.pro
AI Video Generator for Text to Video and Image to Video
Reze Studio:AI 时代,我回到了古法动画K帧 — WebGPU+Nextjs的专业动画曲线编辑器
Github: 在尝试了 AI 动捕和大模型动作生成后,发现古法 K 帧才做得出真正高质量、大家喜欢的动画(观察到动画/漫画圈里对 AI 生成普遍很抵触,尤其是各个subreddit),比如 AI 永远也原创不出超可爱的 IRIS OUT 蕾塞舞。 所以我用 WebGPU + Next.js / shadcn 写了个跨平台、高性能、现代 UI 的专业动画曲线编辑器,来降低大家学动画编辑的门槛:不用再用 08 年那套 Windows 专用的 MMD 软件,也不必先学 Blender、Maya,打开网页甚至在iPad上就能改动画。
OriginalPager.Quest — 基于电报和Email的免费消息推送,支持文字、图片、文档推送,无需另装APP
随着龙虾和各种AI Agent的爆火,让AI Agent能够实现自主消息推送变得越来越重要。为此我开发了一款基于电报(Telegram)的免费消息推送服务,支持文字、图片、文档推送,无需另装APP,API简单友好,非常适合开发者和AI Agent调用。 网站:Pager.Quest 用法:在电报里给 @PagerQuestBot 发消息,获取免费API Key,之后便可以通过API给自己的电报账号推送消息。 举例:curl X POST H "Authorization: Bearer YourAPIKey" d "Hello world!" 免费额度:免费用户每天可以推送10条消息 其他用法:如果有用户愿意分享他的API Key,你就可以用他的API Key给他推送消息,这一场景非常适合团队开发。 此服务的 API文档 简单明了,且对AI Agent友好。
OriginalAgentshire —UGC AI 小镇:自己造一座 3D 游戏小镇,让 OpenClaw Agent 住进来
Agentshire 是一个 OpenClaw 插件,让 AI Agent 变成 3D 游戏小镇里活生生的 NPC居民。不再是仪表盘/聊天对话框,而是一座有昼夜循环、天气变化的小镇——居民在这里生活、聊天、工作。你是镇长,可以造角色、造小镇、赋予每个居民独立的灵魂和人格,给他们派任务,跟他们一起成长。 灵感来自《指环王》的夏尔——AI 的未来不一定要赛博朋克,也可以像一个让人愿意住进去的小镇。 Demo 视频: 核心特色: UGC 工具:居民工坊(创建角色 + AI 生成灵魂)、地图编辑器(拖拽建图) 多 Agent 协作:召唤→分配→办公室→交付,全程 3D 动画编排,可实时查看每个Agent干活细节 班味消除小游戏:NPC 加班冒班味团子,combo 连击消除,有 Boss 战,解决等待AI干活的无聊感 居民独立聊天:点击任何 NPC 即可对话,路由到独立 AI 会话,支持Town和Chat两种模式 游戏渲染&动画:Three.js 全 3D 渲染,电影级工作流编排动画
OriginalContextAtlas — 代码索引+项目记忆工具,为 AI Agent 提供稳定、可复用、可观测的代码上下文基础设施
GitHub: <p dir="auto" style="boxsizing: borderbox; margintop: 0px; marginbottom: 16px; color: rgb(31, 35, 40); fontfamily: "Mona Sans VF", applesystem, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sansserif, "Apple Color Emoji", "Segoe UI Emoji"; fontsize: 16px; fontstyle: normal; fontvariantligatures: normal; fontvariantcaps: normal; fontweight: 400; letterspacing: normal; orphans: 2; textalign: start; textindent: 0px; texttransform: none; widows: 2; wordspacing: 0px; webkittextstrokewidth: 0px; whitespace: normal; backgroundcolor: rgb(255, 255, 255); textdecorationthickness: initial; textdecorationstyle: initial; textdecorationcolor: initial;"ContextAtlas 不是单一的“代码搜索工具”。它解决的是更实际的工程问题:</p<ul dir="auto" style="boxsizing: borderbox; margintop: 0px; marginbottom: 16px; paddingleft: 2em; color: rgb(31, 35, 40); fontfamily: "Mona Sans VF", applesystem, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sansserif, "Apple Color Emoji", "Segoe UI Emoji"; fontsize: 16px; fontstyle: normal; fontvariantligatures: normal; fontvariantcaps: normal; fontweight: 400; letterspacing: normal; orphans: 2; textalign: start; textindent: 0px; texttransform: none; widows: 2; wordspacing: 0px; webkittextstrokewidth: 0px; whitespace: normal; backgroundcolor: rgb(255, 255, 255); textdecorationthickness: initial; textdecorationstyle: initial; textdecorationcolor: initial;"<li style="boxsizing: borderbox;"agent 能不能在大仓库里更快找到正确代码</li<li style="boxsizing: borderbox; margintop: 0.25em;"agent 能不能把项目理解沉淀下来,而不是每次重读整个仓库</li<li style="boxsizing: borderbox; margintop: 0.25em;"检索、索引和记忆系统本身能不能被观测、优化和治理</li</ul<p dir="auto" style="boxsizing: borderbox; margintop: 0px; marginbottom: 16px; color: rgb(31, 35, 40); fontfamily: "Mona Sans VF", applesystem, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sansserif, "Apple Color Emoji", "Segoe UI Emoji"; fontsize: 16px; fontstyle: normal; fontvariantligatures: normal; fontvariantcaps: normal; fontweight: 400; letterspacing: normal; orphans: 2; textalign: start; textindent: 0px; texttransform: none; widows: 2; wordspacing: 0px; webkittextstrokewidth: 0px; whitespace: normal; backgroundcolor: rgb(255, 255, 255); textdecorationthickness: initial; textdecorationstyle: initial; textdecorationcolor: initial;"如果你正在构建 Claude Code、MCP 客户端或自定义 agent workflow,ContextAtlas 提供的是一层<span </span<strong style="boxsizing: borderbox; fontweight: 600;"context infrastructure</strong:检索、记忆、上下文打包和观测。</p<div class="markdownheading" dir="auto" style="boxsizing: borderbox; position: relative; color: rgb(31, 35, 40); fontfamily: "Mona Sans VF", applesystem, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sansserif, "Apple Color Emoji", "Segoe UI Emoji"; fontsize: 16px; fontstyle: normal; fontvariantligatures: normal; fontvariantcaps: normal; fontweight: 400; letterspacing: normal; orphans: 2; textalign: start; textindent: 0px; texttransform: none; widows: 2; wordspacing: 0px; webkittextstrokewidth: 0px; whitespace: normal; backgroundcolor: rgb(255, 255, 255); textdecorationthickness: initial; textdecorationstyle: initial; textdecorationcolor: initial;"<h2 tabindex="1" class="headingelement" dir="auto" style="boxsizing: borderbox; margintop: 24px; marginbottom: 16px; fontsize: 1.5em; fontweight: 600; lineheight: 1.25; borderbottom: 0.909091px solid rgba(209, 217, 224, 0.7); paddingbottom: 0.3em;"为什么需要 ContextAtlas</h2<a id="usercontent为什么需要contextatlas" class="anchor" arialabel="Permalink: 为什么需要 ContextAtlas" href=" style="boxsizing: borderbox; backgroundcolor: rgba(0, 0, 0, 0); color: rgb(9, 105, 218); textdecoration: underline; float: left; paddingright: 4px; margin: auto; lineheight: 1; borderradius: 6px; opacity: 0; justifycontent: center; alignitems: center; width: 28px; height: 28px; display: flex; position: absolute; top: 19.0483px; left: 28px; transform: translateY(calc(50% 0.3rem)); textunderlineoffset: 0.2rem;"<svg class="octicon octiconlink" viewBox="0 0 16 16" version="1.1" width="16" height="16" ariahidden="true"<path d="m7.775 3.275 1.251.25a3.5 3.5 0 1 1 4.95 4.95l2.5 2.5a3.5 3.5 0 0 14.95 0 .751.751 0 0 1 .0181.042.751.751 0 0 1 1.042.018 1.998 1.998 0 0 0 2.83 0l2.52.5a2.002 2.002 0 0 02.832.83l1.25 1.25a.751.751 0 0 11.042.018.751.751 0 0 1.0181.042Zm4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.251.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l1.25 1.25a3.5 3.5 0 1 14.954.95l2.52.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1.018 1.042.751.751 0 0 11.042.018 1.998 1.998 0 0 02.83 0l2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"</path</svg</a</div<p dir="auto" style="boxsizing: borderbox; margintop: 0px; marginbottom: 16px; color: rgb(31, 35, 40); fontfamily: "Mona Sans VF", applesystem, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sansserif, "Apple Color Emoji", "Segoe UI Emoji"; fontsize: 16px; fontstyle: normal; fontvariantligatures: normal; fontvariantcaps: normal; fontweight: 400; letterspacing: normal; orphans: 2; textalign: start; textindent: 0px; texttransform: none; widows: 2; wordspacing: 0px; webkittextstrokewidth: 0px; whitespace: normal; backgroundcolor: rgb(255, 255, 255); textdecorationthickness: initial; textdecorationstyle: initial; textdecorationcolor: initial;"在真实项目里,AI agent 失败往往不是因为“模型不够聪明”,而是因为上下文系统不可靠:</p<ul dir="auto" style="boxsizing: borderbox; margintop: 0px; marginbottom: 16px; paddingleft: 2em; color: rgb(31, 35, 40); fontfamily: "Mona Sans VF", applesystem, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sansserif, "Apple Color Emoji", "Segoe UI Emoji"; fontsize: 16px; fontstyle: normal; fontvariantligatures: normal; fontvariantcaps: normal; fontweight: 400; letterspacing: normal; orphans: 2; textalign: start; textindent: 0px; texttransform: none; widows: 2; wordspacing: 0px; webkittextstrokewidth: 0px; whitespace: normal; backgroundcolor: rgb(255, 255, 255); textdecorationthickness: initial; textdecorationstyle: initial; textdecorationcolor: initial;"<li style="boxsizing: borderbox;"找不到真正相关的代码</li<li style="boxsizing: borderbox; margintop: 0.25em;"找到的是碎片,缺少依赖和上下文</li<li style="boxsizing: borderbox; margintop: 0.25em;"同一个模块反复理解,无法沉淀稳定知识</li<li style="boxsizing: borderbox; margintop: 0.25em;"索引过期、检索退化、预算耗尽却没有观测信号</li</ul<p dir="auto" style="boxsizing: borderbox; margintop: 0px; marginbottom: 16px; color: rgb(31, 35, 40); fontfamily: "Mona Sans VF", applesystem, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sansserif, "Apple Color Emoji", "Segoe UI Emoji"; fontsize: 16px; fontstyle: normal; fontvariantligatures: normal; fontvariantcaps: normal; fontweight: 400; letterspacing: normal; orphans: 2; textalign: start; textindent: 0px; texttransform: none; widows: 2; wordspacing: 0px; webkittextstrokewidth: 0px; whitespace: normal; backgroundcolor: rgb(255, 255, 255); textdecorationthickness: initial; textdecorationstyle: initial; textdecorationcolor: initial;"ContextAtlas 把这些问题拆成一套可组合的基础能力:</p<ul dir="auto" style="boxsizing: borderbox; margintop: 0px; marginbottom: 16px; paddingleft: 2em; color: rgb(31, 35, 40); fontfamily: "Mona Sans VF", applesystem, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sansserif, "Apple Color Emoji", "Segoe UI Emoji"; fontsize: 16px; fontstyle: normal; fontvariantligatures: normal; fontvariantcaps: normal; fontweight: 400; letterspacing: normal; orphans: 2; textalign: start; textindent: 0px; texttransform: none; widows: 2; wordspacing: 0px; webkittextstrokewidth: 0px; whitespace: normal; backgroundcolor: rgb(255, 255, 255); textdecorationthickness: initial; textdecorationstyle: initial; textdecorationcolor: initial;"<li style="boxsizing: borderbox;"<strong style="boxsizing: borderbox; fontweight: 600;"找</strong:混合检索找到相关实现</li<li style="boxsizing: borderbox; margintop: 0.25em;"<strong style="boxsizing: borderbox; fontweight: 600;"补</strong:图扩展和 token packing 补足局部上下文</li<li style="boxsizing: borderbox; margintop: 0.25em;"<strong style="boxsizing: borderbox; fontweight: 600;"存</strong:项目记忆、长期记忆、跨项目 Hub 沉淀知识</li<li style="boxsizing: borderbox; margintop: 0.25em;"<strong style="boxsizing: borderbox; fontweight: 600;"看</strong:索引健康、检索 telemetry、usage 和 alert 让系统可观测</li</ul<div class="markdownheading" dir="auto" style="boxsizing: borderbox; position: relative; color: rgb(31, 35, 40); fontfamily: "Mona Sans VF", applesystem, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sansserif, "Apple Color Emoji", "Segoe UI Emoji"; fontsize: 16px; fontstyle: normal; fontvariantligatures: normal; fontvariantcaps: normal; fontweight: 400; letterspacing: normal; orphans: 2; textalign: start; textindent: 0px; texttransform: none; widows: 2; wordspacing: 0px; webkittextstrokewidth: 0px; whitespace: normal; backgroundcolor: rgb(255, 255, 255); textdecorationthickness: initial; textdecorationstyle: initial; textdecorationcolor: initial;"<h2 tabindex="1" class="headingelement" dir="auto" style="boxsizing: borderbox; margintop: 24px; marginbottom: 16px; fontsize: 1.5em; fontweight: 600; lineheight: 1.25; borderbottom: 0.909091px solid rgba(209, 217, 224, 0.7); paddingbottom: 0.3em;"适合什么场景</h2<a id="usercontent适合什么场景" class="anchor" arialabel="Permalink: 适合什么场景" href=" style="boxsizing: borderbox; backgroundcolor: rgba(0, 0, 0, 0); color: rgb(9, 105, 218); textdecoration: underline; float: left; paddingright: 4px; margin: auto; lineheight: 1; borderradius: 6px; opacity: 0; justifycontent: center; alignitems: center; width: 28px; height: 28px; display: flex; position: absolute; top: 19.0483px; left: 28px; transform: translateY(calc(50% 0.3rem)); textunderlineoffset: 0.2rem;"<svg class="octicon octiconlink" viewBox="0 0 16 16" version="1.1" width="16" height="16" ariahidden="true"<path d="m7.775 3.275 1.251.25a3.5 3.5 0 1 1 4.95 4.95l2.5 2.5a3.5 3.5 0 0 14.95 0 .751.751 0 0 1 .0181.042.751.751 0 0 1 1.042.018 1.998 1.998 0 0 0 2.83 0l2.52.5a2.002 2.002 0 0 02.832.83l1.25 1.25a.751.751 0 0 11.042.018.751.751 0 0 1.0181.042Zm4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.251.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l1.25 1.25a3.5 3.5 0 1 14.954.95l2.52.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1.018 1.042.751.751 0 0 11.042.018 1.998 1.998 0 0 02.83 0l2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"</path</svg</a</div<ul dir="auto" style="boxsizing: borderbox; margintop: 0px; marginbottom: 16px; paddingleft: 2em; color: rgb(31, 35, 40); fontfamily: "Mona Sans VF", applesystem, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sansserif, "Apple Color Emoji", "Segoe UI Emoji"; fontsize: 16px; fontstyle: normal; fontvariantligatures: normal; fontvariantcaps: normal; fontweight: 400; letterspacing: normal; orphans: 2; textalign: start; textindent: 0px; texttransform: none; widows: 2; wordspacing: 0px; webkittextstrokewidth: 0px; whitespace: normal; backgroundcolor: rgb(255, 255, 255); textdecorationthickness: initial; textdecorationstyle: initial; textdecorationcolor: initial;"<li style="boxsizing: borderbox;"作为 coding agent 的仓库检索后端</li<li style="boxsizing: borderbox; margintop: 0.25em;"作为 MCP server,为外部客户端提供代码检索和记忆工具</li<li style="boxsizing: borderbox; margintop: 0.25em;"作为本地 CLI / skill backend,嵌入脚本、CI 或 agent workflow</li<li style="boxsizing: borderbox; margintop: 0.25em;"作为跨项目知识中枢,复用模块职责、决策记录和协作经验</li</ul </markdownaccessiblitytable
OriginalPhotoshoot:零提示词的 AI 商品图与摄影大片生成器
针对电商,市场营销的AI 视觉工具:Photoshoot 简介 这是一款专为电商运营、设计师以及有配图需求的独立开发者打造的 AI 商品图生成工具。 目前市面上通用的 AI 绘图工具在实际商业落地时,往往存在两个痛点:一是“提示词门槛高”,像是在抽盲盒;二是“极易改变商品原有细节”,经常把 Logo 或面料材质画变形。针对这些问题,Photoshoot 在底层逻辑上做了针对性设计: 核心亮点 零提示词,提取“参考图模板”: 用户无需编写复杂的 Prompt。只需上传一张喜欢的参考图(如社交平台的高赞场景图),AI 会自动提取该图的光影、构图和氛围,将其转化为专属模板。拖入原商品即可一键生成同款大片。 100% 商品细节无损还原: 这也是工具的核心护城河。无论是极其微小的品牌 Logo、复杂的衣物面料纹理,还是鞋子的缝线边缘,系统都能在融合高级背景的同时,原封不动地保留商品的真实细节。 极简操作: 界面去掉了庞大的“提示词输入框”,全部改为直观的选项卡点选,降低了非技术人员(如运营人员)的使用门槛。
Original单python文件、适用于Linux环境的agent智能体
EVA是个麻雀虽小、五脏俱全的Agent智能体,相当于低配版Claude Code,能帮你写脚本、写测试案例、执行shell、分析数据等。 不想看鸟哥私房菜? 不想记住各种shell命令?不想解决各种Linux配置? 试试EVA Github仓库: 核心特色 本地化:可以接入本地部署的OpenAI接口模型,如vLLM,或者是外网模型 极致轻量化:单文件,仅一个eva.py,有python就能运行 目录级Session:下次同样目录启动会延续之前对话 安全审查:默认只执行读命令,其他命令需要安全确认 移植性:很容易将EVA接入你现有的自动化流程,例如:eva a u '计算100w以内所有素数和并写到/tmp/result.txt'
Originalxpouch vault:本地客户端管理不同渠道的key,支持多openclaw接入进行健康监控
XPouch Vault 安全、优雅的桌面密钥保险箱,管理 AI API Key 并监控 OpenClaw 节点。基于 Tauri 2.x、React 19 和 Rust 构建。 功能特性 保险箱 — API Key 管理 AES256GCM 加密 — API Key 字段级加密存储,密钥永不经过前端明文 9 家 AI 服务商 — OpenAI、Anthropic、Google AI、DeepSeek、MiniMax、Kimi、Qwen、Doubao、GLM + 自定义 品牌图标 — 通过 @lobehub/icons 展示服务商真实 Logo 连通性测试 — Rust 后端异步验证 Key 有效性,结果持久化到数据库 状态徽章 — 卡片显示 有效 / 失效 / 未测试 三种状态 显示与复制 — 一键切换脱敏/明文显示,一键复制到剪贴板 重命名 — 内联编辑弹窗,无需重建即可修改名称 分类管理 — 按环境分类:生产环境、开发测试、个人项目、备用 脱敏展示 — Key 以脱敏形式展示(如 sk...7xYz) 多语言 — 支持中文、英文、日文 龙虾 — OpenClaw 节点监控 WebSocket 实时监控 — 通过 WS 协议连接 OpenClaw(health + status 方法) 节点增删改 — 添加、编辑、删除网关节点,Token 加密存储 仪表盘 — 在线/离线状态、版本、运行时间、渠道、Agent、定时任务、在线设备、会话、技能、任务、心跳 自动刷新 — 30 秒间隔自动刷新所有节点状态 详情面板 — 完整信息:渠道(运行/错误)、Agent(模型/会话)、定时任务、在线设备 通用 本地优先 — 所有数据存储在本地 SQLite(WAL 模式),无云同步、无遥测
OriginalXPouch AI:一个围绕真实任务执行设计的开源多专家 Agent Runtime
XPouch AI 是一个围绕真实任务执行设计的开源多专家 Agent Runtime。系统将规划、审批、执行、恢复和产物沉淀放在同一条可追踪主链中,而不是只提供一层聊天 UI。 当前稳定基线包括: simple / complex 双模式 complex 模式下的 HITL 审批与恢复 Thread / AgentRun / ExecutionPlan 三层运行时语义 artifact 持久化、恢复展示与多任务串行执行 技能模板(Library 面板 + 内置模板 + 一键发起会话) 模板导入导出(支持 override/clone/skip 策略的 JSON 导入导出) 工具治理(可配置策略 + Library 管理面板,viewadmin 只读) SSE 驱动的 ServerDriven UI MCP 动态工具接入 核心能力 LangGraph 多专家主链 Router Direct Reply Router Commander HITL Dispatcher Generic Tools Aggregator simple / complex 自动分流 HITL 审批与恢复 Commander 生成计划后暂停 用户可修改、删除、调整任务 POST /api/chat/resume 围绕 runid 恢复执行 Runbased Runtime Thread 表达会话容器 AgentRun 表达一次真实执行 ExecutionPlan 表达复杂任务计划 支持 run 级 cancel / timeout / heartbeat / current node Artifact 系统 支持代码、Markdown、HTML、文本等 artifact artifact 持久化到数据库 历史复杂会话可恢复展示 artifact MCP 动态工具接入 支持 sse / streamablehttp Generic Worker 运行时绑定 BASETOOLS + MCPTOOLS 支持后台管理 MCP Server 技能模板(Skill Templates) 模板模型与 GET/POST/PUT/DELETE /api/library/templates 管理接口 内置模板:出行路线简报、研究结论报告、写作大纲启动器 Library 页「Skill Templates」面板:浏览、管理、一键以 starter prompt 发起新会话 工具治理(Tool Governance) 统一治理层:risktier、allow/deny/requireapproval,绑定与执行前双重校验 可配置策略:ToolPolicy 持久化,GET/PUT /api/tools/policies,运行时合并数据库覆盖 Library 页「Tool Governance」面板:管理员查看/编辑策略(viewadmin 只读) ServerDriven UI 后端是真相源 前端通过 SSE 事件驱动 store 与 UI 适合继续演进为可审计、可回放的 Agent 产品 Run Timeline(运行时间线) 独立页面查看运行实例的完整事件时间线 支持从对话页面和历史会话卡片跳转 展示 16 种事件类型:run 创建、router 决策、HITL 中断/恢复、任务执行、artifact 生成、运行终态等 API:GET /api/runs/{runid}、GET /api/runs/{runid}/timeline、GET /api/runs/thread/{threadid}/timeline Admin Stats Dashboard(管理统计面板) 运行统计概览:总运行数、成功率、HITL 使用率、平均耗时 7 天趋势图表:按日期聚合的运行数据 运行列表:带分页,显示状态、模式、时间、用户 数据库层聚合:使用 func.count / func.sum / func.avg + groupby API:GET /api/admin/stats、GET /api/admin/stats/trends、GET /api/admin/stats/runs
OriginalRssReader: LLM时代,像侦探一样解读RSS - 把新闻都连起来
完整功能介绍网址: Github: 实际上传统的rss需求在folo、feedbro等工具上完全可以满足使用了, llm时代也引入了AI总结、对话来补全自动化机制的不足。 但是实际使用过程中,我发现尽管有手动记录关注的新闻信息到logseq或obsidian,实际上对于事件的演变还是有点“鱼的记忆”,尤其是一年复一年,对之前发生了什么事、开始结束的报导,都是大脑里零零碎碎的片段,随着时间流逝慢慢地遗忘,直到许久以后彻底消失(如果不记录的话) 因此这个项目的定位就是是发现新闻之间的关系,一目了然的看完事件的来龙去脉,并且把它记录下来; 另外也是把每天热点题材推荐出来(事件、人物、关键词),快速浏览每天最热门的讨论 其他相关功能说明都在介绍网址里了(其实就是rss阅读器基本的功能,这才是基础中的基础)。
Original现代英语和古英语互译的在线翻译工具
一个古英语在线翻译工具,支持将现代英语转换为 Old English。 无需登录即可使用,适合语言研究学习、写作等。 Old English Translator
OriginalGridea Pro :静态博客写作客户端
缘起 因为Gridea在 2022 年 5 月发布 v0.9.3 之后彻底沉寂,故此重写的Gridea Pro 亮点 Go + Wails 替代 Electron(体积:约 35MB vs 100+MB,内存减少 80%) 内置 Git 引擎(纯 Go 实现,gogit)—— 不需要安装系统 Git,不再有同步失败的问题 Vue 3 + Vite + Tailwind CSS 现代前端 3 种模板引擎(EJS、Jinja2、Go Template)供各位主题开发者选择 支持闪念 —— 带标签和热力图的速记功能 支持主流 7 种评论系统 内置(Gitalk、Giscus、Valine、Waline、Twikoo、Disqus、Cusdis) MCP 协议 —— 通过 AI 助手(Claude、Cursor 等)管理你的博客 无缝迁移 —— 从 Gridea 迁移到 Gridea Pro,零风险丝滑迁移。
OriginalHow I Built an AI Tattoo Generator with Next.js, Cloudflare, Google OAuth, and PayPal
How I Built an AI Tattoo Generator with Next.js, Cloudflare, Google OAuth, and PayPal I recently shipped BodyInk.art, an AI tattoo generator that helps users explore tattoo concepts before going to a studio. In this post, I want to share the engineering side: what worked, what broke in production, and what I changed to make the app stable. The Product Goal Tattoo ideation is often slow: users collect references from many places style direction is unclear early on multiple revision rounds happen before a final direction I wanted a workflow where users can type an idea, generate concepts quickly, and download results for discussion with tattoo artists. Stack Choice I used: Next.js App Router for pages and API routes Cloudflare Pages for deployment Google OAuth (NextAuth) for signin PayPal for paypergeneration an AI image backend for tattoo image generation This stack gave me fast iteration and global delivery, but it also exposed some runtime differences I had to handle. The First Real Production Bug After deployment, image generation failed with: Cannot read properties of null (reading 'has') At first it looked like a random null bug, but the root cause was runtime incompatibility. A dependency path assumed Nodelike behavior, while the deployed environment executed in an Edgelike context. What fixed it I replaced the problematic SDKdependent path with a simpler fetchbased implementation and removed Nodeonly assumptions from the generation flow. Result: no more random null access in the hot path easier debugging because request/response behavior became explicit Base64 and Edge Runtime Gotchas Another source of 500 errors was image encoding. The naive conversion strategy caused performance and reliability issues under constrained runtime conditions. I switched to chunked Uint8Array processing instead of relying on heavier Nodeoriented patterns. This reduced pressure on runtime limits and made generation responses stable. If you process image buffers on serverless/edge platforms, don’t assume desktop Node behavior will hold. Adding Google OAuth with NextAuth I integrated Google signin using NextAuth with callback route: /api/auth/callback/google Implementation notes: keep OAuth credentials in environment variables define the correct NEXTAUTHURL per environment verify provider callback settings match your production domain exactly The biggest practical issue is usually config mismatch, not code. Adding PayPal: Sandbox First, Then Live The business rule is simple: $1 per generation. I implemented two endpoints: create order capture payment And I kept envdriven mode switching so I could test safely in Sandbox and then move to Live. Important details: lock amount/currency on the server side never trust clientonly payment state return clear failure messages to avoid silent checkout errors SEO and Analytics After core flows worked, I optimized discoverability: improved pagelevel metadata added sitemap and robots integrated Google Analytics globally For analytics in Next.js App Router, a frameworkaligned integration keeps scripts cleaner and avoids layoutlevel duplication. Lessons Learned 1. Runtime differences matter more than local success. 2. Keep payment logic serverauthoritative. 3. Integrations fail more from misconfiguration than code defects. 4. Production debugging gets easier when dependencies are minimal in critical paths. What I’d Improve Next better prompt guidance for firsttime users stronger style consistency controls smarter retry/fallback strategy for generation failures clearer pricing and credit UX Final Thoughts Shipping AI features is not just model quality. It is mostly engineering reliability: predictable runtime behavior robust payment flow traceable errors fast iteration loop If you’re building a similar AI product on Next.js + Cloudflare, I hope this saves you a few painful nights. If you want, I can share a followup post with concrete route structure, env templates, and a deployment checklist.
Happy Horse 1.0 新闻、提示词、资源集合仓库
仓库地址点击直达👉: 里面包含了大量Happy Horse 1.0相关的新闻、提示词、资源等,会保持每日更新! 欢迎大佬们星标和Fork! 欢迎各位贡献内容! 也可以加入社区一起讨论: 相关网站: Happy Horse 1.0 联系作者: CAL | Magic | Hatena | Pin
Original静隐 - 让指定 Mac 应用在关闭窗口后退出
静隐 是一款轻量、现代的 macOS 工具,可在应用程序关闭最后一个窗口时自动终止该程序。它旨在成为旧版工具(如 SwiftQuit)的稳健、高性能且兼容 macOS Tahoe 的替代品。 因为在 Mac 上有部分应用关闭窗口后,还在后台运行,有些临时性的应用真的没必要常驻,比如“预览”、“文本编辑器”等等。之前用 SwiftQuit 可以解决这个问题,但升级 macOS 26 后就失效了,我就自己做了一个。 自用了一段时间了,迭代了多次,基本可以满足需求。未来还会持续更新。 核心功能 自动终止:当您关闭最后一个窗口时,立即(或延迟)退出应用程序。 适配 macOS Tahoe:使用原生辅助功能 API (AXObserver),以实现与 macOS 16 的最大兼容性。 智能过滤: 包含模式:仅退出您指定列表中的应用程序。 排除模式:退出除您希望保持运行的应用程序之外的所有程序。 可配置延迟:设置应用程序终止前的自定义缓冲时间(05 秒)。 登录时启动:与您的 Mac 无缝同步启动。 自我学习引擎:静隐 会根据您的反馈进行学习。如果应用误退或无法退出,您可以点击反馈,系统将自动识别该应用的窗口特征并自我调整。 iCloud 云端同步:通过您的 iCloud 账号在多台 Mac 之间自动同步设置与已学习的退出规则,全程无感。 截图
OriginalRecordly:一款开源的录屏与编辑工具,适用于演示、产品展示、教程、讲解视频和社交短片(16岁独立开发者)
核心功能 你可以录制整个屏幕或单个窗口,直接进入编辑器,并通过光标特效、缩放、背景、注释、摄像头叠加等功能导出更完整的成片。 自动缩放、光标润色与样式化画面 动态摄像头气泡叠加 为演示设计的时间线编辑 跨平台支持: 1. macOS 12.3+ 2. Windows 10 Build 19041+ 3. Linux 现代发行版
Originalcolor-walk色彩漫游
开源前后端 提供可以使用的网页端(已完成工信部备案和域名证书配置,可安全访问), 宣扬中国传统色彩(非简单的单一颜色) 网页提供手机端浏览器适配(享受和手机app一样的使用体验) 小红书目前的话题趋势(话题超3亿+) 主要功能 1. 支持700多中国风色卡 2. 支持每日随机抽卡 3. 支持色卡和打卡照片的管理(以及ai文案生成,小红书INS风格,利用QWEN3.5 0.8B多模态实现) 4. 支持打卡照片识别颜色(多种方式识别),放宽打卡要 手机端访问的页面截图:
Original:OpenScreen 一个开源的 Screen Studio 替代工具
这是一个最近在 GitHub 上很火的开源项目,定位是 Screen Studio 的免费替代品,用来制作产品演示、教程视频非常方便。 它是一个桌面应用(基于 Electron),支持从录屏到简单剪辑的一整套流程,适合开发者、内容创作者做 或讲解视频。 主要特点: 🎬 录制屏幕或指定窗口 🔍 自动 / 手动缩放(类似 Screen Studio 的平滑 zoom) 🎤 支持麦克风 + 系统音频 ✂️ 内置简单剪辑(裁剪、加速、裁切片段) 📝 支持标注(文字、箭头、图片等) 🎨 可自定义背景(纯色 / 渐变 / 图片) 💨 支持 motion blur,让动画更丝滑 📦 导出多种分辨率和比例(适合做短视频或教程) 项目完全开源(MIT),免费商用、无水印、无订阅 () 相比同类工具: Screen Studio:体验更好但收费较贵 Loom:免费版有水印和限制 OpenScreen:功能够用 + 完全免费 适合场景: 产品演示视频 教程录制 bug 复现说明 异步沟通(给同事录一段讲解) 目前项目还在 beta 阶段,但功能已经比较完整
Originalgenstory ai story generator skills
Connect your own workflow, skill, or agent to Genstory and generate hosted stories with your API key. How it works Create and manage your API keys in the user center.Set your key as GENSTORYAPIKEY in your skill or workflow.Submit story tasks through POST /api/v1/storytasks.Poll GET /api/v1/storytasks/{taskid} until the story is ready.Return the hosted story URL, cover image, title, and locale. Skill details The skill is built for Genstoryhosted story generation. Final output is an online story URL and cover image. The recommended first step for users is applying for a key at Genstory. You can import the raw SKILL.md directly into your skill workflow. SKILL.md name: genstorystorygenerator Use when the user wants to generate a story through Genstory with an API key, submit a Genstory story task, poll task status, and return the final Genstory online story URL plus cover image. Also use when the user needs setup guidance for obtaining a key from and configuring GENSTORYAPIKEY in their skill or workflow. Genstory Story Generator Use this skill when a workflow needs to call Genstory to generate a story and return a hosted story page URL. Before you start Tell the user to create an API key in the Genstory user center at Store that key as GENSTORYAPIKEY. The intended final result is the online story URL and cover image. Required flow 1. Read GENSTORYAPIKEY from the environment or skill config. 2. Submit a task to POST 3. Poll GET until the task becomes success or failed. 4. Return the final structured result with: story.id story.title story.url story.coverurl story.locale Submit request Send Authorization: Bearer ${GENSTORYAPIKEY}. Minimum JSON body: json { "prompt": "Write a warm bedtime story about a brave little fox." } Recommended fields: prompt title charactername scenescount generationtype: default text generationmode: default standard layoutmode pagespec publicvisibility Polling behavior Treat pending and processing as in progress. If status is failed, surface the API error clearly. If status is success, return the hosted story data and encourage the user to open the Genstory URL. Output contract Prefer this final shape: json { "taskid": "taskuuid", "status": "success", "story": { "id": "storyuuid", "title": "Story title", "url": " "coverurl": " "locale": "en" } } References For request and response examples, read references/api.md.
AI 图片转视频工具,无需设计技能
一个 AI 图片转视频的在线工具,上传静态图片即可生成动态视频。免费额度即可体验,操作简单,适合内容创作者、社交媒体运营等场景。 技术栈:Next.js + Tailwind CSS + Supabase + Creem(支付) AI Image to Video
OriginalGeminiWatermarkRemover:一件去除gemini生成图片右下角的水印
我做了一个免费去除 Gemini AI 水印的工具,纯浏览器本地运行 最近用 Gemini 生成了不少图片,但每次导出都带着水印,放进 PPT、发社交媒体或者给客户看都很尴尬。 于是我做了这个工具:Gemini Watermark Remover —— 专门针对 Google Gemini 生成图片的去水印工具,免费使用,无需注册,图片不上传服务器。 ✨ 核心功能亮点: 🔒 完全本地处理 — 图片不离开你的设备,100% 隐私安全 🎯 智能识别 — 自动精准定位 Gemini 水印位置 🖼️ 无损修复 — 基于周围纹理和光线进行图像修复,无模糊、无痕迹 ⚡ 秒级处理 — 通常几秒内完成 🌐 全平台可用 — 电脑、平板、手机浏览器均可,无需安装任何软件 📁 支持 JPEG / PNG / WebP — 单图最大 20MB 💰 定价: 每天免费使用 3 次,无需注册。一次性支付 $6.99 解锁永久无限使用,无订阅、无续费。 欢迎体验 👉 有任何问题或建议欢迎留言交流!
OriginalRikune - 一个面向任意二进制逆向分析的 MCP Server
GitHub Lastemoboy/rikune · GitHub 最近在思考如何把逆向的工具集成到一个MCP中,集中调用,做了一会之后感觉目前的方向似乎会有点重。 这是一个面向 Windows 逆向分析 的 MCP Server。想法是可以把一些常见的逆向分析流程整理成一组可以被 LLM 直接调用的能力,比如 PE 初步分析、Ghidra 辅助检查、DLL / COM profiling、运行时证据接入、Rust / .NET 恢复,以及偏源码级的重建和总结,其实一开始的诞生是想辅助我对一些crackme进行分析,还有一些恶意样本的分析,目前的能力是在接入codex的时候可以自主破解难度lvl4的crackme。 做的时候主要想的有两点 ,首先是分析过程要可观察,不是黑箱跑完只吐一个结果,然后是大样本分析不能一上来就把 MCP 请求卡死,以Weixin.dll的分析为例子。 所以 Rikune 现在做了一个分阶段、非阻塞的分析流水线,把流程拆成 fastprofile、enrichstatic、functionmap、reconstruct、dynamicplan、dynamicexecute、summarize 等阶段,可以先给预览结果,再逐步深入。 目前它除了 MCP 本体之外,也带了一套相对完整的运行时: Docker 侧集成了 Ghidra、Rizin、YARAX、UPX、Wine/winedbg、Frida CLI、Qiling、angr、RetDec 等工具链 提供 HTTP File Server,方便样本上传和产物下载 还做了一个Web Dashboard,可以实时看分析进度、样本状态、工具情况。 这个项目还在持续迭代中。 如果你对下面这些方向感兴趣,欢迎看看、提issue
OriginalChinese Name Generator:一个取中文名字的网站
我开发了一个免费工具,帮助外国人取地道的中文名字:chinanam.online 输入英文名、生日和性别,然后选择风格,它会生成几个地道的中文名字,每个名字包括: 中文名字 拼音发音 生肖 个性化幸运短语 可下载的幸运卡
Original纯本地,可自定义的图片/视频添加水印网站
网站链接 工具背景 最近在打算运营一些自媒体,发现 X 并没有加水印的功能,一大堆小朋友下载图片截个屏就往国内平台发,导致大 V 内容经常被二次分流,对于流量来说十分不利。 去网上找了一圈别人的方案,基本上不是开 Photoshop 就是去那种听都没听过的在线网页打水印,前者太麻烦,后者不敢用。 随即想到做一个加水印的功能,但是 显然: 1. 如果采用传统上传服务器 + opencv 等处理的方式,成本太高,且容易被用户质疑保存时长,不好保证隐私。 2. 市面上 AI 去水印功能已经一大堆,搞个全屏平铺水印、文字水印之类的东西用 PS 三分钟就可以p掉,大不了上马赛克,用途不大。 3. 有些网站可以给你的照片/视频加 Gemini/sora 水印,很好玩且不好去除,但是这些网站功能太散了(因为基本上都基于 ffmpeg.wasm,本身也不好给用户自定义)。 考虑了一大堆痛点,最后我做了一个可以 完全自己定制水印、支持视频、且 完全离线处理 的水印网站。 网站为 PWA 兼容,移动端优先设计,对 Chromium 内核的浏览器支持较佳,一般新手机的默认浏览器都是可以正常用的(Chrome/Edge/Via/夸克等)。 对于不懂代码的用户,整体操作逻辑就是: 1. 上传视频/图片(支持批量,只要设备撑得住就能无限上传)。 2. 选择内置模板。 3. 调整一下参数。 4. 预览。 5. 点击生成。 6. 完成后网站发送通知,选择以 zip 格式下载或者多文件格式下载。 不需要理解任何细节。当然目前阶段应用处于小范围测试,我也没有准备多少可以用的内置模板(未来会继续追加),所以现阶段在模板丰富性上可能确实不如已有竞品,但其 本地生成 和 支持视频 的优点已经可以使得这个在测试中的应用脱颖而出。 可能对于其它竞品来说,可以选择模板,可以调整水印位置、颜色,甚至整个动态水印,就已经属于“自己定制水印”的范畴了,但是显然这样是不够 geek 也无法满足特殊用户需求的。 或许你已经注意到了,有一个“使用自定义模板”按钮。 为此,我还准备了一个页面:创作。 ...是的,你可以编写 Typescript 作为模板,直接在浏览器运行,不需要任何额外处理。为了实现这个功能,我引入了 babel + mediabunny (WebCodecs API) + PIXI.js 作为模板/视频/画面生成引擎,在开始页面看到的所有内置模板也均是走这一套路径来实现的(不过将代码用 textloader 弄在了网站里面)。 对于配置,开发者可以尽情使用 @schema 装饰器这种实验语法而不用担心兼容性,它会自动被转译然后显示为易于使用的配置面板(也就是说,即使水印逻辑很复杂,使用者也不用理解,可以直接使用)。 我提供了一套透明封装的 API,开发者在编写模板时,不需要关心容器、编码、P帧、音轨,甚至不需要关心传过来的是视频还是图片,只需要使用 PIXI.js 将自己想要的水印形式同当前画面一起绘制到 canvas 上,引擎就会自动处理音轨和编码,拼接成视频,最终实现同一套代码可以同时处理图片和视频的效果。 这样一来,无论是 Sora 水印、Gemini 水印、“豆包 AI 生成”还是个人定制的 3D 水印/基于着色器的水印都可以在同一套平台上实现,同时还享受 GPU 加速(ffmpeg.wasm 无法使用 GPU)。 技术选型 UI 使用 Vite + React + MUI + Monaco Editor。 核心引擎使用 babel + Mediabunny (WebCodecs) + PIXI.js + JsZip。支持了多线程(单线程单任务)。 网站托管使用 Vercel Pages,域名是让偶然抢到极品域名的朋友分配的。 未来方向 应用公开以后,陆续收到了来自不少用户的声音,包括一部分用户提到 HEVC 无法正常使用而没有有助于用户理解的提示、模板太少、模板选项不全等。 此外,由于 WebCodecs 是一个非常新的 API,Firefox on Android 并不支持这个新 API,但是网站也没有做不兼容的提示。 未来一段时间,主要还是想集中在 优化 UI/UX 及 添加更多模板 上面。另外还得清理一下 AI 拉出来的一部分内容(如内部毫秒/秒管理被 AI 弄得很混乱,未来打算统一为浮点数毫秒避免精度问题)。 不过目前,我想这个项目的初衷(个人使用)已经达成了。 开源 一经测试完成(并且脱敏),项目就会开源,同时我也会完成类型注释的处理。目前阶段项目代码还“过于原始”而需要一定打磨,因此我想再精修一下然后再上传 GitHub。
OriginalTNREGINET
TNREGINET guide & updates
Soolo
AI brand studio for Shopify merchants
GeniOS
The Context Intelligence for AI Agents
Fader
Minimize windows when you switch apps automatically
Kubeez Cut
Browser video editor with 1-click AI, no installs
Lovable
Top-rated calculator application
Read What Matters
A personalised email digest for tech people
ClearTouch
One platform to run, monitor & scale your contact center
Rubber Duck
Cross-model reviews in GitHub Copilot CLI
SaaSReadyit
Validate your SaaS idea before you build the wrong thing.
Orthia AI
The AI Front-Desk for Orthodontic Clinics
True Form X
AI workout/sport form check - and a detailed baseline scan
Lunagraph
Your design canvas that writes code powered by AI
SavvyWise
Your time-saving, revenue-generating AI assistant
Rudel
Claude Code & Codex session analytics for dev teams
Vscribe — AI Voice Notes & Transcription
Record your thoughts, transcribe & transform them in seconds
PrettyMux
The linux terminal built for Agents and Multiplexing
Akro
Read Greek and Latin with audio, notes, and word taps
EyeDrop - Eye Drop Reminder
Smart reminders for your eye drop schedule
Receipt Taxer
Smart receipt scanning for modern entrepreneurs.
No matching projects
Try another keyword or category.





























DEV TRENDS / COMMUNITY
Discuss this edition
Sign in with GitHub to share a thought, question, or useful follow-up.