Aiming for #2
Recently, I lost several weeks worth of data. I'm not talking about code or documents, but something almost equally valuable to me. I lost several weeks of bash shell history. You see, I rely heavily on bash's Ctrl-R feature to find previous commands. It's an amazing feature; every time I'm watching another person use bash and actually manually type out something like
Bash was designed a long time ago to run on big high-uptime multiuser servers, so I accept that it isn't proper Crash only software. The only time bash saves the history of commands you've typed is when the shell cleanly exits. It will happily run weeks at a time, and if your computer locks up, you accidentally hit Ctrl-Alt-Backspace, whatever...boom. All gone.
This was not the first time this has happened to me. However, I decided it would be the last. I considered downloading the bash source code. Thinking about it more though, I realized that bash probably had no notion of a mainloop where I could just g_timeout_add(7000, save_history). Then there were other considerations such as trying to do all this in a portable fashion, and the fact that I was somewhat annoyed at the time that my last hacking on GNU software was just seeing the light of day in the Emacs 22 pretests 5 years after writing it.
I've always been interested in shells (in the sense of primarily text-driven interfaces). I wrote a simple one for the Mugshot server that turned out to be surprisingly useful relative to how long it took me (a few hours) to write.
Did you know that GNOME Terminal is the #2 Linux application (almost certainly tied with bash if it was counted) according to Mugshot?
Anyways, I'll stop rambling about the backstory here and get to the point.
Hotwire is my prototype of an interactive hybrid text/graphical shell for developers and sysadmins.

The developer wiki explains a lot more about what it is, so if you want to learn more you should click there first (if you read this far, you probably already did), then keep reading here.
Hotwire is definitely still in the prototype stage; there are bugs and things that could be better. You're not going to rpm -e gnome-terminal today.
However, what I've concluded thus far is that not only is replacing the combination of terminal+shell+/usr/bin/ssh feasible, we can do a lot better.
At this point, you get another story. A few months ago I had Windows on my new laptop, and I decided to try using IE7. It had tabs, which I required. I wondered how usable it would be relative to Firefox. For a little while I used it, was surfing around, making tabs...and it seemed OK, except...there was something wrong with the URL bar. It actually took me a little bit to realize what it was - its completion doesn't strip of 'www.' as a prefix (or something), and its ordering of completions seems to be alphabetical rather than Firefox's by-recency.
Just like Ctrl-R in bash, I rely on Firefox's intelligent URL completion in the address bar. I never use bookmarks. IE7 was just not usable for me because of this. I downloaded Firefox. Now of course there are other good reasons to use Firefox, but what really motivated me to click that download right then was the completion.
I like to think Hotwire has some small-scale but big-impact fixes like this. Now for you those fixes may not be the same as me. Personally, I love the fact that history is searched and displayed by default, but for you perhaps it's the fact that the 'rm' command moves items to ~/.Trash instead of deleting them permanently (opening the door to an 'undo' command). Maybe for someone else who loves nautilus-open-terminal, it's having some of the functionality of both in one window.
I could go on, but Hotwire is only just about a week and a half old, and it doesn't yet have that many amazing features. But again, what really strikes me is how much potential there is. Being written in Python, it's so easy to hack. If right now it doesn't have that fix for the terminal/shell you always wanted to do, it's probably really easy to add. It's also a framework where we don't have to care about backwards compatibility with considerations such as the output of the 'ls' command, what keybindings do, etc. It's a canvas, on which we can sketch out and prototype interesting new ideas for a new developer/sysadmin shell.
If you're interested in hacking, check out the Developer page, clone the source tree, and send patches/feedback to the Google group.
../configurefor the 20th time in a row instead of Ctrl-R con RET, I have to resist the urge to lean forward and hit Ctrl-R for them.
Bash was designed a long time ago to run on big high-uptime multiuser servers, so I accept that it isn't proper Crash only software. The only time bash saves the history of commands you've typed is when the shell cleanly exits. It will happily run weeks at a time, and if your computer locks up, you accidentally hit Ctrl-Alt-Backspace, whatever...boom. All gone.
This was not the first time this has happened to me. However, I decided it would be the last. I considered downloading the bash source code. Thinking about it more though, I realized that bash probably had no notion of a mainloop where I could just g_timeout_add(7000, save_history). Then there were other considerations such as trying to do all this in a portable fashion, and the fact that I was somewhat annoyed at the time that my last hacking on GNU software was just seeing the light of day in the Emacs 22 pretests 5 years after writing it.
I've always been interested in shells (in the sense of primarily text-driven interfaces). I wrote a simple one for the Mugshot server that turned out to be surprisingly useful relative to how long it took me (a few hours) to write.
Did you know that GNOME Terminal is the #2 Linux application (almost certainly tied with bash if it was counted) according to Mugshot?
Anyways, I'll stop rambling about the backstory here and get to the point.
Hotwire is my prototype of an interactive hybrid text/graphical shell for developers and sysadmins.
The developer wiki explains a lot more about what it is, so if you want to learn more you should click there first (if you read this far, you probably already did), then keep reading here.
Hotwire is definitely still in the prototype stage; there are bugs and things that could be better. You're not going to rpm -e gnome-terminal today.
However, what I've concluded thus far is that not only is replacing the combination of terminal+shell+/usr/bin/ssh feasible, we can do a lot better.
At this point, you get another story. A few months ago I had Windows on my new laptop, and I decided to try using IE7. It had tabs, which I required. I wondered how usable it would be relative to Firefox. For a little while I used it, was surfing around, making tabs...and it seemed OK, except...there was something wrong with the URL bar. It actually took me a little bit to realize what it was - its completion doesn't strip of 'www.' as a prefix (or something), and its ordering of completions seems to be alphabetical rather than Firefox's by-recency.
Just like Ctrl-R in bash, I rely on Firefox's intelligent URL completion in the address bar. I never use bookmarks. IE7 was just not usable for me because of this. I downloaded Firefox. Now of course there are other good reasons to use Firefox, but what really motivated me to click that download right then was the completion.
I like to think Hotwire has some small-scale but big-impact fixes like this. Now for you those fixes may not be the same as me. Personally, I love the fact that history is searched and displayed by default, but for you perhaps it's the fact that the 'rm' command moves items to ~/.Trash instead of deleting them permanently (opening the door to an 'undo' command). Maybe for someone else who loves nautilus-open-terminal, it's having some of the functionality of both in one window.
I could go on, but Hotwire is only just about a week and a half old, and it doesn't yet have that many amazing features. But again, what really strikes me is how much potential there is. Being written in Python, it's so easy to hack. If right now it doesn't have that fix for the terminal/shell you always wanted to do, it's probably really easy to add. It's also a framework where we don't have to care about backwards compatibility with considerations such as the output of the 'ls' command, what keybindings do, etc. It's a canvas, on which we can sketch out and prototype interesting new ideas for a new developer/sysadmin shell.
If you're interested in hacking, check out the Developer page, clone the source tree, and send patches/feedback to the Google group.

