试遍所有 Navidrome 客户端,我最终选择了 Narjo

我是一个对音乐播放体验有点执念的人。自从搭建了 [[Navidrome]] 自托管音乐服务器,我就开始了一段漫长的客户端寻觅之旅。在 iOS 上,我几乎把能找到的 [[Navidrome]] 客户端都试了一遍,甚至为了体验更好而付费购买了 [[音流]]。但最终,我还是删掉了它们,把 [[Narjo]] 固定在了屏幕上。 自托管音乐服务器的现状 在流媒体服务大行其道的今天,还在折腾自建音乐库的人,往往有些相似的执念:想要拥有自己的音乐,不依赖平台,不受版权下架的困扰,或者单纯就是喜欢把喜欢的 FLAC 文件存放在自己的硬盘上。[[Navidrome Read more ...


Trellis:让 AI 编码代理真正投入生产的框架

最近我一直在思考一个问题:AI 编码工具越来越多,但为什么每次切换工具或开启新会话,都感觉像是从零开始?我用 [[Claude Code]] 写了一段时间,又想试试 [[Gemini]] CLI,但每次都要重新解释项目背景、编码规范、当前任务进度。这种重复性的”上下文喂养”工作,慢慢变成了一种隐性负担。 直到我发现了 Trellis,才意识到这个问题其实已经有人在认真解决了。 什么是 Trellis Trellis 是由 Mindfold AI 开发的一个开源框架,定位非常明确:让 AI 编码代理真正具备生产就绪能力(production-re Read more ...


tiptop:用图表重新定义命令行系统监控

最近在排查一台服务器的性能问题时,我习惯性地打开了 [[htop]],盯着那一列列滚动的数字,试图从里面读出 CPU 负载的变化趋势。说实话,数字本身没什么问题,但当你需要判断”过去几分钟内 CPU 是否有明显的周期性抖动”时,一屏幕的百分比实在不如一条折线来得直观。就在那个时候,我发现了 tiptop 这个工具,用了之后感觉有点相见恨晚。 从 top 到 tiptop [[top]] 是 Unix/Linux 系统里最经典的进程监控命令,存在了几十年,几乎人人都用过。后来出现的 [[htop]] 在交互体验上做了很大的改进,支持鼠标操作、彩色显 Read more ...

2026-05-13 linux , macos , cli , system-monitor , terminal , python , tui

PostHog:一站式开源产品分析平台

做产品的人都绕不开一个问题:用户到底在用我的产品做什么?他们在哪一步流失,哪个功能最受欢迎,新版本上线后行为有没有变化。回答这些问题需要数据,而收集和分析这些数据,往往需要堆砌一大堆工具——用 [[Mixpanel]] 做事件分析,用 [[FullStory]] 录制会话,用 [[LaunchDarkly]] 管理功能开关,用 [[Optimizely]] 跑 A/B 测试。每个工具都要单独集成 SDK,单独管理账单,数据还分散在各处,关联分析几乎不可能。 我在寻找一个能把这些能力整合起来、又不让数据流向第三方的解决方案时,发现了 [[PostHo Read more ...


Claude Code /goal:让 AI 自主持续工作直到达成目标的新命令

用 [[Claude Code]] 写代码时,一直有一个令人微妙不适的摩擦:每当 Claude 完成一轮工作,控制权就回到了我这里,我需要再次发出指令,告诉它”继续”“再检查一遍”“还有这个文件没改”。对于那种需要跑很多轮才能完成的任务——比如把一个模块从旧 API 迁移到新 API 直到所有测试通过,或者逐文件重构某个目录直到符合统一规范——这个”人类中继”的环节就显得相当机械,本质上我只是在不停地按确认键。 [[Claude Code]] 最新推出的 /goal 命令针对的正是这个场景:你描述一个完成条件,Claude 就跨多个 turn 持续工作 Read more ...


本地快速切换 Claude Code 和 Codex CLI 账号的几种方案

同时维护个人项目和工作项目的时候,最让我头疼的不是代码本身,而是工具的账号管理。[[Claude Code]] 和 [[Codex]] 这类 AI 编程工具,我在公司有一套账号,个人订阅又是另一套。每次在项目之间切换,都要 claude auth logout 再 claude auth login,不仅耗时,还经常忘了当前用的是哪个账号,写了半天才发现额度消耗到错误的账号上去了。 这个问题在社区里也有不少人反映。[[Claude Code]] 的 GitHub issue #261 从 2025 年初提出原生 multi-account 支持,到现在 Read more ...


socat:比 netcat 更强大的网络瑞士军刀

在 Linux 网络工具箱里,大多数人都知道 [[netcat]](nc),遇到要临时监听端口、传文件、测连通性,第一反应就是 nc。但用了一段时间之后我发现,[[socat]] 才是那个被严重低估的工具——它不仅能做 netcat 的一切,还能做很多 netcat 根本做不到的事,比如 SSL 加密通信、Unix socket 代理、串口转 TCP,以及真正灵活的双向数据流转发。 这篇文章我想把自己用 socat 的经验好好梳理一遍,从基础概念到实战场景,争取让你看完之后不再只会用 netcat 了。 socat 是什么 socat 的全称是 Read more ...

2026-05-12 linux , networking , socat , command-line , tools

codex-lb:用负载均衡的思路管理多个 ChatGPT 账号

用 [[Codex]] CLI 做开发的人大概都遇到过这个场景:手头有几个 ChatGPT 账号,分散在不同的订阅计划里,但工具只认一个账号,额度用完了只能手动切换,每次还要重新登录。更头疼的是,当多人共享一个环境,或者想用同一套配置同时跑 Codex CLI 和 OpenCode 时,账号管理很快就变成了一团乱麻。 codex-lb 用一个很优雅的思路解决了这个问题:把多个 ChatGPT 账号池化,暴露出一个统一的 OpenAI 兼容接口,所有下游客户端只需要指向这个本地代理就行了。它在 2026 年 1 月创建,目前已经积累了 1077 个 St Read more ...


cc-switch:在多个 AI 编码工具之间优雅切换

最近这一年,AI 编码工具的竞争进入了白热化阶段。[[Claude Code]]、[[Gemini CLI]]、[[OpenAI Codex]],每家都在拼命迭代,功能差距越来越小,价格战也越打越猛。于是我开始同时订阅好几个服务,针对不同的任务选用不同的工具——写复杂逻辑用 Claude,快速查文档用 Gemini,处理 Python 脚本用 Codex。 但问题随之而来:每次切换,我都要打开 ~/.config/ 下的各种配置文件,手动修改 API Key,重新指定默认命令,还要把 MCP 服务器的配置从一个工具迁移到另一个工具。这套操作做了几十次之 Read more ...


Tangled:基于 AT Protocol 的去中心化代码托管平台

最近一段时间,我对去中心化互联网的兴趣越来越浓。[[Bluesky]] 的崛起让我第一次真正感受到 [[AT Protocol]] 的魅力——不是从概念上,而是实际体会到”带着自己的身份换平台”是什么感觉。然后,我发现了 [[Tangled]]。 Tangled 是一个建立在 AT Protocol 上的代码托管与协作平台,定位是 [[GitHub]] 的去中心化替代。第一次打开 tangled.org,界面整洁得出乎意料,仓库列表、Issue、Pull Request,一切都那么熟悉,但背后的逻辑已经完全不一样了。 Tangled 是什么 T Read more ...


最近文章

  • 试遍所有 Navidrome 客户端,我最终选择了 Narjo 我是一个对音乐播放体验有点执念的人。自从搭建了 [[Navidrome]] 自托管音乐服务器,我就开始了一段漫长的客户端寻觅之旅。在 iOS 上,我几乎把能找到的 [[Navidrome]] 客户端都试了一遍,甚至为了体验更好而付费购买了 [[音流]]。但最终,我还是删掉了它们,把 [[Narjo]] 固定在了屏幕上。
  • Trellis:让 AI 编码代理真正投入生产的框架 最近我一直在思考一个问题:AI 编码工具越来越多,但为什么每次切换工具或开启新会话,都感觉像是从零开始?我用 [[Claude Code]] 写了一段时间,又想试试 [[Gemini]] CLI,但每次都要重新解释项目背景、编码规范、当前任务进度。这种重复性的”上下文喂养”工作,慢慢变成了一种隐性负担。
  • tiptop:用图表重新定义命令行系统监控 最近在排查一台服务器的性能问题时,我习惯性地打开了 [[htop]],盯着那一列列滚动的数字,试图从里面读出 CPU 负载的变化趋势。说实话,数字本身没什么问题,但当你需要判断”过去几分钟内 CPU 是否有明显的周期性抖动”时,一屏幕的百分比实在不如一条折线来得直观。就在那个时候,我发现了 tiptop 这个工具,用了之后感觉有点相见恨晚。
  • PostHog:一站式开源产品分析平台
  • Claude Code /goal:让 AI 自主持续工作直到达成目标的新命令 用 [[Claude Code]] 写代码时,一直有一个令人微妙不适的摩擦:每当 Claude 完成一轮工作,控制权就回到了我这里,我需要再次发出指令,告诉它”继续”“再检查一遍”“还有这个文件没改”。对于那种需要跑很多轮才能完成的任务——比如把一个模块从旧 API 迁移到新 API 直到所有测试通过,或者逐文件重构某个目录直到符合统一规范——这个”人类中继”的环节就显得相当机械,本质上我只是在不停地按确认键。