design.md

design.md 是 Google Labs 搞出来的一个项目,官方介绍是:这是一套专门用来向编码智能体(Coding Agents)描述视觉标识的格式规范,通过 DESIGN.md,能让智能体对设计系统拥有一份持续且结构化的认知。说人话就是,把个人或组织常用的色彩、字体、风格等等,通过一个 md 文件定义下来,秀给 ai 看。这样,ai 帮你做网站或设计产品时,就能以你既有的偏好来设计。

由于我自己喜欢折腾网站,以后也会常常让 ai 帮我改 ui,做设计,所以,昨天花了一点时间,让 Codex 帮我完成了这份 design.md。

我做了什么

其实,我主要的工作,都在第一个提示词里完成了。基本上,我提供了这些信息,和要求。

  1. 我给了它项目链接,让它先了解什么是 design.md。
  2. 然后,我介绍了自己的背景,已经做了什么,未来打算做什么。
  3. 我列举了我所有的网站,让它逐一去了解现在我的风格。
  4. 我给了他我常用的主题颜色,让它继承。
  5. 最后,我让它基于我的喜好,生成一份 design.md。

我得到什么

由于提示词已经说得足够详细,gpt5.5 也不傻,所以,第一次回答,它就完成了这个文件。我把文件存到了 Obsidian 里,这样以后无论是用 Claude 还是 Openclaw,都可以让它们参考这份文件。

接下来,我问 Codex 还可以做什么,它建议先拿 aa.ee 来练手,用我的 design.md 来改一版看看。令我吃惊的是,它不是让我自己选一个网站来改,而是直接、具体地选了一个最适合也最容易修改的单页面网站来实验。

在我点头后,它读取 design.md,很快做了一个彻底不一样的 aa.ee,我给了一些意见,调整2,3版之后,它直接帮我上线了新版网站(它已经拿到了我的 Github,Cloudflare 权限)。全程我没有离开过 Codex 对话框。

做完这个小项目,我有一个强烈的感受。由于 Codex 足够强大,没有开动之前,我以为需要花很多时间(大于一个小时),实际上,只用了5分钟就拿到我想要的东西,并且质量很高。我的感受就是,ai 的确强大,以目前的普及程度,ai 并没有泡沫。

让 Codex 控制 Chrome,微调了博客侧边栏

听说今天晚上 OpenAI 要重置 Codex 额度,赶紧修一两个我的 inbox 里躺着的任务。比如,刚刚让它调整了,我的博客 happyxiao.com 侧边栏的两个模块。

一开始没想让它帮我操作,我只是让它访问网页,然后给出调整方案,我的诉求是:

  1. 把右侧下方的“归档”模块,从之前的月度显示,改成可展开的,以年度显示
  2. 把右侧上方,不能修改的 Substack iframe 嵌入表单,变得不那么突兀

Codex 得令之后立即分析,并给我做了一个插件出来。然后让我自己去后台上传。我用 WordPress 这么多年,只知道从市场安装插件,没听说还可以自己上传,实际上,我只通过 SFTP 或宝塔面板,手动添加过插件。由于实在懒得动手,又恰好没试过让 Codex 控制电脑,于是就告诉它,你去 Chrome 给我弄好。

然后,我就第一次体验了,看着一个 ai 控制鼠标和输入设备,在我的电脑上,像人类一样的进行点击和输入操作。很快,它就完成了任务。

经过两次改版,从下图你可以看到修改后的样子,非常符合我的要求,特别是对于 iframe 的美化,做得很克制,有考虑到网站整体朴素的风格。谁说改 ui 方面,Codex 不如 Claude?

SCR-20260516-sngr.png

谈谈我剩下的13只小鸡

SCR-20260515-rjzo.png

