Skip to main content
· 10 min read

Pi 不是「一个 CLI 加一个 RPC」——它是一个能在 CLI、Node.js 嵌入、子进程 RPC、JSONL 流四种场景下等价使用的 agent runtime。createAgentSession() 是统一入口。

  1. 统一入口:createAgentSession() 同时支撑 CLI、SDK、RPC、JSON 四种姿势
  2. AgentSession 三类方法:Prompt 排队、事件订阅、模型 / 状态控制
  3. 四种运行模式:Interactive(TUI)/ Print(单次)/ RPC(stdin JSONL)/ JSON(事件流)
  4. SDK vs RPC 选型:Node.js 嵌入 → SDK;Python / Go / Rust 集成 → CLI RPC
  5. 最小 CLI 包装:40 行代码就能跑一个完整的 Pi agent
  6. 五大核心启发:Pi 给 AI 产品开发的 5 条原则
· 4 min read

CSS @layer 用声明式层级替代了特异性战争——无需 !important 也能精确控级。

  1. 机制:先声明的层优先级最低,顺序决定一切
  2. 核心:layer 优先于特异性,子选择器也能覆盖上层
  3. 反转:!important 反转层级,重要样式反而走底层
  4. 嵌套:子层用 . 访问,写成 @layer base.forms { }
  5. 场景:框架 reset + 业务定制分层
  6. 兼容:2023 起所有现代浏览器原生支持
· 7 min read

Tailwind v3 的三条 @tailwind 指令对应 三个不同职责,不是同级概念。

  1. @tailwind base:Preflight 重置,抹平浏览器默认
  2. @tailwind components:复合组件类(.btn),中间层
  3. @tailwind utilities:原子类,按需生成,最后输出
  4. 级联顺序:base → components → utilities,后写的赢
  5. v4 变化:三条合并成 @import "tailwindcss",components 删

原则:重置写 base,复合组件写 components,原子类写 utilities。

· 5 min read

Tailwind v4 重新设计 CSS 入口,几条新指令各司其职,不再像 v3 那样靠 @tailwind 堆叠。

  1. @import "tailwindcss":替代 v3 的三条 @tailwind,整合 base + utilities
  2. @theme:设计 token 入口,颜色字号间距都在这定义
  3. @utility:自定义工具类,替代 v3 的 @layer 写法
  4. @variant:自定义变体(hover / focus / ...),替代 v3 的 JS 配置
  5. 级联顺序:v4 只剩 base → utilities 两层

核心:@theme 把设计 token 从 JS 搬到 CSS,样式与变量同源。

· 11 min read

Pi 在「统一多 provider」这件事上做得非常彻底——30+ 个内置 provider、4 种 key 解析语法、扩展可动态注册新 provider。但最值得记住的不是支持的 provider 多,而是它对「安全」这件事的态度:明确告知无沙箱,把隔离责任推给 OS / 容器 / 虚拟机。

  1. 统一层 pi-ai:把 Anthropic / OpenAI / Google 等 API 收敛成统一接口
  2. 两类 provider:订阅型(OAuth via /login)和 API Key 型
  3. 4 种 key 解析:环境变量插值、shell 命令执行、转义符、字面量
  4. model id 不用手动维护:列表随每次 release 更新
  5. 思考等级 6 档:off / minimal / low / medium / high / xhigh
  6. 安全模型:无沙箱,隔离责任在 OS / 容器 / 虚拟机层
· 9 min read

shadcn/ui 官方 Skill,让 AI 写 符合规范 的 shadcn 项目代码。

  1. 它是什么:放在 shadcn-ui/ui 仓库 skills/shadcn/ 下的官方 Skill
  2. 解决的痛点:AI 写 shadcn 项目普遍走偏——用原生 div 替代组件、写自定义样式覆盖组件、手撸 chat UI
  3. 核心机制:限定只跑 shadcn@latest CLI + 6 类强制 Critical Rules
  4. 关键能力:shadcn mcp 给 AI 加 search/view/install 工具
  5. 配套:--preset 主题码一键切换整套主题 + 组件
  6. 结论:做 shadcn 项目 必装,别让 AI 瞎写
· 5 min read

Electron 持久化没有"标准答案",按数据类型选方案,比选库更重要。

  1. 写对目录:一律写 app.getPath('userData'),打包后应用目录是只读的。
  2. 配置 / 偏好:用 electron-store,一个 JSON 文件搞定,不用自己 fs。
  3. 结构化大数据:上 better-sqlite3,同步 API,比 IndexedDB 省心。
  4. 敏感信息:token / 密码走 safeStorage,落盘前用系统钥匙串加密。
  5. 别踩的坑:renderer 里的 localStorage 会被用户清缓存清掉,不能当数据库。
· 5 min read

Node-keytar 是 Node.js 上最成熟的 OS 钥匙串绑定库 —— 但它 已经 archived。

  1. 本质:原生模块,分别封装 macOS Keychain、Windows Credential Vault、Linux libsecret
  2. 核心 API:setPassword / getPassword / deletePassword / findCredentials 四件套
  3. 适用场景:本地 CLI / 桌面工具保存用户 Token,不适合服务端容器
  4. 现状:仓库 2022-12 已 archived,最后版本 7.9.0 停更 4 年
  5. 替代方案:Electron 用 safeStorage,纯 Node 用 @napi-rs/keyring
  6. 跨平台:macOS / Win 零配置;Linux 需 libsecret-1-dev + Keyring 服务在跑
· 6 min read

grep 搜文件内容、rg 是 grep 的现代升级、glob 匹配文件名——三者名字长得像,但 各管一摊。

  1. grep:POSIX 自带文本搜索,-r/-n/-i/-E 是高频选项
  2. rg (ripgrep):Rust 写的现代版,默认跳过 .gitignore 和二进制
  3. glob:shell 通配符(*/?/[...]),没加引号会被 shell 展开
  4. globstar:shopt -s globstar 后,** 才递归匹配任意层级
  5. find -name:find 自己的类 glob 语法,不走 shell 展开
  6. 别乱混:grep *.js 被 shell 拆成多文件,只搜当前目录
· 6 min read

MiniMax-Coding-Plan-MCP 让 Claude Code 一次性获得 web_search + understand_image 两个能力。

  1. 核心定位:专为 Coding Plan 用户设计的 MCP 服务器,2 个工具:网络搜索 + 视觉理解。
  2. 背景:纯文本模型(如 DeepSeek v4)原生不能看图,understand_image MCP 给纯文本客户端补齐视觉能力。
  3. web_search:调搜索引擎返回有机结果 + 关联查询,替代手动查资料。
  4. understand_image:用视觉语言模型分析图片(本地或 URL),支持 JPEG/PNG/WebP。
  5. 接入方式:一行 uvx 起服务,Claude Desktop / Claude Code / Cursor 全家桶通用。
  6. 关键陷阱:API Key 和 Host 必须同区,否则直接报 invalid api key。
  7. 发布:2025-11-20 首发,MIT 协议,stdio / SSE 双传输。
发文趋势
近 12 个月 · 共 177 篇
10111212345678139