DevTrendsDeveloper trends
Accent color

DEV TRENDS / DAILY DISCOVERIES

May 3, 2026 · What developers are building

Daily discoveries from developer communities, independent makers, and open source.

aihaibao-AI海报

小店铺的海报也能高大上!店铺主图、详情长图不用再一张张抠:上传实拍 + 卖点,一键出多套上架图;还想对齐竞品?粘贴链接复刻风格,几分钟批量出同款调性素材

Original
—

一个可以播放微博视频的播放器

微听 偶然发现微博视频有一些有声书资源还挺不错的,但是睡觉的时候听微博视频,微博官方客户端有一个致命的缺点就是不能设置睡眠时间。常常半夜被吵醒,或者手机一直响到没电。 于是,就做了一个可以解析微博视频的播放器,可以设置睡眠时间,还可以断点续播。使用方法很简单,复制微博视频链接,粘贴就能播放了。 同时,也选了一些有声书推荐给大家。

Original
—

一个模拟真实日历的chrome插件

SeeDays 一个模拟真实日历的日历工具,和其他日历应用不同的是,这个日历不会自动翻页更新,需要你每天打开亲手撕掉昨天(已经逝去的日子)。想让你在撕掉日历的时刻感受时间的流逝,而不用去买一个真实的日历(环保)。 作为一个日历它还显示了年度和月度倒计时,如果你想设置一个人生倒计时的话,这个日历也提供了一个人生倒计时功能。 另外,这个日历还可以让你快速记录自己今天要做的事,形成一个待办事项。 最后,值得一提的是这个插件的界面非常简洁。(本来还想做一个撕掉日历,揉成一个纸团扔向屏幕的动画效果,但是AI目前实现的效果不好就去掉了,如果有大佬有兴趣可以一起完善)

Original
DTSkill / plugin
—

AKM:智能体在执行任务前先把用户画像挖出来(含 SSRN 论文与可复现实测)

AKM (Active Knowledge Modeling) 是一套面向 AI 智能体的上游方法:在智能体执行任务之前,先主动挖掘用户的目标、约束、偏好、风险边界、决策风格,整理成结构化用户画像,再沉淀到智能体的上下文承载面(USER.md / SOUL.md / Custom Instructions / Memory)供任意下游智能体反复加载。 中文 README: 为什么做 AKM 现在大多数智能体平台(GPTs、Gems、Claude Project、OpenClaw)都已经提供了上下文承载面——instructions、memory、profile、AGENTS.md。但用户面对一个空白的 instruction 框时,其实并不知道应该写什么。 最后常见的结果是:写一堆性格描述、塞几条偏好、复制一段提示词模板,用了一阵发现智能体还是给"提升核心竞争力""注意基础款""每周练五天加有氧"这种正确但无用的建议。 问题不是"模型不强",也不是"提示词不够长",而是根本没人系统地把用户挖清楚过。 AKM 想补的是这一步:承载面有了,方法论缺位。 AKM 的两步架构 第一步:画像挖掘 一段标准化的挖掘对话,把用户的目标、硬约束、偏好、资产、风险边界、决策风格系统问清楚,产出结构化用户画像(不是建议)。 第二步:画像复用 画像写进 USER.md / SOUL.md / Custom Instructions / 自建智能体的 system prompt。之后任意下游智能体在执行具体任务前都会先加载这份画像。挖一次,多个智能体反复使用,跨会话有效。 这是 AKM 和"会先反问几句的 GPT"的根本差别:后者每次新会话重问,画像不沉淀;前者画像作为基础设施被反复调用。 三个落地分支 DaE(DialogueasElicitation):个人顾问场景,AKM 的第一个完整实现。论文已在 SSRN 发表:《Reducing Alignment Debt in AI Advisory: The DialogueasElicitation Approach》 Fitness:训练与恢复决策,处理伤病、可用时间、器械等真实约束 Fashion:衣橱、场景与采购决策,处理身材、资产、预算等真实约束 每个分支都附 skill 包,可直接装到 Claude / OpenClaw。 可复现实测工具包 仓库内附 AKMBenchmarkToolkit,开源所有代码、提示词、合成画像、评分规则,本地可复现: 在 10 个合成用户画像上对比四组条件(无画像 / 自然语言碎片 / AKM 结构化画像 / AKM 挖掘后画像),AKM 组在约束命中、风险控制、取舍意识等维度稳定高于其他组。这不是临床实验,只说明在结构化输入条件下,智能体对硬约束和风险的处理显著改善。 当前状态 母方法、母论文、三个分支落地、可复现 benchmark 工具包、双语 README 全部就绪 后续会扩到 30 个合成画像规模并加入第二个 judge 模型 欢迎 builder 拿去做对比实验,或基于自己的场景建分支 License: Apache 2.0

