Skip to content

Commit 0b3bf3a

Browse files
committed
chore(ui-tars): update cli README to show adb operator demo
1 parent 2c84009 commit 0b3bf3a

File tree

2 files changed

+37
-15
lines changed

2 files changed

+37
-15
lines changed

packages/ui-tars/cli/README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
11
# @ui-tars/cli
22

33
CLI for UI-TARS.
4+
5+
## Use adb operator in CLI
6+
7+
Connect an Android device to your computer and run the following command:
8+
9+
```bash
10+
npx @ui-tars/cli start -p 'your config' -t adb -q "Help me add Tom to my contacts. His phone number is 12345678900."
11+
```
12+
13+
**Showcase:**
14+
15+
<video src="https://github.com/user-attachments/assets/91142f86-22a0-4ebc-9a85-752a8d21d1c4" height="200" />

packages/ui-tars/operators/adb/src/index.ts

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ export class AdbOperator extends Operator {
6464
`type(content='')`,
6565
`swipe(start_box='[x1, y1, x2, y2]', end_box='[x3, y3, x4, y4]')`,
6666
`scroll(start_box='[x1, y1, x2, y2]', direction='down or up or right or left') # You must spesify the start_box`,
67-
`hotkey(key='') # The available keys: enter,back,home,menu,power,volume_up,volume_down,mute,lock`,
67+
`hotkey(key='') # The available keys: enter,back,home,backspace,delete,menu,power,volume_up,volume_down,mute,lock`,
6868
`wait() #Sleep for 2s and take a screenshot to check for any changes.`,
6969
`press_home() # Press the home key`,
7070
`finished()`,
@@ -169,7 +169,7 @@ export class AdbOperator extends Operator {
169169
}
170170
}
171171
if (content) {
172-
// 使用 text 命令输入文本,需要处理特殊字符
172+
// Use text command to input text, need to handle special characters
173173
const escapedContent = content.replace(/(['"\\])/g, '\\$1');
174174
const cmd = this.androidDevUseAdbIME
175175
? `adb -s ${this.deviceId} shell am broadcast -a ADB_INPUT_TEXT --es msg "${escapedContent}"`
@@ -208,18 +208,18 @@ export class AdbOperator extends Operator {
208208
switch (direction) {
209209
case 'up':
210210
endX = startX;
211-
endY = startY - 100; // 向上滑动,Y 坐标减小
211+
endY = startY - 100; // Scroll up, decrease Y coordinate
212212
break;
213213
case 'down':
214214
endX = startX;
215-
endY = startY + 100; // 向下滑动,Y 坐标增加
215+
endY = startY + 100; // Scroll down, increase Y coordinate
216216
break;
217217
case 'left':
218-
endX = startX - 100; // 向左滑动,X 坐标减小
218+
endX = startX - 100; // Scroll left, decrease X coordinate
219219
endY = startY;
220220
break;
221221
case 'right':
222-
endX = startX + 100; // 向右滑动,X 坐标增加
222+
endX = startX + 100; // Scroll right, increase X coordinate
223223
endY = startY;
224224
break;
225225
}
@@ -235,47 +235,57 @@ export class AdbOperator extends Operator {
235235
case 'hotkey':
236236
const { key } = action_inputs;
237237
switch (key) {
238-
case 'enter': // 回车键
238+
case 'enter': // Enter key
239239
await commandWithTimeout(
240240
`adb -s ${this.deviceId} shell input keyevent KEYCODE_ENTER`,
241241
);
242242
break;
243-
case 'back': // 返回键
243+
case 'back': // Back key
244244
await commandWithTimeout(
245245
`adb -s ${this.deviceId} shell input keyevent KEYCODE_BACK`,
246246
);
247247
break;
248-
case 'home': // 回到主屏幕
248+
case 'home': // Return to home screen
249249
await commandWithTimeout(
250250
`adb -s ${this.deviceId} shell input keyevent KEYCODE_HOME`,
251251
);
252252
break;
253-
case 'menu': // 打开菜单(较少用)
253+
case 'backspace': // Backspace key
254+
await commandWithTimeout(
255+
`adb -s ${this.deviceId} shell input keyevent 67`,
256+
);
257+
break;
258+
case 'delete': // Delete key
259+
await commandWithTimeout(
260+
`adb -s ${this.deviceId} shell input keyevent 112`,
261+
);
262+
break;
263+
case 'menu': // Open menu (less commonly used)
254264
await commandWithTimeout(
255265
`adb -s ${this.deviceId} shell input keyevent KEYCODE_MENU`,
256266
);
257267
break;
258-
case 'power': // 电源键(锁屏/点亮)
268+
case 'power': // Power key (lock/unlock screen)
259269
await commandWithTimeout(
260270
`adb -s ${this.deviceId} shell input keyevent KEYCODE_POWER`,
261271
);
262272
break;
263-
case 'volume_up': // 增加音量
273+
case 'volume_up': // Increase volume
264274
await commandWithTimeout(
265275
`adb -s ${this.deviceId} shell input keyevent KEYCODE_VOLUME_UP`,
266276
);
267277
break;
268-
case 'volume_down': // 减少音量
278+
case 'volume_down': // Decrease volume
269279
await commandWithTimeout(
270280
`adb -s ${this.deviceId} shell input keyevent KEYCODE_VOLUME_DOWN`,
271281
);
272282
break;
273-
case 'mute': // 静音
283+
case 'mute': // Mute
274284
await commandWithTimeout(
275285
`adb -s ${this.deviceId} shell input keyevent KEYCODE_VOLUME_MUTE`,
276286
);
277287
break;
278-
case 'lock': // 锁屏
288+
case 'lock': // Lock screen
279289
await commandWithTimeout(
280290
`adb -s ${this.deviceId} shell input keyevent 26`,
281291
);

0 commit comments

Comments
 (0)