5.4 KiB
5.4 KiB
OpenCode 技能同步到 Cursor IDE 指南
将 OpenCode 技能同步到 Cursor IDE 的技能目录,实现配置一致和统一管理。
目的
- 保持 OpenCode 和 Cursor 的技能配置一致
- 简化技能维护工作流
- 支持一键同步操作
- 提供错误处理和回滚机制
目录结构
源目录(OpenCode 技能)
~/.config/opencode/skill/
├── git/
├── android/
├── electron/
└── ...其他技能
目标目录(Cursor 技能)
~/.cursor/skills/
├── git/
├── android/
├── electron/
└── ...其他技能
注意:Cursor 目录中可能包含额外的技能(如 opencode/),同步时应保留这些额外技能不被删除。
同步策略
默认同步操作
- 覆盖更新:用 OpenCode 版本覆盖 Cursor 中的同名技能
- 新增技能:复制 OpenCode 中有但 Cursor 中没有的技能
- 保留额外:保留 Cursor 中独有的技能(如
opencode/) - 不删除:不同步删除操作,仅添加和更新
文件级同步
- 递归复制整个技能目录
- 保留文件权限和时间戳
- 使用
cp -Rf强制覆盖已存在的文件
操作步骤
1. 检查目录结构
# 检查源目录
ls -la ~/.config/opencode/skill/
# 检查目标目录
ls -la ~/.cursor/skills/ 2>/dev/null || echo "目标目录不存在"
2. 同步技能
# 确保目标目录存在
mkdir -p ~/.cursor/skills/
# 同步所有技能(覆盖更新)
cp -Rf ~/.config/opencode/skill/* ~/.cursor/skills/
3. 验证同步结果
# 比较目录结构
echo "源目录:"
ls ~/.config/opencode/skill/
echo "目标目录:"
ls ~/.cursor/skills/
# 检查特定技能文件
diff ~/.config/opencode/skill/git/SKILL.md ~/.cursor/skills/git/SKILL.md
4. 完整同步脚本
#!/bin/bash
# 配置路径
SOURCE_DIR="$HOME/.config/opencode/skill"
TARGET_DIR="$HOME/.cursor/skills"
echo "开始同步 OpenCode 技能到 Cursor..."
echo "源目录: $SOURCE_DIR"
echo "目标目录: $TARGET_DIR"
# 检查源目录
if [ ! -d "$SOURCE_DIR" ]; then
echo "错误: 源目录不存在 $SOURCE_DIR"
exit 1
fi
# 创建目标目录(如不存在)
mkdir -p "$TARGET_DIR"
# 同步技能
echo "正在同步技能..."
cp -Rf "$SOURCE_DIR"/* "$TARGET_DIR"/
# 验证结果
echo "同步完成。验证结果:"
echo "已同步技能:"
ls "$SOURCE_DIR"
echo ""
echo "目标目录内容:"
ls "$TARGET_DIR"
# 检查文件差异
echo ""
echo "检查关键文件差异:"
for skill in $(ls "$SOURCE_DIR"); do
if [ -f "$SOURCE_DIR/$skill/SKILL.md" ] && [ -f "$TARGET_DIR/$skill/SKILL.md" ]; then
if ! diff -q "$SOURCE_DIR/$skill/SKILL.md" "$TARGET_DIR/$skill/SKILL.md" >/dev/null; then
echo " ⚠️ $skill/SKILL.md 存在差异"
else
echo " ✓ $skill/SKILL.md 一致"
fi
fi
done
echo "同步完成!"
错误处理
常见问题
1. 目标目录不存在
# 检查并创建目录
if [ ! -d ~/.cursor/skills ]; then
mkdir -p ~/.cursor/skills
echo "已创建目录: ~/.cursor/skills"
fi
2. 权限不足
# 检查权限
ls -ld ~/.cursor
# 如果需要,调整权限(谨慎操作)
# chmod 755 ~/.cursor
3. 磁盘空间不足
# 检查可用空间
df -h ~/.cursor
4. 文件冲突
# 备份现有文件后再同步
BACKUP_DIR=~/.cursor/skills-backup-$(date +%Y%m%d)
cp -R ~/.cursor/skills "$BACKUP_DIR"
echo "已备份到: $BACKUP_DIR"
回滚操作
# 从备份恢复
BACKUP_DIR=~/.cursor/skills-backup-20250123
if [ -d "$BACKUP_DIR" ]; then
rm -rf ~/.cursor/skills
cp -R "$BACKUP_DIR" ~/.cursor/skills
echo "已从备份恢复: $BACKUP_DIR"
fi
最佳实践
定期同步
建议在以下时机同步技能:
- 添加新技能后
- 更新现有技能后
- 定期维护时(如每周一次)
版本控制
# 将 OpenCode 配置目录加入版本控制
cd ~/.config/opencode
git status
git add skill/
git commit -m "feat: 更新技能配置"
自动化脚本
将同步脚本保存为 ~/.config/opencode/command/sync-skills.md 作为 OpenCode 命令:
---
description: 同步 OpenCode 技能到 Cursor IDE
---
#!/bin/bash
# 同步脚本内容...
集成到 OpenCode Workflow
作为技能使用
在 OpenCode 技能中引用此文档:
## 相关文档
- [技能同步指南](./skill-sync.md) - 同步 OpenCode 技能到 Cursor
作为命令调用
用户可直接请求:"同步技能到 Cursor" 或 "sync skills to cursor"
触发时机
- 用户修改技能配置后
- 安装新技能后
- 系统配置变更时
注意事项
- 备份重要数据:同步前建议备份 Cursor 技能目录
- 网络环境:如果使用网络同步,确保连接稳定
- 兼容性:确保技能格式与 Cursor 兼容
- 测试验证:同步后测试关键技能是否正常工作
故障排除
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 同步后技能不生效 | Cursor 缓存 | 重启 Cursor IDE |
| 文件权限错误 | 权限不足 | 检查目录权限 |
| 目标目录只读 | 系统限制 | 以管理员权限运行 |
| 部分技能缺失 | 同步中断 | 重新执行同步 |
更新记录
- 2026-01-23:创建初始版本
- 功能:基础同步、错误处理、最佳实践
该文档是 OpenCode 技能管理的一部分,用于维护技能配置的一致性。