Original
DTResearch & learningDTData & operationsDTAgent extension
—

桌面端图片水印工具,支持平铺/居中/角落三种布局,拖拽调位,无损导出。

TraceMark(溯痕)—— 一个简单的桌面端图片水印工具,支持平铺/居中/角落三种布局,拖拽调位,无损导出。 AI生成的图片尤其是聊天记录截图等越来越逼真,所以用AI搞了一个加水印工具,在发布AI图片之前可以自己添加水印。 大一学生刚刚入门计科,用opencode加deepseek v4模型全程体验了一次Vibe Coding,全程 AI 辅助完成。

Original
DTSoftware developmentDTDesktop appDTOpenCode
—

ast-outline v0.4.0 发布:真正的公共 API 提取 + 语义搜索

0.1.0自荐: 一句话: 给 LLM Coding Agent 准备的“代码骨架”提取器 —— 只看类/函数/签名,不看函数体,还能自动解析 pub use、all、export from 等重导出图,给你真实可调用的公共 API。加上内置的语义搜索(BM25 + 代码 embedding),AI 理解代码库时 Token 成本再降一个数量级。 🚀 新版本亮点 1. astoutline surface —— 真·公共 API 面 问题:digest 会列出文件里每一个 pub fn,哪怕它根本不是 crate 根能访问到的内部实现。 解决:surface 从包入口(Cargo.toml 的 [lib]、init.py、package.json 的 exports、顶层 .scala 文件)出发,沿着 pub use / export / all 重导出图行走,最终输出下游用户真正能调用的符号。 bash 输出 flat 列表(默认) astoutline surface . 按模块树状分组 astoutline surface . tree JSON 输出(可被 MCP 工具直接消费) astoutline surface . json 显示每个符号的完整重导出链(从哪个文件的哪一行来的) astoutline surface . includechain 为什么 surface ≠ digest? | digest | surface | ||| | 列出每个文件里的所有非私有声明 | 从包入口开始,只列出通过重导出链可达的符号 | | 适合“这个代码库里有什么” | 适合“这个包的用户能看到什么 API” | | 对 Rust pub use net:: 会展开所有内部函数 | 看到的是 net::Client(如果入口重导出了它) | | 忽略 Python 的 all | 严格遵循 all,并拦截 from X import Y 泄露 | | 把 TypeScript 的 export from 平铺成实体 | 按模块边界聚合,不把内部实现暴露出去 | 各语言支持的“真公开 API”规则 Rust:pub use foo::Bar,pub use foo::,跨 crate 重导出链,super::/self::/crate:: 前缀解析,方法提升到类型下(mycrate::Client::connect),循环断链。 Python:尊重 all(同时拦截 from mod import 的泄露),下划线约定作为 fallback,子包递归 from .sub import 。 TypeScript / JavaScript:export class/function/const/type/interface/enum,export { X, Y as Z } from './foo',export as ns,export default。模块解析 .ts → .tsx → .d.ts → .js,且优先取 .js 对应的 .ts 。 package.json exports:完整条件解析(types typescript import module default node require browser),支持子路径映射和数组回退。 Scala 3:export foo.Bar,export foo.{A, B as C},export foo.,相对路径解析,方法提升到 object/class/trait,过滤 private/private[...]。 Java / C / Go / Kotlin:虽然没有重导出概念,但 surface 会给出包限定名,作用和 digest noprivate 一致。 2. 语义搜索 + 代码关联发现 三个新子命令,把 astoutline 从“结构阅读器”升级为“代码探索工具包”。 astoutline search "<query" 混合 BM25 + 密集向量语义搜索(基于 minishlab/potioncode16M 模型,CPU 微秒级推理): bash 符号查询(高 BM25 权重) astoutline search "HandlerStack" 自然语言描述(两者平衡) astoutline search "how does login work" JSON 输出,供 MCP 工具使用 astoutline search "authentication" json 排名融合策略:RRF(k=60)→ 文件内聚增强 → 定义位置 3 倍提权 → 语义匹配增强 → 测试文件 / .d.ts / init.py 降权。 astoutline findrelated <FILE:<LINE 以给定代码位置为锚点,找出语义相似的其它位置(自动排除自身): bash astoutline findrelated src/auth/oauth.rs:142 输出:“还有以下 6 个地方看起来做着类似的事情……” astoutline index 显式构建/刷新索引。索引懒加载,但你可以手工控制: bash astoutline index rebuild 强制重建 astoutline index stats 查看 chunk 数量、模型名、构建耗时 索引存储:.astoutline/index/(自动加入 .gitignore),包含 meta.json、bincode 序列化的 chunks/BM25/files,以及裸 embeddings.f32 矩阵。增量更新基于 (mtime, size) + xxhash3,未变动的文件不重算。 企业与内网友好:模型下载首试 HuggingFace,失败时自动 fallback 到 hfmirror.com。默认关闭 TLS 校验(可通过 ASTOUTLINETLSSTRICT=1 重新开启),并写入 SHA‑256 清单防篡改 —— 专为银行、大型企业等 MITM 代理环境设计。 3. MCP 工具(Model Context Protocol) 注册了 8 个工具:原有的 outline / digest / show / implements,加上新的 surface / search / findrelated / index。所有 JSON 输出格式与 CLI 完全一致,让 Claude Desktop、Continue 等 MCP 客户端可以直接操作代码库。 4. 跨命令统一的文件过滤(5 层管线) outline / digest / surface / search / show / implements / findrelated / index 全部共用同一套忽略规则: 1. .gitignore + 全局 gitignore + .git/info/exclude 2. 硬编码忽略名单(nodemodules、target、dist、.venv、pycache、.idea、.gradle、.cache……) 3. .astoutlineignore(新增,gitignore 语法,项目级逃逸出口) 4. 扩展名白名单(仅处理能解析的语言,搜索则允许更广:bash、cpp、css、dart、elixir、haskell、lua、php、ruby、swift、yaml、markdown 等 ~25 种) 5. 文件守卫(大小上限、生成代码启发式) 5. TypeScript 适配器增强 现在完美支持 .d.ts 文件:识别 ambientdeclaration 和 functionsignature(无函数体的声明形式)。效果:发布到 npm 的 .d.ts 包可以被 surface / digest 正确解析,不再输出空结果。 📦 安装 bash Homebrew (macOS / Linux) brew install aeroxy/astoutline/astoutline 或通过 cargo cargo install astoutline 🧠 典型使用场景(给 AI 编程助手) 1. 先看公共 API bash astoutline surface . tree → AI 知道这个包“对外长什么样”。 2. 再语义搜索某个概念 bash astoutline search "websocket handshake" json → 直接定位到相关函数位置,不用读整个目录。 3. 最后精确提取方法体 bash astoutline show src/handshake.rs parserequest → 只把必要的那几十行代码喂给 LLM。 整体效果:相比把整个文件直接喂进去,Token 节省 20 倍,而且不会把内部实现误当作公开 API。 🙏 致谢与生态 基于 astgrep(@HerringtonDarkholme)和 treesitter(@maxbrunsfeld) 语义模型:minishlab/potioncode16M 欢迎 Star、提 Issue、贡献新语言适配。让 AI 读代码更聪明,而不是更暴力。