今年过年在家,重新捡起了玩小鸡(vps)的爱好,过去4个月里,最多的时候,上面这个哪吒监控面板里,有23只小鸡。经过几轮精简和出售,终于在今天缩减到13只。剩下的不一定都是我最喜欢的,但一定是目前来看足够我用的,让我快速,逐一点评一下。

  • nas,这台是我放在家里的 Intel Nuc 11 代小主机,可能是2年前,我搜索下来,功耗最低的一款 Nuc,入手后一直都装着 btc 全节点,里面有块 2tb 的 nvme 硬盘,这块硬盘最值钱了。这台里面还有个 Openclaw,帮我设置全节点用。
  • light-sjc,目前 ns 比较火的商家 Lightlayer 的美西线路机,11.9刀年付,移动电信直连,解锁很好,测下来,Claude 的 ip 质量,直逼家宽。我高溢价收来,现在溢价已经翻了两倍多。
  • zgo-la,我的主力美西线路机,2c3g50gb,每月2tb 流量,还能建站,年付33刀,已经续费三次,至少还会用两年。目前装有 Open WebUI,和 CLIProxyAPI,哪吒监控也在上面,利用率很高。家里看 Plex 和 Emby 也是用它的流量,一鸡多吃。
  • green-az,和另一台待会要讲的绿云一起收购得来,美西的一台 1.5tb 硬盘的大盘鸡,三年付35刀,可能不再续费。
  • he-us,国人商家,29.9人民币一年的美西优化“建站机”,我是不会真的拿他建站了,刚刚经历了类似商家狐蒂云的跑路事件,亏损399r,以后类似商家再也不会碰。
  • ak-hk,圈内知名人士6b 的 Akile 家的移动快乐机,也是我家里用来上网,看 YouTube,甚至 Plex 的主力机。移动 Lumen 线路,无视晚高峰,v6 异常强大,没人关注的好🐔🐔,并且,年付只要50r。
  • wawo-hk,怎么说呢,我和 wawo 有一段孽缘,本来已经卖掉他家的 pis 三网优化,后来还是经不住诱惑入坑,买了股东款,一次性付款200,目前移动也不能算快乐,三网也不太直,讲究用,反正也不打算退款也不用再出钱了。
  • yxvm-hk,知名商家的赞助款,4c4g20gb,在我一个博客放了嵌入广告,用了两年,由于没出钱,也不太敢拿来建站。网络时好时坏,备用吧。
  • hw-sg,这台很有特色,人称老华为 sg 三网直。2c2g40gb,1200十年,买来几个月放着没动,昨天把我三个博客全部搬进去,轻松运行。国内大厂不用担心故障或跑路,用来放自己的博客再合适不过了,况且还是台三网直连的线路机。
  • ak-tw,这是我的第二台 Akile 家的台湾 Hinet(中华电信)家宽机。第一台溢价卖掉了,这台也是150溢价收的,月付3r,手中唯一一台家宽(之前也卖掉一些),偶尔用来注册某些服务,或者上 ai 用。Hinet 基本都是三网直,但网速不快。
  • green-jp,这台可能是全网唯一的一台奇葩绿云软银。高溢价收来,三年10美金,这台的配置是 AMD EPYC 7763 4c,8g,60gb。既能用来上网,又能用来建站。目前装了 Hermes 和一些其他乱七八糟的东西,性能只用到了1%。
  • osaka,接下来两台,都是我真实身份注册的,升级了的,付费过的甲骨文免费鸡。两台都是满配 arm 4c24gb200gb。这台装了我的主力龙虾,以及各种记不起来的服务。性能过剩,太过剩了。
  • tokyo,和上面那台一样的情况,一样的配置。目前只放了 log.happyxiao.com 这个站用来保号。基本闲置中。值得一提的是,这两台到上海移动,直连,速度还不错。

这些小鸡都被我加入了 Tailscale 网络,彼此之间用内网互联,加上 Openclaw 和 Hermes 当网管,可玩性还是很高的。接下来,可能我还打算买一台大硬盘的 ovh 杜甫,和一台 bero-host 的性能机,就基本不再折腾了,太多了,也用不来。

关于 Obsidian Sync 的几点更新

  • 我是在 Obsidian 刚刚推出 Sync 的时候,就开始订阅,所以享有早鸟价格,48美金一年,已经续费很多年。
  • 今年以来,我的日常笔记,从 Obsidian 切换到了更直觉的 WorkFlowy,但还是保留了 Sync 的订阅,一方面是舍不得这个早鸟价格(如果停止订阅就不能重新享有),另一方面,我的写作流程,还是完全依赖 Obsidian。所以,找了一个人分担费用,一年只需要24美金。
  • 重点来了,为了适配各种 ai,Obsidian 推出了无头版 Sync,什么意思呢,当你安装 Headless Sync 之后,可以不打开 Obsidian app,你本地的 Obsidian 文件,也可以保持随时同步。
  • 这意味着,配合 codex,Openclaw,Hermes 等应用,你可以在本机,服务器上,随时读取、编辑、和同步你的 Obsidian,比如说,我在装有 Openclaw 的服务器上开启了无头 Sync,让 Openclaw 每天一次,把所有的记忆和 skills 都同步一次到我的 Obsidian,这样既留有备份,也可以让其他机器上的 ai 读到有用的资料。当然,玩法不限于此,还有很多。
  • 只要我在任何时候,任何场景下提到 Obsidian Sync,永远会有人回复说,为什么不用这个,为什么不用那个,我用 xxx 也可以完美同步,等等等等,我只能说,这些朋友觉得够用就好。
  • Obsidian Sync 去年推出了亚洲服务器,自己测试之后,发现同步速度比之前更快,创建 Vault 的时候,可以选择离你近的服务器。
  • Obsidian 刚刚发布了一篇关于第三方审计 Sync 的文章,在这里。对待数据安全,Obsidian 还是做了许多努力。像对于我这样的用户,把自己的 Vault 直接扔给 ai 访问,形成了鲜明的对比。

