飞牛 NAS 部署 CowAgent 并开放局域网访问
环境:飞牛 NAS(主机名 fnnas,普通用户 FNNAS,Python 3.11)CowAgent 源码位于 /root/CowAgent/,Web 控制台端口 9899所有命令在 NAS 上以 root 运行(sudo -i)
CowAgent 即 chatgpt-on-wechat(命令名 cow,包名 cowagent),是一个可以把 AI 接入微信/飞书的聊天机器人框架,支持多模型后端(智谱 GLM、OpenAI 等)、技能扩展、Web 控制台等功能。飞牛 NAS 没有自带浏览器,Web 控制台默认只监听 127.0.0.1,本机访问不了,所以需要把监听地址改成 0.0.0.0,让局域网内的电脑/手机能通过浏览器访问。
本文从零开始记录完整部署流程:获取源码、安装依赖、初始配置、用 systemd 托管服务、开放局域网访问,最后附常见坑和速查命令。
为什么选源码部署项目提供了一个 docker-compose.yml,但引用的预构建镜像只有 amd64 版本。飞牛 NAS 如果是 ARM 架构( ...
飞牛 NAS 部署 Headroom 压缩代理:给 CowAgent 省 Token 的完整指南
环境:飞牛 NAS(主机名 fnnas,aarch64,Python 3.11.2,无 uv)CowAgent 源码位于 /root/CowAgent/,当前 bot_type: zhipu,模型 glm-5-turbo,智谱 key 已配置所有命令在 NAS 上以 root 运行(sudo -i)
链路1CowAgent (zhipu/OpenAI 格式) → headroom (:8787/v1, 压缩上下文) → https://open.bigmodel.cn/api/paas/v4 → GLM
Headroom 是一个透明代理,CowAgent 发的智谱 key 会原样透传到上游,不用装 cc-switch。CowAgent 的 bot_type、model、zhipu_ai_api_key 都不动,只改 zhipu_ai_api_base 指向 headroom。
如果你还没部署 CowAgent,先看 飞牛 NAS 部署 CowAgent 并开放局域网访问,本文假设 C ...
把 Claude Code 的 API 调用链路改成 Claude Code → Headroom → cc-switch → GLM,用国产模型替代 Claude 的同时,靠 Headroom 压缩上下文进一步降低 token 消耗。本文记录完整的搭建过程。
为什么要这么折腾Claude Code 用起来很爽,但 Claude 的 API 价格摆在那里——尤其是长上下文对话,token 消耗很快。国内智谱 GLM 提供了 Anthropic 兼容接口,可以完全替代 Claude 的模型层,价格低很多。当然claude也可以用,同理。
但光替换模型还不够。Claude Code 默认会把完整对话历史每次都发上去,如果能在中间加一层压缩代理,剪掉冗余的上下文,token 消耗还能再省一笔。
所以最终链路设计成这样:
123Claude Code → Headroom (:8787,压缩上下文) → cc-switch (:15721,注入 GLM key) → https://open.bigmodel.cn/api/anthropic ...
Synergy 是一款纯软件的 KVM 方案:不用切换器、不用额外硬件,装好软件就能用一套键盘鼠标控制多台电脑。Windows、macOS、Linux、树莓派都能连在一起。
为什么需要 Synergy桌面上摆两台电脑的情况其实挺常见的——一台 MacBook 办公,一台 Windows 台式机打游戏或跑实验;或者 Linux 服务器 + 日常用的笔记本。每台机器各接一套键鼠,桌面很快就不够用了。
硬件 KVM 切换器可以解决,但有两个问题:
贵——支持高分辨率 + 多显示器的 KVM 价格不便宜
不灵活——同一时刻只能操作一台机器,没法把鼠标从 A 屏滑到 B 屏
Synergy 的做法更符合直觉:光标移动到屏幕边缘,自动跳到另一台电脑的屏幕上。跟用多显示器一样,只是另一块屏幕是物理上独立的计算机。
功能介绍跨平台操控Synergy 支持 Windows / macOS / Linux / 树莓派,不限操作系统组合。光标移向屏幕边缘自动切换,拖拽丝滑。
剪贴板共享跨设备复制粘贴文本,从 Mac 上复制一段代码,直接 Ctrl+V 粘贴到 Win ...
Mineradio 是一款基于 Electron 的沉浸式音乐播放器,视觉和交互体验都做得很棒,但官方只提供了 Windows 版。前段时间抽空把它适配到了 macOS,并打包成了 .dmg 安装包。这篇文章记录一下踩过的坑和最终方案。
背景Mineradio 用 Electron 构建——也就是说底层是 Chromium + Node.js——按理说天生跨平台。项目里也确实有一段 macOS 的判断逻辑:
12// 第 1288 行if (process.platform !== 'darwin') app.quit();
这行代码的意思是”非 Windows 就退出”,给 macOS 留了个明确的入口开关。抱着试试看的心态关掉这个判断,跑了一下 npm start,窗口真的弹出来了。但全屏按钮点了没反应。
于是开始了适配之旅。
全屏修复:最折腾的一环根因Electron 窗口如果同时设置了 transparent: true 和 frame: false(透明 + 无边框),在 macOS 上调用 setFullScreen(true) 会静默失败。这 ...
一款基于 Entity-Component-System (ECS) 架构的 HTML5 竖屏打飞机游戏——Strike Force。Canvas 原生渲染、纯 JS 实现,直接在浏览器里玩。
试玩按下 ENTER 开始游戏。WASD / 方向键 控制飞机移动,空格 开火。摧毁敌机获得分数,活着就是胜利。
为什么用 ECS游戏逻辑拆成了十几个独立的 System,每个 System 只做一件事:
System
职责
BackgroundSystem
星空滚动背景
InputSystem
键盘输入
PlayerMoveSystem
玩家移动
EnemyAISystem
敌机 AI
WeaponSystem
子弹生成
MoveSystem
位置更新
CollisionSystem
碰撞检测
DamageSystem
伤害处理
SpawnSystem
波次生成
LifespanSystem
生命周期
CleanupSystem
垃圾回收
RenderSystem
Canvas 渲染
HUDSystem
...
Codex CLI 疯狂写盘自救指南最近 OpenAI Codex CLI 被曝出一个相当严重的磁盘写入 bug:SQLite 日志在 TRACE 级别全量落盘,一年能写穿一块消费级 NVMe SSD。本文带你理解问题原理、检查自己是否中招,并提供从升级到触发器的完整自救方案。
这个 bug 到底在干什么Codex CLI 会把运行日志写进一个本地 SQLite 数据库 ~/.codex/logs_2.sqlite。问题出在它在 TRACE 级别全量落盘——每一个 WebSocket 事件、每一条依赖库的噪声日志都往里写,而且不停地 insert + prune,造成严重的写放大。
社区实测(issue #28224):
一台机器连续跑 21 天,向磁盘写了约 37 TB,折算下来一年约 640 TB。
消费级 NVMe SSD 的标称写入寿命(TBW)通常只有 600 TB 左右——理论上不到一年就能把一块盘的寿命写穿。
还带两个连锁故障:logs_2.sqlite 超过约 200MB 时 CLI 会以 SIGTRAP 崩溃(#29237);logs_2.sqlite-wal 能无 ...
前言之前折腾过 KouriChat 把 AI 接入微信,这次换了个方向——在 OECT 上部署 OpenClaw,把它变成一个全能助手,并通过微信直接跟它对话。效果出乎意料地好,遂整理一文分享完整流程。
OpenClaw 不是单纯的聊天机器人,它具备真实操作能力:能搜网页、读写文件、执行命令、设提醒、记偏好,还能扩展技能包。搭配微信使用后,相当于手机里多了一个随时在线的私人助理。
OpenClaw 是什么OpenClaw 是一个可自部署的 AI 助手框架,核心能力可以概括为三层:
层次
能力
信息获取
搜索网页、读取文章/文档内容
文件与命令
读取/编辑/创建文件、列出目录、执行 Shell 命令、交互式终端
智能与扩展
长期记忆、技能扩展、定时任务、消息推送、专项工具(天气/GitHub/浏览器自动化等)
它的定位介于纯聊天 AI 和自动化运维工具之间——既理解自然语言,又能真去执行任务。
OECT 平台介绍OECT 是一个轻量级云部署平台,适合运行个人服务和应用。相比直接买 VPS 从头搭环境,OECT ...
WebP 是 Google 推出的一种现代图片格式,在同等画质下体积比 JPEG 小 25%-35%,比 PNG 小得更多。对于博客网站和前端项目来说,全量切到 WebP 能显著减少页面加载速度。
周末花了点时间写了一个 Python 脚本 convert2webp,解决一个一直懒得动手的需求:批量把图片文件夹里的各种格式拖进去,一键转成 WebP,顺便看看能省多少空间。
为什么要用 WebP在介绍脚本之前,先简单说说为什么值得花时间做这件事:
对比项
PNG
JPEG
WebP
无损压缩
支持
不支持
支持,比 PNG 小 26%
有损压缩
—
基准
比 JPEG 小 25-35%
透明度
支持
不支持
支持
动图
—
—
支持(替代 GIF)
根据 Google 的官方数据,WebP 无损图片比 PNG 体积小 26%,有损图片比同等 SSIM 质量的 JPEG 小 25-35%。对于流量来自移动端的场景,省下来的每一 KB 都在加快首屏速度。
浏览器兼容性方面,主流现代浏览器(Chrome、Firefox、Edge、Safari 14+)都已原生 ...
本文于 2026 年 6 月 18 日持续更新中。
为什么换这台机器之前的机器已经不太够用了——编译慢、电池崩、风扇起飞是常态。正好 M4 Air 发布之后口碑一直不错,忍了一段时间终于下单了。
选的是 10 核 CPU + 10 核 GPU 的满血版,16G 内存配 512GB 存储。对我目前的开发和工作场景来说,这个配置应该够用很久了。
下单之后那几天,物流信息一天刷八遍。
开箱包裹到的第一时间拆箱。MacBook Air 的包装还是一贯的简洁风格——白色盒子,正面就是机器的俯视图。
打开之后机器本体在最上面,下面是电源线和充电头。这次选了 天蓝色 的新配色。拿到手第一感觉比官网渲染图更耐看——光线好的时候偏淡蓝,暗处接近银灰,很低调又有点不一样。
外观与手感先说重量。Air 系列一直以轻薄著称,这台也不例外。从盒子里拿出来第一感觉就是轻——比想象中还轻,单手拿着完全没有负担。
机身很薄,最薄的地方大概跟 USB-C 接口差不多厚。天晚上放进包里,第二天背去上班基本感觉不到多了什么东西。
做工方面 Apple 一直在线,机身一体成型,手感温润,没什么好挑剔的。
屏幕Li ...





