zsh
Anyways, the history thing was really just one of many reasons to sit down and write out what a shell free of backwards compatibility and a 1970s teletype inteface could do.
(Anonymous)
Re: zsh
If you want bash to save the commands you type on the fly in bash adding this to your bashrc should to the trick:
* Make Bash append rather than overwrite the history on disk:
shopt -s histappend
* Whenever displaying the prompt, write the previous line to disk:
PROMPT_COMMAND='history -a'
(from http://www.ukuug.org/events/linux2003/pa
Matt
I might, just might get interested in hacking again after several years of atrophy.
Note that app stats are severely skewed towards the type of user that enable them, good old selection bias again. It doesn't actually mean that gnome-terminal is the #2 used app. Anyway that doesn't matter.
You should take a look at things that have been done before, at least to get ideas. I was about to suggest Powershell and Automator, but I see they're already listed on the wiki. Excellent. Also yahoo pipes. This kind of project will be enormously more useful if it can integrate with the web. Also take a look at ipython. It's the best interactive shell. Anyway let me read more before I say more stupid things.
ipython, pipes
I had heard of ipython a long time ago, just briefly looked at it again, glad you mentioned it. I added it to the related projects section:
http://submind.verbum.org/hotwire/w
Yahoo pipes is definitely an interesting thought. I can see it being very useful to be able to easily integrate web service calls (or even just http GETs) into hotwire pipelines, like the Automator example which downloads links from a page.
I opened up the wiki to anonymous editing.
(Anonymous)
What bout..
its different.. but maybe you can use something from it.. i'd love a more visual power shell/terminal window..
(using ubuntu 7.04 compiled just fine.)
~Rob
http://sn0n.com/
Re: What bout..
If you're interested in trying things I'd love it if you tried out Hotwire too =)
(Anonymous)
^R string ^O
^O will take whats on the command line and execute it immediately (like ret does), but then insert the next line in the history onto the command line. Invaluable!
Re: ^R string ^O
(Anonymous)
Some ideas
Having a user-friendly terminal would be nice for beginners (and would help them to improve their shell skills).
I was also thinking of some possible completion stuff, having a look at the bash way to do.
Today, it seems that it is implented throug an horrible bunch of scripts...
Maybe some XML command-line interface specification standard (declaring long/short options, parameters, subcommands...) could help. It could be used by shell developers to easily provide completion, and by software developers to auto-magically manage their program's command-line arguments (through some code generation lib based on the XML declaration ?).
Anyway, this project sounds nice. :)
sebn
Re: Some ideas
As far as mostly text-driven interfaces for non-developers go, I think something like the GNOME Deskbar is probably a better approach:
http://live.gnome.org/DeskbarApplet
I want Hotwire to be an application that the first time one of those experienced users sits down and tries it, they say "Wow!" and immediately feel the power. I'm not saying it's there right now, or will be tomorrow, but that's the goal.
Once you convert the experienced users, the less experienced ones tend to follow I think.
The completion stuff is definitely key - right now I'm almost done getting the mashing-TAB-fills-stuff-in aspect working from the baseline bash shell. Some interesting future work might be understanding bash_completion files (will not be pretty).
GCI (http://www.stanford.edu/~dramage/gci/
However - personally I think right now that we can have the basic completion, get it to like 70% (it's basically there now), and work more on for example having a really kick ass experience using ssh, finishing the Windows port, etc. Then revisit completion.