Original
DTData & operationsDTSoftware developmentDTAgent extension
—

chrome-devtools-cli v0.1.2 发布:轻量级Chrome浏览器自动化,无需MCP,Token成本直降

一句话: 给 LLM Coding Agent 准备的Chrome浏览器控制工具 —— 直接通过CDP协议连接现有Chrome,无需MCP中间层,一个命令一次操作,输出轻量结果。加上智能页面锁定和持久化守护进程,Token消耗仅为传统方案的百分之一。 🚀 亮点 1. 真正为 AI Agent 设计的工作流 问题:MCP 式的浏览器工具会把每一次交互的完整协议载荷都塞进上下文,一个截图能吃掉几千 token,且每次都要重新连接。 解决:chromedevtools 直接与 Chrome 的 DevTools 协议对话,一次连接(守护进程保持),一条命令输出一条结果。没有多余的中间层,没有重复的握手开销。 bash 第一次导航,拿到友好锁定名 chromedevtools navigate [target:redsnake] 后续所有操作通过 target 永久锁定该标签页 chromedevtools target redsnake snapshot chromedevtools target redsnake fill "email" "user@example.com" chromedevtools target redsnake click "submit" 为什么比 MCP / Puppeteer 更省 Token? | 方案 | 每次操作 Token 开销 | 连接方式 | 页面锁定 | ||||| | chromedevtoolscli | 仅命令+结果文本(~100 token) | 持久化守护进程 | 确定性 word‑pair | | MCP Server | 完整 CDP JSON‑RPC 封装(~2000+ token) | 每命令建立新 WS | 需维护会话状态 | | Puppeteer/Playwright | 启动独立浏览器 + 协议日志(~5000+ token) | 每脚本新实例 | 依赖代码变量 | 2. 守护进程 —— 零打扰、自动恢复 智能启动:第一次调用自动拉起后台守护进程,通过 Unix Socket 通信,后续命令无感复用。 绕过 macOS 防火墙弹窗:守护进程先绑定 socket,再惰性连接 Chrome —— 用户不会在每次启动时看到“允许传入连接”对话框。 崩溃自愈:若 Chrome 崩溃或 WebSocket 关闭,守护进程自动退出,下次调用重新建立,无需手动干预。 空闲退出:5 分钟无命令自动清理退出,不留僵尸进程。 3. 更稳健的表单交互 原生支持 <select 下拉框:fill 命令可直接按显示文本或 value 选中选项。 原生支持 checkbox / radio:传 "true" / "false" 字符串即可切换状态。 全局弹窗拦截:检测到 JavaScript 的 alert/confirm/prompt 未处理时,命令会立即失败并给出明确错误,避免永久挂起。evaluate 子命令新增 dialogaction accept/dismiss/text 用于自动处理弹窗。 坐标级点击:clickat <x <y 用于 Canvas 或无选择器场景。 4. Agent 辅助提示(节省调试 Token) 当你在 evaluate 中写了低效的 DOM 脚本(如长链 document.querySelector(...).querySelector(...))或触发了 JavaScript 异常,CLI 会动态提示你改用更 token 友好的 snapshot / click / fill 原生命令。 效果:AI 不会在“猜选择器 报错 再猜”的循环里浪费大量上下文。 5. 完整的功能覆盖 | | 命令 | ||| | 导航 | navigate <url、back/forward/reload、newpage、closepage、selectpage、listpages | | 检查 | screenshot [fullpage]、evaluate、snapshot(可访问性树 dump) | | 交互 | click、clickat、fill、typetext [submitkey]、presskey、hover | | 视口 | resize、waitfor <text | 所有命令支持 json 输出,可被 MCP 工具或脚本直接消费。 📦 安装 bash Homebrew (macOS / Linux) brew tap aeroxy/chromedevtoolscli brew install chromedevtools 或者通过 Cargo cargo install chromedevtoolscli 前提:Chrome 需开启远程调试 —— 打开 chrome://inspect/remotedebugging 并启用开关。 🧠 典型使用场景(给 AI 编程助手) 1. 打开页面并锁定 bash chromedevtools navigate 记住输出的 [target:goldenfox] 2. 获取可访问性树(极省 token) bash chromedevtools target goldenfox snapshot → AI 获得页面结构的纯文本描述,比 HTML 或截图 token 少 20 倍。 3. 执行动作 + 提取结果 bash chromedevtools target goldenfox fill "loginfield" "myuser" chromedevtools target goldenfox fill "password" "mypass" chromedevtools target goldenfox click "input[name=commit]" chromedevtools target goldenfox evaluate "document.title" 整体效果:对比把一个 2MB 的 HAR 或 MCP 会话日志给 LLM,这里每次交互仅消耗几十到几百 token,且不会丢失页面定位。 🙏 致谢与生态 灵感来源于 chromedevtoolsmcp(官方 MCP server),但走出了不同的轻量路线。 协议层基于 Rust 异步 WebSocket 和 serdejson。 欢迎 Star、提 Issue、贡献新命令。让 AI 控制浏览器像调用 curl 一样简单便宜。

