opencode-diff-viewer 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,34 +12,9 @@
12
12
  - 🔧 **tmux 集成** - 在后台 tmux 会话中运行 lumen
13
13
  - 🤖 **LLM 工具集成** - LLM 可自动调用 `view_diff` 工具
14
14
 
15
- ## 前置条件
16
-
17
- ### 自动安装
18
-
19
- 插件会在启动时自动检查并安装以下依赖:
20
-
21
- 1. **tmux** - 终端复用器
22
- 2. **lumen** - TUI diff 查看器
15
+ ## 快速开始
23
16
 
24
- ### 手动安装(如果自动安装失败)
25
-
26
- **tmux**:
27
- ```bash
28
- brew install tmux
29
- # or
30
- apt install tmux
31
- ```
32
-
33
- **lumen**:
34
- ```bash
35
- brew install jnsahaj/lumen/lumen
36
- # or
37
- cargo install lumen
38
- ```
39
-
40
- ## 安装(全局配置)
41
-
42
- ### 1. 安装 npm 包
17
+ ### 1. 安装插件
43
18
 
44
19
  ```bash
45
20
  # npm
@@ -52,7 +27,7 @@ pnpm add -g opencode-diff-viewer
52
27
  bun add -g opencode-diff-viewer
53
28
  ```
54
29
 
55
- ### 2. 配置全局 opencode.json
30
+ ### 2. 配置 OpenCode
56
31
 
57
32
  创建或编辑 `~/.config/opencode/opencode.json`:
58
33
 
@@ -71,38 +46,54 @@ cat > ~/.config/opencode/opencode.json << 'EOF'
71
46
  EOF
72
47
  ```
73
48
 
74
- ### 3. 重启 OpenCode
49
+ ### 3. 启动 OpenCode(使用启动脚本)
50
+
51
+ ```bash
52
+ # 使用启动脚本自动在 tmux 中启动 OpenCode
53
+ opencode-diff-viewer
54
+
55
+ # 或手动运行
56
+ ./start-opencode.sh
57
+ ```
75
58
 
76
- 安装完成后重启 OpenCode TUI,插件会自动加载。
59
+ 启动脚本会自动:
60
+ - 检查并安装 tmux(如果未安装)
61
+ - 在 tmux 会话中启动 OpenCode
62
+ - 附加到 tmux 会话
77
63
 
78
64
  ## 使用方法
79
65
 
80
- ### 通过命令
66
+ ### 在 OpenCode 中使用 /diff
81
67
 
82
- 在 OpenCode TUI 中直接输入:
68
+ 在 OpenCode TUI 中输入:
83
69
 
84
70
  ```bash
85
71
  /diff # 查看所有修改文件的 diff
86
72
  /diff src/app.ts # 查看指定文件的 diff
87
73
  ```
88
74
 
89
- ### 通过 LLM
75
+ 执行后,lumen 会在 tmux 会话 `opencode-diff-viewer` 中运行。
90
76
 
91
- LLM 可以自动调用 `view_diff` 工具来展示代码变更。无需手动操作,LLM 会根据对话上下文智能判断何时需要展示 diff
77
+ ### 查看 lumen diff
92
78
 
93
- ### 查看 lumen
94
-
95
- 执行 `/diff` 后,lumen 会在 tmux 会话中运行。要查看 lumen:
79
+ **新开一个终端窗口**,运行:
96
80
 
97
81
  ```bash
98
82
  tmux attach -t opencode-diff-viewer
99
83
  ```
100
84
 
101
- **tmux 快捷键**:
102
- - `Ctrl+B` 然后 `D` - 分离会话(回到 OpenCode)
103
- - `Ctrl+B` 然后 `?` - 查看所有快捷键
85
+ 查看完成后,按 `Ctrl+B` 然后 `D` 分离 tmux 会话,回到 OpenCode。
86
+
87
+ ## tmux 快捷键
88
+
89
+ | 快捷键 | 功能 |
90
+ |--------|------|
91
+ | `Ctrl+B` 然后 `D` | 分离会话(回到终端) |
92
+ | `Ctrl+B` 然后 `?` | 查看所有快捷键 |
93
+ | `Ctrl+C` | 终止当前会话 |
94
+
95
+ ## lumen 快捷键
104
96
 
105
- **lumen 快捷键**:
106
97
  | 快捷键 | 功能 |
107
98
  |--------|------|
108
99
  | `j` / `k` 或 `↑` / `↓` | 上/下移动 |
@@ -111,53 +102,71 @@ tmux attach -t opencode-diff-viewer
111
102
  | `e` | 在编辑器中打开文件 |
112
103
  | `q` | 退出 |
113
104
 
114
- ## 故障排除
105
+ ## 前置条件
115
106
 
116
- ### 1. tmux 未安装
107
+ ### tmux
117
108
 
118
- ```
119
- ❌ tmux is not installed
109
+ 启动脚本会自动安装 tmux。如果失败,手动安装:
110
+
111
+ ```bash
112
+ brew install tmux
113
+ # or
114
+ apt install tmux
120
115
  ```
121
116
 
122
- **解决方案**: 手动安装 tmux(见上方手动安装)
117
+ ### lumen
123
118
 
124
- ### 2. lumen 未安装
119
+ 插件会自动安装 lumen。如果失败,手动安装:
125
120
 
