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

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages