2026-02-11 00:00:00

Gemini 已经内置于 Chrome,但 Google 对其开启增加了繁琐的“地理围栏”和灰度测试。以下是我在macOS下的开启的步骤,做个记录。
节点伪装: 将代理切换至 美国节点 (US)。
语言环境: 进入 Chrome 设置,将 界面语言 (Display Language) 切换为 English (United States),并重启浏览器。

身份定位: 确保你的 Google 账号设置或搜索设置中的 Region 也是 US(部分情况非必须,但建议对齐)。

选择住址:

关闭chrome。
open -n -a "Google Chrome" --args --variations-override-country=us
操作完成后,打开 Chrome:
输入 chrome://components
查找 Optimization Guide On Device Model。
如果看到版本号不为 0.0.0.0,说明本地模型已下载成功。

开始使用,可以直接和Gemini对话了。


2026-02-02 00:00:00

在 WireGuard 虚拟网络环境下,我尝试 SSH 连接远程主机时,TCP 连接可以建立,但会话随即卡死。
使用 ssh -v 开启详细调试模式,发现日志停滞在密钥交换(Key Exchange)的最后一步:
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
...
debug1: kex: algorithm: curve25519-sha256
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY <-- 卡死在此处,随后超时
MTU 黑洞 (MTU Black Hole)。
SSH 在密钥交换(KEX)阶段会发送较大的数据包。WireGuard 协议本身会增加头部开销(Overhead)。当 [SSH Payload + TCP/IP Headers + WireGuard Overhead] 的总长度超过物理链路路径上的最小 MTU(通常受限于 PPPoE 拨号或中间路由策略)时,数据包会被静默丢弃。
由于中间链路可能禁用了 ICMP,导致发送端无法收到 “Fragmentation Needed” 通知,从而造成连接“假死”。
WireGuard 官方推荐将 MTU 设置为保守值 1280 以适配绝大多数网络环境。
2026-02-01 00:00:00

最近在macOS上安装应用程序时,是否遇到过“已损坏,无法打开”的提示。经过一番搜索,这是macOS的安全机制在作祟。
macOS包含一套名为“Gatekeeper”的安全系统,它会检查应用程序是否来自已知开发者,并确保软件未被篡改。当您从非App Store来源下载应用时,系统可能会阻止其运行,并显示“已损坏”的警告。
打开“终端”应用程序(可以在“应用程序”>“实用工具”中找到),输入以下命令并按回车:
sudo spctl --master-disable
根据提示输入您的管理员密码。然后打开“系统偏好设置”>“安全性与隐私”>“通用”,您会看到“允许从以下位置下载的应用程序”选项,现在可以选择“任何来源”了:

再次打开“终端”,输入以下命令(注意命令末尾有一个空格):
sudo xattr -dr com.apple.quarantine
不按回车,而是打开“访达”,找到无法打开的应用程序,将其拖拽到终端窗口中。此时终端会自动填充应用程序的完整路径,然后按回车执行命令并输入管理员密码。大概是这个样子
;
sudo xattr -dr com.apple.quarantine /Applications/MyApp.app
完成前两个步骤后,您现在可以正常双击打开应用程序了。
sudo spctl --master-enable
macOS使用com.apple.quarantine属性标记从互联网下载的文件,这个属性会告诉Gatekeeper在首次打开时检查应用程序。移除这个属性或完全禁用Gatekeeper可以绕过这些检查。
这个3步方案适用于大多数从非官方渠道下载的macOS应用程序。
2026-01-20 00:00:00

最近opencode很火,我也在macOS上装了。这篇文章记录一下安装和使用过程。
OpenCode is an open source agent that helps you write code in your terminal, IDE, or desktop.
最简单的方式是使用Homebrew:
brew install anomalyco/tap/opencode
启动OpenCode并配置模型:
cd ~/Workspace # 进入你的工作目录
opencode # 启动OpenCode

在TUI界面中,输入 /connect 配置模型提供商:
首次使用,运行 /init 让OpenCode分析你的项目结构。

掌握这几个核心命令就能开始使用:
/help # 查看所有命令
@文件名 # 引用文件内容
!命令 # 执行shell命令
/undo # 撤销操作
/redo # 重做操作
Tab键 # 切换Plan/Build模式
Esc # 退出、打断当前操作
先拿我的blog项目进行练手:
请分析我这个blog项目的结构和功能,然后告诉我可以用OpenCode做什么改进?