Original
DTSoftware developmentDTAgent extensionDTCLI
—

觅影 OmniPlay - mac、win双平台海报墙播放器

觅影 OmniPlay 觅影 OmniPlay 是一款原生开发的海报墙播放器,支持mac、win双系统。mac采用swift开发,win采用C + .net + Avalonia UI。底层播放器核心为 MPVKitGPL / libmpv / FFmpeg 相关组件。 ios版正在开发中。 软件截图 功能特色 UI UI简洁且美观,海报墙没有做过多的分类功能,只有搜索、排序功能。 海报墙媒体库 支持海报墙和分集剧照 采用TMDB刮削,增加了更宽松的刮削规则和自定义编辑功能。避免重命名和硬链接。

Original
DTSoftware developmentDTmacOSDTiOS
—

ScanRead.ai - 免费OCR文字提取工具

工具自荐 工具名称: ScanRead.ai URL: ScanRead.ai 是一个免费的OCR文字提取工具,可以从任何图片、PDF、截图或手写文档中提取可编辑的文字。 特点: 100+语言支持 无需注册,免费使用 22种专业OCR工具(图片转文字、PDF转Word、手写识别、收据OCR、数学公式转LaTeX等) 支持批量处理 基于PPOCRv5和PaddleOCRVL模型 定价: 免费版20页/天,Pro版/月

Original
—

PandaProbe

open source agent engineering platform

DTData & operationsDTAgent observability
339

Rosentic

Catch when coding agents break each other before merge

DTData & operationsDTSoftware development
182

Radar

The missing open-source Kubernetes UI

DTSecurity & testingDTAgent extensionDTAgent evaluation & safety
398

DEV TRENDS / COMMUNITY

Discuss this edition

Sign in with GitHub to share a thought, question, or useful follow-up.

Open discussions ↗