360 Secure SkillHub
360 安全技能中心

CtrlZ

CtrlZ 是一个基于 Bash 脚本的操作撤销系统,按对话轮次建立会话,记录 file_write、file_edit、file_delete、dir_create、exec_install 等操作并备份文件,支持通过指令或自然语言触发按会话回滚;默认保留 1 个撤销单元,可配置为 3 或 5,包安装只能列出手动卸载命令。脚本、数据库和备份均位于 OpenClaw 专属目录下。

chrisluo5311
chrisluo5311
热度 35.62
最近更新 2026-05-18 11:47:36
分类:自动化依赖:代码执行 / 读写文件应用场景:工作流 / 自动化脚本 / 任务管理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add ctrlz
Metadata
name
ctrlz
description
AI Operation Undo System. When user executes /ctrlZ or says "undo last step", automatically revert all file modifications, installations, etc. from the recent conversation round. Default keeps 1 undo unit, configurable to 3 or 5.

CtrlZ - AI Operation Undo System

Overview

CtrlZ is a Git-like undo system that records all "create/update/delete" operations performed by AI in each conversation round, allowing users to revert with one command.

Core Concepts

  • Undo Session: All operations generated in one conversation round (user request + assistant response)
  • Stack Mechanism: Default keeps 1 session, configurable to 3/5 sessions
  • Auto Recording: Automatically backup and record before executing any modifications

Usage

User Commands

/ctrlZ              # Undo the most recent conversation round
/ctrlZ 3            # Undo the last 3 conversation rounds
/ctrlZ list         # List undoable operation records
/ctrlZ stack 5      # Set stack size to 5 undo units

Natural Language Triggers

  • "undo last step"
  • "undo"
  • "revert recent changes"
  • "ctrl+z"

AI Usage Guide (Important)

Before each file modification:

1. Start Session (at conversation beginning)

bash ~/.openclaw/skills/ctrlz/scripts/ctrlz.sh start <session_key> "<description>"

2. Record each operation (before modification)

bash ~/.openclaw/skills/ctrlz/scripts/ctrlz.sh record <session_id> <type> <path> [metadata]

Operation types:

  • file_write - Write/overwrite file
  • file_edit - Edit existing file
  • file_delete - Delete file
  • dir_create - Create directory
  • exec_install - Install package/dependency
  • exec_download - Download file

3. Execute actual operation

4. End Session (automatic at conversation end)

Complete Example

# 1. Start session
SESSION=$(bash ~/.openclaw/skills/ctrlz/scripts/ctrlz.sh start "Modify config" | jq -r '.session_id')

# 2. Record config.json modification
bash ~/.openclaw/skills/ctrlz/scripts/ctrlz.sh record $SESSION file_edit "/path/to/config.json"

# 3. Execute actual modification
edit /path/to/config.json ...

# 4. Record package installation
bash ~/.openclaw/skills/ctrlz/scripts/ctrlz.sh record $SESSION exec_install "npm:lodash"

# 5. Execute installation
exec "npm install lodash"

Execute Undo

When user says "undo":

# Undo the most recent 1 session
bash ~/.openclaw/skills/ctrlz/scripts/ctrlz.sh undo

# Undo the last 3 sessions
bash ~/.openclaw/skills/ctrlz/scripts/ctrlz.sh undo 3

Configuration

View current stack size

bash ~/.openclaw/skills/ctrlz/scripts/ctrlz.sh get-stack

Modify stack size (how many undo units to keep)

bash ~/.openclaw/skills/ctrlz/scripts/ctrlz.sh set-stack 5

View statistics

bash ~/.openclaw/skills/ctrlz/scripts/ctrlz.sh stats

List undoable operations

bash ~/.openclaw/skills/ctrlz/scripts/ctrlz.sh list

Database Structure

Location: ~/.openclaw/skills/ctrlz/undo.db

Tables:

  • undo_sessions - Each undo unit (conversation round)
  • undo_operations - Specific operation records
  • settings - Configuration (stack size, etc.)

Backup Location: ~/.openclaw/skills/ctrlz/backups/

Important Notes

  1. Package installation cannot be fully auto-undone - Will show list and manual removal commands
  2. External command effects - Cannot track side effects of shell commands
  3. Backup space - Clean up old backups periodically: ctrlz clear

Package Installation Handling

When undoing operations that include package installations:

📦 The following package installations cannot be auto-undone:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  1. npm:lodash
  2. npm:express
  3. pip:requests
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

💡 To remove, manually execute:
   npm uninstall lodash
   npm uninstall express
   pip uninstall requests

System Integration

Recommended to auto-start session at conversation begin and auto-cleanup at end. Can add logic to SOUL.md or AGENTS.md.

Testing

# Quick demo
bash ~/.openclaw/skills/ctrlz/scripts/demo.sh

# Or run full test cases
bash ~/.openclaw/skills/ctrlz/scripts/test_ctrlz.sh