其他类似的上手问答工作都可以试试:
1. 请问你会做些什么
2. 检查macOS版本
3. 显示内存使用情况
4. 列出Homebrew安装的包
5. 检查磁盘空间



OpenCode 云端模型:
在输入框输入 /models 即可切换models


OpenCode 原生支持连接本地 Ollama 实例,无需 API Key。
# 启动服务(后台运行)
ollama serve
# 拉取代码专用模型
ollama pull qwen3-coder-next:q4_K_M
⚠️ 重要提示:截至 2026.2.4 macOS 正式版 Ollama不支持
qwen3-coder-next等最新模型。 请从 GitHub 下载最新的 RC 版本:
- 访问 https://github.com/ollama/ollama/releases
- 下载 macOS RC 版本的 dmg 文件(不是 tar.gz!)
- 打开 dmg 文件,将 Ollama 拖到应用程序文件夹
- 启动 Ollama(Launchbar 或 Spotlight 搜索 “Ollama”)
vi ~/.config/opencode/opencode.json
{
"provider": {
"ollama": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ollama(local)",
"options": {
"baseURL": "http://localhost:11434/v1"
},
"models": {
"qwen3-coder-next:q4_K_M": {
"name": "qwen3-coder-next:q4_K_M"
}
}
}
}
}
vi ~/.config/opencode/oh-my-opencode.json
{
"agents": {
"hephaestus": {
"model": "ollama/qwen3-coder-next:q4_K_M"
},
"oracle": {
"model": "ollama/qwen3-coder-next:q4_K_M"
},
"prometheus": {
"model": "ollama/qwen3-coder-next:q4_K_M"
},
"sisyphus": {
"model": "ollama/qwen3-coder-next:q4_K_M"
}
},
"categories": {
"visual-engineering": {
"model": "opencode/minimax-m2.1-free"
},
"ultrabrain": {
"model": "opencode/minimax-m2.1-free"
},
"quick": {
"model": "opencode/minimax-m2.1-free"
}
}
}
如果需要清除所有 Sisyphus 任务,运行以下命令:
# 查看 Sisyphus 状态
ls ~/.sisyphus/
# 删除 boulder.json(清除任务状态)
rm ~/.sisyphus/boulder.json
# 删除所有计划文件
rm ~/.sisyphus/plans/*.md
# 删除 notepads
rm -rf ~/.sisyphus/notepads/*
长对话会产生:
使用 /handoff 命令可以 创建当前工作上下文的精简摘要,用于下一会话, 这会生成一个包含以下内容的摘要:
opencode - 启动 TUI 界面opencode . - 启动当前目录的 TUI@filename - 引用文件(模糊搜索当前目录)@packages/functions/src/index.ts - 精确引用文件路径!ls -la - 执行 shell 命令,结果加入对话!npm run build - 运行构建命令/help - 显示帮助信息/init - 初始化项目/创建 AGENTS.md/undo - 撤销上一步修改/redo - 重做操作/share - 分享当前会话/models - 切换/查看可用模型/connect - 配置 API keysTab - 切换 Build/Plan 模式opencode -c / opencode --continue - 继续上次会话opencode -s session_id - 继续指定会话opencode run "message" - 非交互式运行opencode serve - 启动 headless HTTP 服务器opencode web - 打开 Web 界面opencode agent [command] - 管理智能体read - 读取文件内容write - 创建/覆盖文件edit - 编辑文件grep - 搜索文件内容glob - 按模式查找文件bash - 执行 shell 命令ast_grep_search - AST 模式搜索ast_grep_replace - AST 模式替换lsp_symbols - 获取符号列表lsp_diagnostics - 获取诊断信息lsp_rename - 重命名符号build - 默认模式(全工具权限)plan - 规划模式(只读,禁止文件操作)@sisyphus - 默认编排器(复杂任务)@hephaestus - 自主深度工作者@atlas - 主编排钩子@prometheus - 规划智能体@metis - 计划分析验证@momus - 工作计划审查@oracle - 战略顾问@librarian - 多仓库研究@explore - 快速上下文搜索ulw / ultrawork - 超work模式(复杂任务自动理解上下文)/refactor - 智能重构/start-work - 从 Prometheus 计划开始执行/cancel-ralph - 取消 Ralph 循环/stop-continuation - 停止所有延续机制/handoff - 创建上下文摘要pre-exec, post-exec, pre-task, post-task
on-error, on-success, on-timeout
background-compaction, context-compaction
opencode mcp add [server] - 添加 MCP 服务器opencode mcp remove [server] - 移除 MCP 服务器opencode mcp list - 列出已安装的 MCP/custom-command - 自定义命令(放在 .opencode/commands/ 目录)opencode attach - 附加到运行中的服务器opencode --fork - 继续时fork会话opencode --model provider/model - 指定模型opencode --agent agent_name - 指定智能体2026-01-19 00:00:00

最近重置了 Mac 系统,需要重新配置 Ruby 和 Jekyll 环境来运行我的静态博客。相比于直接使用系统 Ruby,这次选择了更优雅的 rbenv 进行版本管理。整个过程遇到不少“坑”,特此记录以备忘,希望这篇记录也能帮你绕开这些坑。
rbenv 将 Ruby 环境和所有 Gem 安装在你的用户目录下,实现完全的隔离管理,是当前 Ruby 社区推荐的最佳实践。
# 1. 通过 Homebrew 安装 rbenv 和 ruby-build(用来编译安装 Ruby)
brew install rbenv ruby-build
# 2. 初始化 rbenv,并按照提示把下面这行加到 ~/.zshrc 里
rbenv init
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc
source ~/.zshrc # 让配置生效
# 3. 安装一个稳定的 Ruby 版本(这里选了 3.4.4,因为我系统显示最新的就是3.4.4)
rbenv install --list-all
rbenv install 3.4.4
rbenv global 3.4.4 # 设为默认版本
rbenv rehash # 重要:重建命令链接
# 4. 验证一下,确保 ruby 和 gem 命令指向的是 rbenv 安装的版本
which ruby # 应该显示 ~/.rbenv/shims/ruby
which gem # 应该显示 ~/.rbenv/shims/gem
ruby -v # 应该显示 3.4.4
# 5. 现在可以安全安装 Jekyll 了
gem install jekyll
本以为万事大吉,在博客目录下输入 jekyll s,结果错误连环出现。
直接报错,说项目 Gemfile 里锁定的 Jekyll 版本(4.3.2)和我刚全局安装的版本(4.4.1)对不上。

解决:在项目目录下,让 Bundler 根据 Gemfile 重新安装所有依赖。
bundle install

运行 bundle install 时,在编译 nokogiri 时卡住了,报错提示在找 x86_64 的库,但我的是 ARM 芯片(Apple Silicon)。
ld: warning: ignoring file '/opt/homebrew/Cellar/xz/5.8.1/lib/liblzma.dylib': found architecture 'arm64', required architecture 'x86_64'
原因:我的机器上好像混用了两个 Homebrew(Intel 和 ARM 版)。默认的 brew 命令指向了 Intel 版本。
解决:
brew 路径:which brew。我的是 /usr/local/bin/brew(Intel版)。eval $(/opt/homebrew/bin/brew shellenv)
bundle install,编译就通过了。public_suffix 版本激活冲突再次尝试 jekyll s,又出现新错误:全局的 public_suffix (7.0.2) 和项目需要的 (5.0.4) 冲突。
解决:改用 bundle exec 命令,严格使用项目 Gemfile.lock 里锁定的版本。
bundle exec jekyll s
以为终于行了,结果连续报错:
cannot load such file -- csvcannot load such file -- base64cannot load such file -- bigdecimal原因:Ruby 3.4 开始,像 csv、base64、bigdecimal、zlib、openssl 这些以前默认就有的标准库,现在需要单独作为 gem 安装了。而我的博客用的 Jekyll 版本比较旧,还依赖它们。
解决:在项目目录下,把这些缺失的库一次性补上。
bundle add csv base64 webrick bigdecimal zlib openssl
完成以上所有步骤后,再次运行:
bundle exec jekyll s
熟悉的启动信息终于出现了,浏览器打开 http://localhost:4000,博客本地预览恢复正常。
bundle exec 是护身符:在项目目录下运行任何 gem 相关的命令,都习惯性加上它,能避免很多奇怪的版本冲突。brew,能省去很多编译麻烦。bundle add 装啥,csv、base64、bigdecimal、zlib、openssl 这几个是常客。