惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
Vercel News
Vercel News
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
量子位
Engineering at Meta
Engineering at Meta
B
Blog RSS Feed
博客园 - 【当耐特】
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
IT之家
IT之家
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
博客园 - 三生石上(FineUI控件)

LINUX DO - 最新话题

谷歌云盘下载700g数据集,求方法 OpenAI推出了100美元的Pro订阅后,plus的Codex 5小时限额大幅缩水 之前买的super grok居然还没掉 关于CPA认证文件周限 佬们,默认CDK的要求是什么等级啊? 最新版本的微信群聊机器人方案 有没有人知道如何free号没有封,那么是否可以循环使用,因为我看主要是周限 L站改版了?吓我一跳,我以为我浏览器崩了 淘宝这种宽带可信吗,500兆移动宽带月费8元到2099年 docker内部应用访问宿主机mysql和redis时被拒绝connection refuse Erp全栈想转行做Ai有什么推荐的吗 boost有bug 佬们,有没有靠谱点的 Plus 购买渠道 大妈,狗妈用的 lg 服务有源头开源项目吗? 有人有能过验证码打码的嘛 上次帖里好像发过通过大模型来打码的 gpt plus 封号似乎也太快了点,一天就给封号了 按流量/token收费的国产官方AI推荐 我算是知道了为什么Oracle总是ABC了 佬友们帮我分析一下 ChatGPT Team账号只有一个人使用和4个席位邀请满了使用的总额度是一样的吗? gpt-free 10个带rt CPA反代claude是默认1m吗? 我终于敢说我做出来windows上tmux的替代了,目标windows/全平台最强的终端Ai编程工具 claude pro升级max,除了原来的$20,好像还能再领一次$100 关于AI agent的知识框架 独乐乐不如众乐乐,分享一下我的的AI对话程序 佬们自建网站支付问题是怎么解决的 怎么能让gpt模仿claude风格输出 codex free已经死了,下一个会是plus或者team吗 请问chatgpt pro里的fast模式,速度快了,降智吗
WSL 与 Windows 双环境 OpenCode 配置同步
Kirafishy · 2026-04-29 · via LINUX DO - 最新话题
WSL 与 Windows 双环境 OpenCode 配置同步实践 背景 在 WSL 和 Windows 双环境下使用 OpenCode 时,希望两边配置和会话数据能够同步,避免手动切换环境时丢失上下文。 主要分为两块:配置目录同步和会话数据库同步。把步骤直接丢给agent应该就能搞定了。 一、配置文件同步 OpenCode 的配置目录位于 ~/.config/opencode/ ,包含: opencode.json - 主配置(provider、model、MCP) AGENTS.md - 全局规则 hooks/ - 钩子脚本 agents/ - Agent 定义 command/ - 斜杠命令 方案 :符号链接,WSL 直接指向 Windows 配置目录 ln -s /mnt/c/Users/用户名/.config/opencode ~/.config/opencode ln -s /mnt/c/Users/用户名/.config/opencode ~/.opencode 优点: 修改任意一边自动同步 无需手动维护 注意: AGENTS.md 如果包含了操作系统相关的内容,需要修改为跨平台描述 二、会话数据库同步(失败 → 改进方案) 初期尝试:符号链接同步数据库 数据库位置: ~/.local/share/opencode/opencode.db (SQLite) ln -s /mnt/c/Users/用户名/.local/share/opencode ~/.local/share/opencode 遇到的问题 问题 1:SQLite 跨系统锁定冲突 Windows 和 WSL 同时运行 OpenCode 时,数据库被锁定 WSL 访问时报 disk I/O error SQLite 的 WAL 文件机制不支持跨文件系统并发 问题 2:路径格式混乱导致递归拼接 Windows 使用 \ 分隔符,WSL 使用 / OpenCode 解析路径时反复叠加,产生错误路径: /home/用户名/\home\用户名\\home\用户名\\home\用户名\C:\Users\用户名 数据库中出现多条错误 session 记录 解决方案:独立数据库 + 手动同步脚本 由于 SQLite 不支持跨系统同时访问,最终采用 独立数据库 + 切换前同步 方案: 1. 恢复 WSL 独立数据库 步骤略 2. 创建同步脚本 ~/.local/bin/opencode-sync #!/bin/bash WINDOWS_DB="/mnt/c/Users/用户名/.local/share/opencode/opencode.db" WSL_DB="$HOME/.local/share/opencode/opencode.db" check_process() { # 检查 WSL 进程(排除同步脚本自身) local opencode_procs=$(ps aux | grep -E "node|bun" | grep "opencode-ai" | grep -v grep | wc -l) if [ "$opencode_procs" -gt 0 ]; then echo "错误: WSL opencode 正在运行" return 1 fi # 检查 Windows 进程 local win_procs=$(powershell.exe -Command "(Get-Process opencode -ErrorAction SilentlyContinue).Count" 2>/dev/null | tr -d '\r\n') if [ "$win_procs" != "" ] && [ "$win_procs" -gt 0 ]; then echo "错误: Windows opencode 正在运行" return 1 fi return 0 } case "$1" in "push") # WSL → Windows check_process || exit 1 cp "$WSL_DB" "$WINDOWS_DB" rm -f "/mnt/c/Users/kirafishy/.local/share/opencode/opencode.db-wal" ;; "pull") # Windows → WSL check_process || exit 1 cp "$WINDOWS_DB" "$WSL_DB" rm -f "$HOME/.local/share/opencode/opencode.db-wal" ;; "auto") # 自动判断方向 check_process || exit 1 # 比较修改时间,从较新的同步到较旧的 ;; "status") # 查看状态 ;; esac ## 三、自动同步 Wrapper 为避免每次手动执行同步,创建 wrapper 脚本: **`~/.local/bin/opencode-wrapper`** ```bash #!/bin/bash OPENCODE_REAL="$HOME/.bun/bin/opencode" SYNC_SCRIPT="$HOME/.local/bin/opencode-sync" # 使用 trap 确保退出时同步(包括 Ctrl+C) cleanup() { echo "" echo ">>> 正在推送数据到 Windows..." "$SYNC_SCRIPT" push 2>/dev/null } trap cleanup EXIT # 启动前同步 echo ">>> 正在同步数据..." "$SYNC_SCRIPT" pull 2>/dev/null # 运行 opencode "$OPENCODE_REAL" "$@" 集成到 bashrc : alias opencode='$HOME/.local/bin/opencode-wrapper' 工作流程 : 启动 → pull (Windows→WSL) → 运行 opencode → 退出 → push (WSL→Windows) ↑ ↑ 包括 Ctrl+C 也触发 push (trap EXIT) 四、数据库清理 步骤略 五、最终架构 组件 同步方式 说明 配置文件 ( ~/.config/opencode ) 符号链接 实时同步 会话数据库 ( ~/.local/share/opencode/opencode.db ) 手动/自动脚本 切换环境前同步 wrapper ( opencode-wrapper ) 自动触发 运行 opencode 时自动同步 六、经验教训 SQLite 不支持跨系统并发 :WSL 和 Windows 通过 /mnt/c 访问同一个 SQLite 文件会有锁定冲突,不要尝试符号链接同步数据库 进程检测要精确 : pgrep -f "opencode" 会匹配脚本自身,需要更精确的匹配条件 Ctrl+C 退出仍需同步 :因为用到了佬友开发的Web UI: [开源自荐] OpenCodeUI (opencode webui) 。所以需要使用 trap EXIT 捕获所有退出方式,包括信号中断。 路径格式差异 :Windows \ 和 WSL / 混合可能导致解析错误,切换环境时要注意 七、使用指南 # 手动同步 opencode-sync pull # 切换到 WSL 前,从 Windows 拉取 opencode-sync push # 离开 WSL 前,推送到 Windows opencode-sync auto # 自动判断方向 opencode-sync status # 查看状态 # 自动同步(推荐) source ~/.bashrc # 加载 alias opencode serve ... # 自动 pull → 运行 → 退出自动 push 3 个帖子 - 3 位参与者 阅读完整话题