ScriptKitty
Undo for AI agents

Undo for the computer your AI agents work on.

A small background service keeps an old copy of each file before it is deleted or changed. When an agent wrecks something, the sk command puts it back.

sudo ./install.shHow it keeps things →
The file test

An agent deleted or changed 242 entries. One command brought back every byte.

In a throwaway test VM, Claude Code was given one tool, a shell, and asked to clean up a git project holding a database, a dump, uploads and logs. After one sudo sk back to the minute before it started, the whole tree was hashed and compared with how it was. Nothing differed, in all 3 runs.

The cloud test

It deleted 23 products, changed 17 and made 1. The API ended as it began.

Same VM, with a made-up products API standing in for a real cloud. ScriptKitty's cloud engine held the real token and the agent got a stand-in. One sk back put the 40 back and removed the product the agent made, after keeping a copy of it, in 4.4 seconds, measured once. The real token appeared 0 times in the agent's transcript, its home folder and its config file.

A separate examiner scripts its own wrecks in its own VM and compares every byte. On the last build it judged, 13 of 19 cases passed; four of the six failures have been fixed since, and the examiner has not judged those fixes yet. What it cannot undo lists the rest.

It keeps copies as the agent works

The service watches the files on the machine's own disks, its Docker containers and volumes, its systemd units and a local PostgreSQL. Before a file in a watched place is deleted or changed, it already holds an old copy or a second name for it, and a diary says what changed, when, and which program did it.

It never stops the agent

No plugin, no approvals, no prompts. It does not read command text and uses no model; it watches what the kernel does. When it cannot keep a copy, for a full disk say, the change goes through anyway and sk status names the file and the moment.

One command puts it back

sk undo 12 puts back one change. sk back 10m, a clock time or a bookmark puts back everything since. The default keep is 24 hours, and every go-back can itself be taken back.

Clouds

The same undo for web and cloud APIs

A second small service sits between the agent and the web. It holds the real keys and gives the agent stand-ins. Before a call deletes or overwrites something, it reads and keeps that thing; sk back puts it back like a file and removes what the agent made. Cloud cover is part of the free tool, and the copies stay on your own disks.

How the cloud engine works →

sudo sk cloud setup
sudo sk cloud add-key GITHUB_TOKEN --host api.github.com
sudo sk cloud env      # the lines to give the agent
Pixel-art room at night: a cat asleep on an armchair under a neon cat sign, a window onto a city, a bookshelf with a plant.
The cat's window: a small pixel room that shows the last 24 hours. A fallen thing in the room is a change you can tap to put back.
The cat

A cat keeps the room

While nothing risky happens, the cat sleeps. When a big delete lands, something in the room falls over and the cat goes and sits by it. One tap puts it back. The window is in testing: it has run once in a test VM against the real service, where a tap brought deleted files back.

Where it runs

Linux today, Mac and Windows next

Linux has run in test VMs. Mac and Windows are built and have not run yet. Cloud cover is built and has been tried only against made-up APIs.

Regular people and small businesses use it free. Big companies pay.

PlatformStatus
LinuxIn testing
MacBuilt, not run on a Mac
WindowsBuilt, not run on Windows
Real cloudsBuilt, not run on one
Install

Two commands on Linux

It has run only in throwaway test machines so far, so put it on a machine you can lose. The source is not published yet.

Install and the full command list → · The morning after a bad run →

sudo ./install.sh     # installs and starts the service
sk status             # what is watched, what is left out