126
- ```
127
- lumen is not installed
121
+ ```bash
122
+ brew install jnsahaj/lumen/lumen
123
+ # or
124
+ cargo install lumen
128
125
  ```
129
126
 
130
- **解决方案**: 手动安装 lumen(见上方手动安装)
127
+ ## 故障排除
131
128
 
132
- ### 3. 没有修改的文件
129
+ ### 1. 没有修改的文件
133
130
 
134
131
  ```
135
132
  📝 No modified files
136
133
  ```
137
134
 
138
135
  **解决方案**: 确保文件已修改并暂存:
136
+
139
137
  ```bash
140
138
  git add .
141
139
  ```
142
140
 
143
- ### 4. 插件未加载
141
+ ### 2. 插件未加载
142
+
143
+ 检查配置:
144
144
 
145
- 检查全局配置文件是否正确:
146
145
  ```bash
147
146
  cat ~/.config/opencode/opencode.json
148
147
  ```
149
148
 
149
+ ### 3. tmux 会话丢失
150
+
151
+ 重新运行启动脚本:
152
+
153
+ ```bash
154
+ opencode-diff-viewer
155
+ ```
156
+
150
157
  ## 工作原理
151
158
 
152
- 1. **检测依赖** - 插件启动时检查 tmux lumen
153
- 2. **自动安装** - 如果未安装,自动通过 brew 或 cargo 安装
154
- 3. **创建 tmux 会话** - 执行 `/diff` 时创建后台 tmux 会话
155
- 4. **运行 lumen** - tmux 会话中运行 lumen diff
159
+ 1. **启动脚本** - tmux new-session 启动 OpenCode
160
+ 2. **插件加载** - OpenCode 启动时自动加载
161
+ 3. **自动安装依赖** - 检查并安装 tmux lumen
162
+ 4. **执行 /diff** - 创建新的 tmux 会话 "opencode-diff-viewer"
163
+ 5. **运行 lumen** - 在 tmux 会话中显示 diff
156
164
 
157
165
  ## 项目结构
158
166
 
159
167
  ```
160
168
  opencode-diff-viewer/
169
+ ├── start-opencode.sh # 启动脚本
161
170
  ├── src/
162
171
  │ ├── index.ts # 插件主逻辑
163
172
  │ └── command-diff.md # /diff 命令定义
package/package.json CHANGED
@@ -1,21 +1,24 @@
1
1
  {
2
2
  "name": "opencode-diff-viewer",
3
- "version": "1.0.8",
4
- "description": "OpenCode plugin for viewing git diffs using lumen TUI",
3
+ "version": "1.0.9",
4
+ "description": "OpenCode plugin for viewing git diffs using lumen TUI with tmux",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "files": [
8
8
  "dist/",
9
- "command-diff.md"
9
+ "command-diff.md",
10
+ "start-opencode.sh"
10
11
  ],
11
12
  "scripts": {
12
- "build": "tsc"
13
+ "build": "tsc",
14
+ "start": "./start-opencode.sh"
13
15
  },
14
16
  "keywords": [
15
17
  "opencode",
16
18
  "opencode-plugin",
17
19
  "diff",
18
20
  "lumen",
21
+ "tmux",
19
22
  "git"
20
23
  ],
21
24
  "author": "AarynLu",
@@ -0,0 +1,46 @@
1
+ #!/bin/bash
2
+
3
+ # OpenCode Diff Viewer - 启动脚本
4
+ # 自动在 tmux 中启动 OpenCode
5
+
6
+ set -e
7
+
8
+ SESSION_NAME="opencode"
9
+
10
+ # 检查 tmux 是否安装
11
+ if ! command -v tmux &> /dev/null; then
12
+ echo "❌ tmux 未安装,正在安装..."
13
+ if command -v brew &> /dev/null; then
14
+ brew install tmux
15
+ else
16
+ echo "❌ 请先安装 tmux: brew install tmux"
17
+ exit 1
18
+ fi
19
+ fi
20
+
21
+ # 检查 OpenCode 是否安装
22
+ if ! command -v opencode &> /dev/null; then
23
+ echo "❌ OpenCode 未安装"
24
+ exit 1
25
+ fi
26
+
27
+ # 检查是否有正在运行的 OpenCode 会话
28
+ if tmux has-session -t "$SESSION_NAME" 2>/dev/null; then
29
+ echo "📎 已存在 OpenCode 会话,正在附加..."
30
+ tmux attach-session -t "$SESSION_NAME"
31
+ else
32
+ echo "🚀 在 tmux 中启动 OpenCode..."
33
+ tmux new-session -d -s "$SESSION_NAME" "opencode"
34
+ echo "✅ OpenCode 已在 tmux 会话 '${SESSION_NAME}' 中启动"
35
+ echo ""
36
+ echo "下一步:"
37
+ echo " 1. 运行: tmux attach -t ${SESSION_NAME}"
38
+ echo " 2. 在 OpenCode 中使用 /diff 命令查看代码变更"
39
+ echo " 3. lumen 会在后台 tmux 会话 'opencode-diff-viewer' 中运行"
40
+ echo ""
41
+ echo "tmux 快捷键:"
42
+ echo " Ctrl+B 然后 D - 分离会话"
43
+ echo " Ctrl+B 然后 ? - 查看帮助"
44
+ echo ""
45
+ tmux attach-session -t "$SESSION_NAME"
46
+ fi