9b395f5cc3
E2E Headed Chrome / e2e-headed (macos-15) (push) Has been cancelled
E2E Headed Chrome / e2e-headed (ubuntu-latest) (push) Has been cancelled
E2E Headed Chrome / e2e-headed (windows-latest) (push) Has been cancelled
CI / build (macos-latest) (push) Has been cancelled
CI / build (ubuntu-latest) (push) Has been cancelled
CI / build (windows-latest) (push) Has been cancelled
CI / unit-test (push) Has been cancelled
CI / bun-test (push) Has been cancelled
CI / adapter-test (push) Has been cancelled
CI / smoke-test (macos-latest) (push) Has been cancelled
CI / smoke-test (ubuntu-latest) (push) Has been cancelled
Security Audit / audit (push) Has been cancelled
Build Chrome Extension / build (push) Has been cancelled
Trigger Website Rebuild (Docs Updated) / dispatch (push) Has been cancelled
128 lines
6.7 KiB
Markdown
128 lines
6.7 KiB
Markdown
# Trae CN
|
|
|
|
Control the **Trae CN** desktop app from the terminal through Chrome DevTools Protocol (CDP). The adapter targets the active Trae workbench window and can start a fresh task, send prompts, read responses, switch the current model, and monitor long-running task progress.
|
|
|
|
## Prerequisites
|
|
|
|
1. Install Trae CN.
|
|
2. Launch it with a remote debugging port:
|
|
|
|
```bash
|
|
open -a "Trae CN" --args --remote-debugging-port=39240
|
|
```
|
|
|
|
3. Point OpenCLI at the Trae CDP endpoint:
|
|
|
|
```bash
|
|
export OPENCLI_CDP_ENDPOINT="http://127.0.0.1:39240"
|
|
```
|
|
|
|
If Trae CN is already running on another remote debugging port, do not restart it just to match this default. Point `OPENCLI_CDP_ENDPOINT` at the port that is currently listening.
|
|
|
|
If multiple Trae workspaces are open, select the right target by title:
|
|
|
|
```bash
|
|
export OPENCLI_CDP_TARGET="talk"
|
|
```
|
|
|
|
## Commands
|
|
|
|
### Diagnostics
|
|
|
|
- `opencli trae-cn setup` — show local launch, environment, verification, task, monitor, and read commands.
|
|
- `opencli trae-cn targets` — list Trae CDP targets and show which window/workspace is running or waiting for approval.
|
|
- `opencli trae-cn status` — check the active Trae target, workspace, model, agent, turn count, and composer readiness.
|
|
- `opencli trae-cn dump` — dump DOM and accessibility snapshot artifacts to `/tmp/trae-cn-dom.html` and `/tmp/trae-cn-snapshot.json`.
|
|
- `opencli trae-cn screenshot` — capture DOM and accessibility artifacts for debugging.
|
|
|
|
### Task Control
|
|
|
|
- `opencli trae-cn new` — start a fresh task in the current workspace.
|
|
- `opencli trae-cn new "prompt"` — start a fresh task and submit the first prompt.
|
|
- `opencli trae-cn send "prompt"` — send a prompt into the current task.
|
|
- `opencli trae-cn ask "prompt" --timeout 120` — send a prompt, wait for the assistant reply without treating visible approval cards as a final answer, and return it.
|
|
- `opencli trae-cn read --limit 5` — read recent visible user and assistant turns.
|
|
- `opencli trae-cn export --output /tmp/trae-cn.md` — export recent turns as Markdown.
|
|
- `opencli trae-cn approve` — approve a visible terminal-run or delete confirmation prompt.
|
|
|
|
### Model
|
|
|
|
- `opencli trae-cn model` — read the current composer model, agent, and workspace.
|
|
- `opencli trae-cn select-model "GPT 5.4"` — select a model from the current composer model menu.
|
|
|
|
### Progress Monitoring
|
|
|
|
- `opencli trae-cn activity` — read the current task state once.
|
|
- `opencli trae-cn watch --duration 60 --interval 2` — sample task state until completion or timeout.
|
|
- `opencli trae-cn watch --stream true` — emit one JSON object per sample as JSONL for agent pipelines.
|
|
- `opencli trae-cn watch --auto-approve true` — explicitly approve matching terminal/delete prompts while watching.
|
|
|
|
`watch` defaults to `--stop-on-complete true`, so `--duration` is a maximum observation window. Use `--stop-on-complete false` when you need a fixed-length observation trace.
|
|
|
|
### Approval Prompts
|
|
|
|
Trae CN may pause a long task for UI confirmations, especially before running terminal commands or deleting files. `ask` and `watch` do not click approval prompts unless you pass `--auto-approve true`; `approve` clicks the current matching prompt directly. The approval detector is category-based: OpenCLI approves Trae's visible `terminal` confirmation UI and visible `delete` confirmation UI. It is not a semantic command allowlist limited to `rm` or `mv`.
|
|
|
|
Opt-in approval behavior:
|
|
|
|
- `terminal` is enabled when you opt in. It clicks ordinary terminal run confirmations, high-risk command-card `运行`, and the follow-up high-risk modal `仍要运行` when Trae exposes them with matching button/context text.
|
|
- `delete` is enabled when you opt in. It clicks file deletion cards and the follow-up irreversible delete modal `确认` when Trae exposes them with matching button/context text.
|
|
- `keep` is not enabled by default. Use `--approve-kinds keep` only when the intended action is to retain files rather than delete them.
|
|
- Unknown prompts are not clicked. Use `opencli trae-cn activity`, `opencli trae-cn targets`, or `opencli trae-cn approve --dry-run true` to inspect them.
|
|
|
|
Monitor without approval clicks:
|
|
|
|
```bash
|
|
opencli trae-cn watch --stream true --duration 300
|
|
```
|
|
|
|
You can also approve the current visible prompt directly:
|
|
|
|
```bash
|
|
opencli trae-cn approve --approve-kinds terminal,delete -f json
|
|
```
|
|
|
|
Use `--dry-run true` to inspect matching prompts without clicking. Use `--approve-kinds keep` only when the intended action is to keep/retain a file instead of approving deletion.
|
|
|
|
For long-running agent tasks where you explicitly want OpenCLI to approve terminal/delete prompts while watching:
|
|
|
|
```bash
|
|
opencli trae-cn watch --stream true --duration 300 --auto-approve true
|
|
```
|
|
|
|
The auto-approval detector only clicks visible prompts whose button and surrounding prompt text match the requested approval kinds.
|
|
|
|
In Trae CN auto-run mode, high-risk shell commands such as `mv` and `rm` can still show confirmation UI. The adapter handles both layers observed in Trae CN: the command card `运行` action and the follow-up `运行风险命令` modal with `仍要运行`.
|
|
|
|
Observed high-risk patterns include `rm`, `delete`, `unlink`, `shred`, `dd`, `truncate`, `kill`, `chmod`, `mv`, `copy`, `move`, PowerShell write commands, `mkfs`, destructive Git operations, and destructive database commands. If Trae renders any of these as terminal confirmation UI with known wording/buttons, opt-in `watch --auto-approve true` and `ask --auto-approve true` approve them through the `terminal` approval kind. Treat these prompts as current-product UI behavior rather than a stable public API.
|
|
|
|
When multiple Trae windows are open, use:
|
|
|
|
```bash
|
|
opencli trae-cn targets -f table
|
|
OPENCLI_CDP_TARGET=workspace opencli trae-cn watch --stream true --duration 300
|
|
```
|
|
|
|
`targets` is the quickest way to find the row with `ApprovalPending=yes` and copy its `RecommendedTarget` into `OPENCLI_CDP_TARGET`. Confirm the current state with `targets`, `activity`, `watch`, or `read`.
|
|
|
|
## Notes
|
|
|
|
- The adapter operates the currently selected Trae workspace target. It does not yet open folders or switch historical conversations.
|
|
- `OPENCLI_CDP_TARGET` should be used when multiple Trae windows or workspaces share the same CDP endpoint.
|
|
- Trae assistant output may describe model identity differently from the UI. Use `trae-cn status` or `trae-cn model` as the source of truth for the current selected model.
|
|
- Sensitive local state under Trae data directories is not required for normal adapter operation.
|
|
|
|
## Example
|
|
|
|
```bash
|
|
opencli trae-cn setup
|
|
|
|
OPENCLI_CDP_ENDPOINT=http://127.0.0.1:39240 \
|
|
OPENCLI_CDP_TARGET=talk \
|
|
opencli trae-cn new "Please reply only: TRAE_OK"
|
|
|
|
OPENCLI_CDP_ENDPOINT=http://127.0.0.1:39240 \
|
|
OPENCLI_CDP_TARGET=talk \
|
|
opencli trae-cn watch --duration 30 --interval 1 --stream true
|
|
```
|