Skip to content

glava/raw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

raw

resume agent work — a tiny CLI to label and resume Cursor agent sessions.

license: MIT shell: bash works with: fish

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 c
resume ›
> [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

Why

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.

Features

  • Fuzzy picker via fzf with 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 when fzf is missing.

Requirements

  • bash (tested with 3.2 / 5.x)
  • awk, column, cut (any POSIX system has these)
  • fzf — strongly recommended for the picker. Install with brew install fzf / apt install fzf. Without it, raw continue falls back to a numbered menu.
  • fish — only if you want the shipped shell completions. The raw command itself is a plain bash script and runs anywhere.

Install

git clone https://github.com/glava/raw.git ~/src/raw
cd ~/src/raw
./install.sh

The installer creates symlinks (not copies), so git pull instantly updates your installed command:

  • ~/.local/bin/rawbin/raw
  • ~/.config/fish/completions/raw.fishcompletions/raw.fish

If ~/.local/bin isn't on your PATH, add it in ~/.config/fish/config.fish:

fish_add_path ~/.local/bin

Uninstall any time with:

rm ~/.local/bin/raw ~/.config/fish/completions/raw.fish
rm -rf ~/.resumer   # optionally nuke the history

Commands

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.

Storage

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).

Behavior notes

  • raw continue cds back to the directory you were in when you ran raw save, then execs the command. Your shell becomes the agent.
  • If the original directory no longer exists, raw warns 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).

Repo layout

raw/
├── bin/raw                 # the script itself
├── completions/raw.fish    # fish completions
├── install.sh              # symlink installer
├── LICENSE                 # MIT
└── README.md

Contributing

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.

License

MIT © 2026 glava

Built for use with Cursor. Not affiliated with Anysphere.

About

Tiny CLI to label and resume Cursor agent session

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages