resume agent work — a tiny CLI to label and resume Cursor agent sessions.
Cursor agent sessions are identified by UUIDs. Once you've got a dozen of
them going you lose track of which is which. raw lets you pin a
human-readable label to a cursor-agent --resume=<id> command and pick
it back later with an fzf picker.
# after an agent run, stash it with a label
raw save "Work on skip events" agent --resume=b281f6e3-917c-441f-a5dc-dacadd52d059
# later, from anywhere — pick from a fuzzy list, hit Enter, you're back in the agent
raw continue # or: raw cresume ›
> [api-mobile] Work on skip events — 2026-04-20T10:13:48
[api-mobile] audio-capacity2 — 2026-04-20T10:13:27
[web] Fix login bug — 2026-04-19T18:02:11
label: [api-mobile] Work on skip events
saved: 2026-04-20T10:13:48
agent: b281f6e3-917c-441f-a5dc-dacadd52d059
cwd: /Users/you/code/api-mobile
command:
agent --resume=b281f6e3-917c-441f-a5dc-dacadd52d059
You probably have this problem if:
- You run several Cursor agents in parallel across different repos.
- Half-finished sessions pile up and you can't remember what each one was doing.
- You want a zero-ceremony way to "pick up where I left off" without scrolling back through terminal history.
- Fuzzy picker via
fzfwith a live preview pane showing label, agent id, cwd and the full command. - Restores the working directory you were in when you saved — so resuming drops you back into the right repo.
- Plain-text storage at
~/.resumer/history(TSV). Grep it, edit it, sync it across machines, version it if you're that kind of person. - Dedupe on agent id — re-saving an existing session updates the label and bumps it to the top instead of duplicating.
- Short aliases:
raw s,raw c,raw l. - fish completions out of the box, including label suggestions for
raw rm. - No runtime deps beyond bash + coreutils + optional
fzf. Numbered-menu fallback whenfzfis missing.
bash(tested with 3.2 / 5.x)awk,column,cut(any POSIX system has these)fzf— strongly recommended for the picker. Install withbrew install fzf/apt install fzf. Without it,raw continuefalls back to a numbered menu.fish— only if you want the shipped shell completions. Therawcommand itself is a plain bash script and runs anywhere.
git clone https://github.com/glava/raw.git ~/src/raw
cd ~/src/raw
./install.shThe installer creates symlinks (not copies), so git pull instantly updates your installed command:
~/.local/bin/raw→bin/raw~/.config/fish/completions/raw.fish→completions/raw.fish
If ~/.local/bin isn't on your PATH, add it in ~/.config/fish/config.fish:
fish_add_path ~/.local/binUninstall any time with:
rm ~/.local/bin/raw ~/.config/fish/completions/raw.fish
rm -rf ~/.resumer # optionally nuke the history| Command | Alias | Description |
|---|---|---|
raw save "label" <cmd...> |
raw s |
Save <cmd...> under a label. Extracts the agent id from --resume=<id> or --resume <id>, or falls back to any UUID in the tail. |
raw continue [--print] |
raw c |
Pick a saved session and run it. --print just echoes the command instead of executing. |
raw list |
raw ls, raw l |
Show all saved sessions as a table. |
raw rm <id|label-substring> |
Remove matching entries. Exact match on agent id, substring match on label. | |
raw path |
Print the history file path. | |
raw help |
Show help. |
Everything lives in one human-readable TSV file:
~/.resumer/history
Format — one session per line, tab-separated:
<iso_timestamp> <label> <agent_id> <cwd> <command>
- Newest entries are kept at the top.
- Saving a command with an agent id that already exists replaces the old row.
- Override the location with
RAW_HOME=/some/dir(useful for testing or sandboxing).
raw continuecds back to the directory you were in when you ranraw save, thenexecs the command. Your shell becomes the agent.- If the original directory no longer exists,
rawwarns and runs in the current cwd — the agent session itself is cwd-independent. - Labels may contain spaces and punctuation, but not tab characters (they'd corrupt the TSV).
raw/
├── bin/raw # the script itself
├── completions/raw.fish # fish completions
├── install.sh # symlink installer
├── LICENSE # MIT
└── README.md
Small focused PRs welcome. The whole tool is a single bash script — keep it that way unless there's a very good reason not to.
Built for use with Cursor. Not affiliated with Anysphere.