Koss PP

IMG_6905.JPG

我正戴着这幅耳机,听 Kendrick Lamar 的 LOVE。

Koss PP 的全称,是 Koss Porta Pro。它是一副经典耳机,有多经典呢?美国 Koss 公司在1984年开始出售,至今已经40多年,热度依旧不减,在它的价位,Koss PP 也许不是素质最高的,但一定是最有个性的,最有辨识度的,听起来最舒服的耳机之一。

我曾在2005年错过了它。那年,在同价位的耳机中,我选择了另一副“素质更高”的森海塞尔的 PX200,这个看似理智的选择,让我错过了 PP 20年。去年我烧了一年耳机,都在玩另一个美国品牌,歌德,今年初消停了几个月,突然想起,还有这么一副我一直想拥有的平价耳机。

在闲鱼搜了一圈,发现大部分400以下的,都是假货(差点花150入了一副假的限量款)。最后,在一个销量和评价都不错的代购小店,花400多,买入一副全新的 Utility 新款。

接下来谈谈佩戴和听感。由于我的头很大,拿到耳机,我直接把头梁放到最松,然后在两个耳桶上的松紧调节按钮,也拨到松的一侧。戴在头上,从第一天到两个多月后的今天,现在,我只能用舒服来形容。很轻,不夹头,而且感觉不到重量。

音质的话,某天 JR 拿着 PP 对比了我桌面上另一副耳机,歌德的 SR225X,听完一首不插电吉他弹唱后,他竟然觉得 PP 的拨弦声更清晰。我知道 PP 的解析度一定不会超过售价是它四倍的 SR225X,不过 JR 的评价,至少说明,这两幅耳机,在新手的眼中,没有太大区别,甚至 PP 更讨喜。

更讨喜,更温暖,其实是绝大部分 PP 用户最直接的感受。只要评价 PP,人们多半会说它低音更突出,更适合听嘻哈、电音、或某些种类摇滚音乐。我的感觉也一样,PP 的听感,是完全不给你压力的那种,不给你太多细节,不拿极致的高音来刺激你,也不想歌德那样,用极致的中频,把人声兑到你脸上。PP 只是给足了低音,让你全身放松,不假思索,听听流行歌。

可这也不代表你不能用它来听古典,我有一半的时间都在听钢琴,弦乐,甚至交响曲,PP 没有让我觉得任何“不够”的感觉。

拥有 PP 两周以后,我预定了一个 Koss 的蓝牙适配器,可以用来搭配我的 Utility 版本,换上就能通过蓝牙听歌,这样,我就可以戴着它边走边听,随时享受让我放松的声音。

低价开 ChatGPT Plus 的办法

首先,如果你用得到,我也鼓励你多用,那么正价订阅 ChatGPT,每月20美金,是完全值得的。

接下来讲讲最近出现的一些低价订阅的办法。

我们都知道,官网正价20美金订阅,是最稳定的办法。但很多人没有可以用来付款的信用卡,那么,迂回一下,通过 App Store 来订阅,也是一种办法。而且,由于各国汇率不同,ChatGPT 的订阅费用也不相同,最低价的地区,目前是土耳其 App Store,每月相当于76.11元人民币,你可以通过这个网站,查到最新的低价区。

至于土区 App Store 如何充值,网上搜搜,很多教程。我的方法,是通过 oyunfor 这个网站,用国内双币信用卡购买充值卡。除了订阅 ChatGPT,土区还有其他一些可以低价订阅的 app,可以自行研究。

再讲讲最近两天出来的,官方优惠活动。

