一键导入
desktop-move
Move ONE file from one location to another. Subject to the sandbox filesystem policy. Use after desktop-plan, once per file with action=move.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Move ONE file from one location to another. Subject to the sandbox filesystem policy. Use after desktop-plan, once per file with action=move.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | desktop-move |
| description | Move ONE file from one location to another. Subject to the sandbox filesystem policy. Use after desktop-plan, once per file with action=move. |
| metadata | {"openclaw":{"emoji":"🦞"}} |
Goal: perform a single file move. The sandbox filesystem policy decides whether it's allowed. This skill does NOT bypass policy; failures are reported, not retried.
A single {from, to} pair (you'll get these from the desktop-plan output). Example:
from: /sandbox/demo/desktop/draft.pdfto: /sandbox/demo/sorted/documents/draft.pdffrom exists with test -f "$FROM". If not, return failure (do not retry).to's parent directory exists. Execute this exact bash command:
mkdir -p "$(dirname "$TO")"
If mkdir fails (likely because policy blocks creating that dir), return failure.mv "$FROM" "$TO"
test -f "$TO" && ! test -f "$FROM".Return ONLY a single JSON object, no prose:
{"file": "draft.pdf", "action": "move", "from": "...", "to": "...", "result": "ok"}
On failure:
{"file": "draft.pdf", "action": "move", "from": "...", "to": "...", "result": "denied", "reason": "mv: cannot create '/sandbox/demo/sorted/documents/draft.pdf': Permission denied"}
result is one of: ok, denied (policy-related), error (other).
sudo or any escalation. The policy decides; respect it.denied. The deny is the system telling you it's not allowed; loop bashing it will spam the audit log.cp + rm as a workaround. Atomic mv is the only allowed move primitive.Arrange/move/trash files on the user's real ~/Desktop. Examples: 'move draft.pdf to upper-right', 'arrange A-Z in upper-right', 'trash X'. You MUST call openclaw:core:exec to append JSON intents to /sandbox/.openclaw/state/desktop-intents.jsonl — the overlay broker reads and executes each line on the host. Do NOT claim success without an exec callCount > 0.
Send ONE file to the sandbox trash. Requires the trash-approval marker to be present; without it, returns a structured rejection that the operator must explicitly resolve.
Tidy the demo desktop. Execute the JavaScript snippet below verbatim via tool_search_code — it calls openclaw:core:exec on /sandbox/.openclaw/bin/tidy.sh and returns the script's stdout.
Given an inventory from desktop-scan, propose where each file should go. Output a JSON plan of moves and trash candidates.
Scan the demo desktop directory and return a JSON inventory of every file with size, mtime, and a category. Use this as the first step before proposing a cleanup plan.