Wednesday, March 4, 2009

Really like Shell Sink

I stumbled across Shell Sink the other day. It's an appengine app that allows you to capture and tag all of the commands you run from a command prompt. That means that you can synchronize your bash history for several machines, and tag and annotate commands in the web interface.

This is such a great idea. I often find myself looking for some huge complex command that I ran on one machine, to run again sometime later. Of course I could manually search through all of my bash_history files, but then I would have to remember which machine I ran the command on.

Shell Sink allows you to save all of those commands in one place and search for them, so I don't have to worry about where I ran that complex command the next time I need it.

There are a couple of things I wish Shell Sink supported:

  1. Should allow people to delete old commands. If I run a command with some sensitive data on the command line (even though I know I shouldn't) I'd like to be able to delete that command from the Shell Sink history. Shell Sink does give me the option to disable command collection for a time, but I'm afraid that I'll forget to do that.
  2. It should aggregate commands. Right now it just lists your history as it would in a plain text file. It would be great if it actually aggregated your commands so that there is only one entry for 'ls' in my history.
  3. If it aggregates, it would also be great to have a counter for each command. So if I only have one 'ls' entry I can know that I ran it 500 times.

If you are a command line addict, then check out Shell Sink, and let the author know you like it.


1 comment:

Shlomo said...

Hey Allen, thanks for your post about shellsink. About your feature requests:

1. About the deletion, I agree this is an important feature that needs implemented. In the meantime if you have your shell configured correctly you can prepend sensitive commands with a space and bash's history will ignore the command, which means shellsink ignores it too. Instructions are here if that isn't working out of the box on your distro http://shell-sink.blogspot.com/2009/05/filtering-what-goes-into-your-history.html

2. Aggregating commands is much harder in bigtable than in a traditional relational database. This is one place where your pay the price for being in the cloud. I currently don't have plans for rolling up duplicate commands.

3. Counters are on my list of features to implement.

The most important thing to mention about my list of features is that since the project is totally open source anyone can work on them, so feel free to roll up your sleeves and help. I'm happy to give support and answer questions. https://launchpad.net/shellsink