昨天早上醒来,睡眼惺忪的我,刷到一个帖子,说 ChatGPT 英国区有官方优惠,赶紧爬起来操作,最终成功,分享一下经验。优惠是这样的,两个人的 Team 方案,可以低至11英镑每个月(大概103人民币),也就是说,两个人订阅,一共103元每月,每个人50出头。只不过,订阅的方法曲折一点,你可以网上搜搜,或者想办法读到这篇文章

最大的难点,是你需要用英国区的节点,然后通过一个脚本,拿到付款页面的“长链接”,我也不懂什么意思,反正你就问 ai 就行。最终,我用 Wise 银行卡完成付款,大概105元,然后我在 ns 论坛找人拼车,70元一个席位,相当于自己出了35一个月,就能用上“正版” ChatGPT。

截至今天为止,英区,美区,还有泰国区,都有类似的优惠,该兴趣的话,可以自行研究一下。

Mac 上如何快速切换音频输出设备

先说我遇到的痛点:用 Mac 上网时,我喜欢用耳机放大器+耳机听音乐(Spotify)。可当我看 YouTube 视频,或者 Twitter 里的视频时,我喜欢用 Studio Display 显示器的外放音箱来听。

如果用鼠标去点击音频输出设备的话,太慢了,经常切换也觉得繁琐。

解决方案有两个:

  1. 安装一个音频分流工具。如果愿意付费,可以选择 SoundSource。或者,用开源免费的 FineTune
  2. 第二个方案,我也不知道怎么搜出来的,是一个叫做 switchaudio-osx 的命令行工具。结合 Alfred 等启动器,可以通过快捷键快速切换音频输出设备。

具体来讲讲怎么用方案2。

首先,打开 Terminal,安装这个小工具。

brew install switchaudio-osx

然后,用以下命令看看你现有的设备有哪些。

SwitchAudioSource -a        # 列出所有输出设备
SwitchAudioSource -c        # 查看当前设备

接着,试着用这个命令来切换设备。

SwitchAudioSource -s "设备名"  # 切换设备

如果切换成功,记住那些你常用的设备名可以切换命令。打开 Alfred,新建一个 Workflow。
起个名字,然后添加 Run Script,选择 /bin/zsh --no-rcs,把你刚刚成功切换的命令放进去。
最后如下图,再给这些动作分别添加一个快捷键即可。

用 Stylus 隐藏 Workflowy 广告和 ai 按钮

最近用回了 Workflowy,发现网页版多了一些东西,看着碍眼,于是在 ai 的帮助下,使用 Stylus 这个著名的 CSS 美化插件,隐去了不想看到的东西。

主要隐去了这两个东西:

  1. 右上角的用量进度条,和付费升级提醒
  2. 右下角的 ai 按钮

代码如下:

/* ==UserStyle==
@name           workflowy.com
@namespace      github.com/openstyles/stylus
@version        1.0.0
@description    A new userstyle
@author         happy xiao
==/UserStyle== */

/* 隐藏用量文本(精确匹配内容) */
.text-secondary.mt-xs {
  display: none !important;
}

/* 隐藏升级链接(精确匹配文本) */
a[href*="upgrade"], a.text-tertiary {
  display: none !important;
}

/* 隐藏进度条(已有效) */
[class*="h-[6px]"][class*="bg-secondary"] {
  display: none !important;
}
/* 隐藏 WorkFlowy 右下角 AI 按钮 */
.ai-chat-button {
  display: none !important;
}

隐藏后的效果非常清爽了👇,对了,Chrome 现在可以同时打开两个 Workflowy 窗口,你甚至可以在这两个窗口之间拖动你的子弹。
屏幕截图 2026-02-24 144122.png

如何删除所有推文

这个脚本的基础上,让 ChatGPT 改了改,适合中文界面使用,一键就能删除所有推文,方法和代码如下:

  1. 使用 Chrome 浏览器,登陆你的 X 账户
  2. 打开这个链接 https://x.com/USERNAME/with_replies ,用你的用户名替换链接里的 UASERNAME
  3. 在 Chrome 菜单里依次点击:显示-开发者-开发者工具
  4. 在开发者工具上方的栏目里选择“Console”
  5. 复制黏贴以下代码,回撤执行,等待足够长时间即可

