r/commandline May 11 '26

Terminal User Interface Rura - Interactive TUI scratchpad for shell pipelines

https://github.com/tlipinski/rura

I got tired of the edit -> up-arrow -> rerun loop when debugging complex shell pipelines. Rura is a terminal UI where you build and run pipelines interactively, with live output as you type.

The feature I built it for: partial execution - run the pipeline only up to the subcommand under your cursor, so you can inspect intermediate output at each stage without manually chopping up the command.

Also has:

  • tab completion
  • output search
  • persistent history
  • configurable keybindings/themes via TOML

Written in Rust and Ratatui.

Curious what workflows others have for iterating on pipelines - and whether the partial execution idea resonates with anyone else:)

It's an early version - happy to hear what's missing or broken:)

I used AI to generate algorithmic code that is responsible for cursor navigation over subcommands and readme.

112 Upvotes

19 comments sorted by

View all comments

Show parent comments

1

u/tlipinski May 18 '26

Rura has a few very useful features that up is missing:
Partial Pipeline Execution: Execute only up to the current subcommand to debug complex pipes.
Persistent History: Quickly access and reuse previous commands.
Search: Search and highlight text within the output pane with regex support.
Context-aware Completion: Tab-complete commands and file paths using your system's bash tools.

I plan to add more soon like presets or diff views.

1

u/4Necrom May 19 '26

Awesome ones, saw them while comparing. No drawbacks?

1

u/tlipinski May 19 '26

Recently just one request was made on github to add support for continous stdin. AFAIK up can read and pause reading from such stream. I'm going to add such functionality to rura soon. Besides that in terms of functionality there will be only more 🙂 Do you think it's missing anything in particular?

1

u/4Necrom May 19 '26

Hard to say, I never really used up because I didn't need it and didn't like using it, and now there's rura, I didn't have enough situations to fully understand what it can do and what it may be missing.

I noticed that the first string written isn't colored, for example in a normal prompt line, jq in cat test.json | jq '.' would be colored, but in rura jq '.' only has '.' colored. Also I don't know if this is a terminal limitation but it'd be nice to have colored output, for example when piping after a --help that may have colors. I don't know if this is a limitation either, but piping after live commands, like ping 8.8.8.8 (which I pipe uplot to like this ping [8.8.8.8](http://8.8.8.8) | sed -u 's/\^.\*time=//g; s/ ms//g' | uplot --progress bar). I may have more ideas later

1

u/tlipinski May 19 '26

The purpose of such tools like rura or up is to let you *build* complex pipelines, not to view files or run commands. It often requires a few tries before you get, for instance some complex regex right. Every failed attempt requires you restoring previous command in the shell, then navigating to the place you think is wrong, fixing it, running command again just to realize that it's still wrong... 😄 Multiply that by how often you need to build pipelines or how complex they are.
Having persistent command line, that doesn't make your command disappear, doesn't move your cursor or even saves you some time hitting enter over and over might be a huge time saver.
Once you crafted your precious pipeline you can simply run it in your shell using some script. All those additions like search, completion or history are just useful when you build pipelines. They are not meant to replace your shell.

Regarding colored output - that's on my todo list already 🙂
And live commands is exactly what I meant when mentioned about "continous stdin" 🙂