const deleteAllTweetsAndReplies = async () => {
  const processed = new Set();
  const selectors = {
    tweet: '[data-testid="tweet"]', // 推文 & 回复
    caret: '[data-testid="caret"]',
    menuItem: '[role="menuitem"]',
    deleteConfirm: '[data-testid="confirmationSheetConfirm"]',
    unretweet: '[data-testid="unretweet"]',
    unretweetConfirm: '[data-testid="unretweetConfirm"]'
  };

  const delay = ms => {
    const jitter = ms * 0.3;
    const actual = ms + (Math.random() * jitter * 2 - jitter);
    return new Promise(resolve => setTimeout(resolve, actual));
  };

  const getButtons = () =>
    Array.from(document.querySelectorAll(${selectors.tweet} ${selectors.caret}))
      .filter(b => !processed.has(b));

  const scrollToEnd = async () => {
    window.scrollTo({ top: document.body.scrollHeight, behavior: 'smooth' });
    await delay(2500); // 等待加载
  };

  const attemptDelete = async button => {
    try {
      processed.add(button);
      button.scrollIntoView({ behavior: 'smooth', block: 'center' });
      await delay(500);
      button.click();
      await delay(500);

      const menuItems = Array.from(document.querySelectorAll(selectors.menuItem));
      const deleteWords = ['Delete', '删除', '删除贴文']; // 中英文匹配
      const deleteOption = menuItems.find(item =>
        deleteWords.some(word => item.textContent.includes(word))
      );

      if (deleteOption) {
        deleteOption.click();
        await delay(500);
        const confirm = document.querySelector(selectors.deleteConfirm);
        if (confirm) {
          confirm.click();
          await delay(3000);
          return true;
        }
      }

      const tweet = button.closest(selectors.tweet);
      const unretweet = tweet?.querySelector(selectors.unretweet);
      if (unretweet) {
        unretweet.click();
        await delay(500);
        const confirm = document.querySelector(selectors.unretweetConfirm);
        if (confirm) {
          confirm.click();
          await delay(3000);
          return true;
        }
      }
    } catch (err) {
      console.error('Error attempting to delete/unretweet:', err);
    }
    return false;
  };

  while (true) {
    let buttons = getButtons();
    if (!buttons.length) {
      await scrollToEnd();
      buttons = getButtons();
      if (!buttons.length) break;
    }

    for (const button of buttons) {
      await attemptDelete(button);
      await delay(800); // 防风控冷却
    }
  }

  console.log('所有推文和回复已处理完毕(删除或取消转推)。');
};

deleteAllTweetsAndReplies().catch(err => console.error('脚本执行失败:', err));

用 Komga + Panels 看漫画

经过一天半的折腾,用这套组合满足了我看漫画的需求。

Komga

Komga 是一个本地部署的漫画服务器,可以用浏览器/APP随时访问、阅读你收藏的漫画。

最开始听说 Komga,是在飞牛 OS 的 app 推荐里,闲的没事,在家里装有飞牛的 nuc11 上,用 docker 装了一个。用下来感觉不错,漫画都存在本地,也能使用自己的域名远程访问,但有一个问题,我不太会设置 nuc11 的 https 访问,于是不能在 Panles(待会讲)里用。

干脆,装在 vps 里,反正有一个美国的1.5tb 的大盘鸡闲置。于是,装宝塔,装 docker,三下五除二搞定,设置 https 也简单,除了访问网站速度比本地的 nuc 差点,真要打开了读起来,速度是一样的。

SB78gUn2sNMouxJ

Panels

能在 iOS 上读漫画的 app 很多,Panels 是比较知名的一个。通过 OPDS 方式,可以添加 Komga 服务器,还能同步阅读记录。(Chatgpt:OPDS 就是让阅读器“远程访问你的图书馆目录”的协议,像远程文件系统一样浏览下载电子书)

刚刚讲过,放在 nuc11 上的 Komga,我不会设置安全访问(https),所以才使用 vps,就是为了在手机和平板上用 Panels。

还没来得及用 Panels 看书,开了7天会员试用,简单了解了一下,功能挺多,最后多半要买个版本买断。

哪里下漫画

在论坛发了个帖子,有人推荐用梓喵 PT 来下漫画。找不到推荐码,也不会用 PT。最后兜兜转转,还是来到了多年一直使用的 Kmoe

Kmoe 是个良心网站,漫画全,还能免费下载(免费用户一个月可以下载3gb,暂时够用),这次如果勾起了我看漫画的瘾,一定付费支持一下,一年200多,咱付得起。

vNV5LPoX3u8tHwB

目前找到一套自己感兴趣的悬疑题材漫画,叫做《寒蝉鸣泣之时》(日语:ひぐらしのなく頃に),兴奋,期待。