

Reimagining the Windows Command Line - tltjr
http://tltjr.github.com/2012/11/08/reimagining-the-windows-command-line/

======
manuscreationis
This looks interesting, the tabbed effect is a major draw for me personally,
but I feel like hes got a bit of a price tier issue with the rewards on the
kickstarter...

His target price for the released product is hopefully $10 ( a good deal )

The $20 pledge gets you 2 licenses Cost Per License: $10 Additional Perk:
Nothing

The $50 pledge gets you 1 license Cost Per License: $50 Additional Perk: Beta
Access

The $100 pledge gets you 5 licenses Cost Per License: $20 Additional Perk:
Immediate Access

And that's just a small analysis of those 3 price points. The higher points
also seem a little off to me as well. It just seems odd to have the Cost Per
License to vary so wildly, in my unsolicited opinion, anyways.

I understand trying to play to the draw of people wanting quicker access to
use the tool, but his pricing model creates tiers that are counter-intuitive
to people who want to contribute, but do not want to receive what could be
perceived as a poor value for the cash they have available to contribute.

~~~
greenyoda
If you want a tabbed Windows console, take a look at "Console":

<http://sourceforge.net/projects/console>

I've been using it for a while, and it works pretty well.

From the project page: " _Console is a Windows console window enhancement.
Console features include: multiple tabs, text editor-like text selection,
different background types, alpha and color-key transparency, configurable
font, different window styles._ "

~~~
mc32
ConEmu is pretty good too, in terms of customization, etc.

<http://code.google.com/p/conemu-maximus5/>

ConEmu starts a console program in a hidden console window, and provides an
alternative customizable GUI window with various features:

------
tinco
The features sound nice, they could use a bit more slick design ;) Why not
make it for the Metro UI? Might rock..

If you suggested you would dive into the WinAPI and use your C++ skills to
write a new console _engine_ I would gladly pledge 50 bucks or more.

I'm afraid many people will pledge thinking this will bring a usable console
emulator to Windows, instead of just another Console2 like hack around the
severely limited windows api.

I think 5 years of .Net experience won't cut it for that ..

------
runjake
For what it's worth, it's very, very buggy on Windows 8 x64. I couldn't get
tab completion working, and after the first dir command, everything went
downhill. It began behaving like a text editor. When I typed or backspaced, it
backspaced over the prompt and everything else. The kickstarter video was
pretty promising, though.

Might I suggest you compiled x64, too? x64 seems to be more commonly sold over
x86 these days -- at least in the US.

~~~
tltjr
Thanks for the input. I haven't tested on Windows 8, so I'm not too surprised.
Maybe I'll make separate installers if there is a lot of interest.

------
mixmax
This might be slightly off-topic, but am I the only one that thinks that
command line tools are archaic with some pretty serious drawbacks? I see and
acknowledge the power they can wield in the right hands, but for mere mortals
it's a terrible experience. Especially on a windows box.

I've started learning Symfony2, and the default is to get it up and running
using the dependancy manager composer, a commandline based tool. I've spent a
week trying to finish the simple task of installing the framework. No success.
Now, I don't make a living programming, so I'm definitely at the shallow end
of the programming pool. But still. A week.

There are several problems as I see it:

\- No discoverability. You are given no clues whatsoever as to what commands
are available to you. You have to know exactly what you want to do. Yes, you
can read manpages, forum posts, etc. but finding, learning and memorising a
whole set of commands used in some program you might never use again seems
like a terrible waste of productive time. Without the manual you're flying
blind.

\- All sorts of opaque dependencies. Composer for instance apparently requires
git installed for it to work. But it doesn't say that anywhere. You also need
to define paths, etc. which isn't covered anywhere.

\- A million minor flaws and bugs. Until now I've run up against at least a
few bugs, either in composer or in some other part of the chain of software.
Only opaque general warnings are given, and finding out exactly what is wrong
is next to impossible.

\- Terrible UI. Copying and pasting doesn't follow convention, copying from a
commandline to a notepad inserts linebreaks that you have to clean up
manually, there's no way to maximise the cmd.exe window. The list of basic
usability flaws goes on.

This isn't meant as trolling or ranting, although I must say I'm genuinely
alienated by the commandline. I understand that text is great way for programs
to talk to each other, I understand that the commandline is a great way to
talk to a remote server, and I understand the power that piping, etc. gives
you, so it's not like I'm denouncing the power that's inherent in the tool.

The problem is that the learning curve is tremendously steep, and I just don't
feel it's worth it. To do the simplest thing I need to learn how a whole
ecosystem works. I also have to page the information I need together from a
number of different sources that I first have to find. It's kind of like
having to build a car just to ride down to the baker to get some bread. It's
quicker to walk than assemble a car before you can drive.

~~~
w0utert
>> _This might be slightly off-topic, but am I the only one that thinks that
command line tools are archaic with some pretty serious drawbacks? I see and
acknowledge the power they can wield in the right hands, but for mere mortals
it's a terrible experience._

You've asked the question and answered it yourself ;-)

Using a GUI over the CLI is probably preferred for 90% of the tasks 95% of the
users typically perform. I don't agree with all the drawbacks you listed, but
I can see where they are coming from. The CLI is simply not so great for
typical computer users.

That said, a good CLI is absolutely invaluable for power users, system
adminstrators, developers, etc. There's only so much you can conveniently do
through a GUI, as soon as you need to compose multiple complex actions into a
script or perform advanced data extraction, search operations, automate tasks,
etc. there really is no alternative for a good CLI.

The funny thing about a powerful CLI is that it isn't very accessible unless
you invest quite a bit of time mastering it, but once you do, you'll find out
that you can do many (most?) things more efficiently by typing up commands and
composing them into scripts. Once you get proficient using the CLI, you'll
find yourself using the CLI for all kinds of things you used to do through a
GUI before. For example selecting and copying around files or extracting
archives, personally I think CLI tools (in my case unix CLI tools) to be much
more flexible and convenient than something like WinZip.

But just like most people will never use their computer to write scripts or
computer programs, they will also never invest time in learning the CLI. And
usually they don't really need to anyway, just like most people don't need (or
want) to learn how to change the oil on their car themselves, no matter how
easy it is if you know how to do it. It's not something they enjoy learning
about, but that doesn't mean changing oil is useless or difficult.

The lack of a proper CLI in Windows 9x and XP has always bothered me a great
deal, as a developer and power user. It was one of the main reasons to switch
to Linux and later OS X. Apparently these days Windows has a pretty good CLI
with PowerShell, but the Windows train has already departed a long time ago
for me. But it's still a good thing Microsoft finally decided they had to
provide power tools like a CLI, it's one reason less blocking me from every
going back to Windows (a lot of others still remain though ;-)

~~~
mixmax
That's a great reply!

The problem is that people like me, who are somewhat technically inclined but
not fulltime programmers, fall in between two chairs. I need to do some
reasonably advanced stuff, but I face a steep learning curve before I can do
it, and I'm not sure it's worth it since it's not my main occupation.

~~~
tinco
Just a small note to your comment above, the issues you mentioned with
Symphony, they are not just because you haven't "mastered" the CLI. It sounds
like they are true bugs in whatever manual or documentation accompanies
Symphony, and it would be a good idea to report your experience with setting
it up on their issue tracking system.

I think many people often discard technologies for their implementation rather
than their ideas.

------
beatgammit
I'm actually glad for the inefficiency of the Windows command-line. Every time
I boot up into Windows to test something, I'm reminded of how much I hate it.
Since moving to Linux, development is just easier in every way:

* viM instead of Visual Studio has made me a better programmer * think more, guess less * I can keep customizations when I remote in and patch production code * Bash is much more productive than .bat files * Piping is amazing (cat file | sed | awk | ...) * Tons of documentation online

If Windows had a decent command-line (with decent documentation of course), I
might convince myself to put up with less malleable tools just to play games
without rebooting.

Don't get me wrong, Windows is fine, but it's not Unix. A better command-line
app can't change that.

~~~
gizmo686
>If Windows had a decent command-line (with decent documentation of course), I
might convince myself to put up with less malleable tools just to play games
without rebooting.

Isn't the point of a commandline that it makes basic tools far more malleable?
For example, I recently was working with an OCR tool that took as an input 1
image file path, and an output name, and extracted plaintext from the image.

If this were a gui tool, I would be stuck manually running it on hundreds of
images at once. As a command-ling tool, I can do: `find . | grep *.jpg | xargs
-n 1 -I{} | tesseract '{}' '{}'`

------
joelverhagen
One of my biggest pet peeves about the original "cmd.exe" or PowerShell is
that resizing the window is not pixel-precise. Thank you for making this a
part of wish! The snapping to the left and right of my screen works really
well.

Although it seems it is not working well on Windows 8 x64, I am having a good
experience on Windows 7 x64.

A couple of suggestions:

\- Wish takes a while to become responsive after starting the program (3-4
seconds for me). I am not sure if this is just me, I just wanted to make you
aware!

\- Add a keystroke for clearing the terminal. I am addicted to Ctrl + L in
bash.

\- Perhaps consider adding select to copy.

Keep up the good work, and I'll keep an eye on this project :).

~~~
tltjr
All great suggestions, thanks! I'll take a look at all these.

------
alpb
Man, this sounds like the best thing ever happened to cmd.exe, I will give it
a try and back it on Kickstarter. But I think such a project should be
developed under an open source license and maybe licenses can still be sold
like Textmate.

~~~
alpb
A few suggestions:

* Make shortcuts for tab splits in both vertical and horizontal

* Tab titles are not so necessary, right? Just draw a line between vertically or horizontally split Windows, like iTerm2 does (it is really neat).

* Word-wraps?

* I was in c:\demo, I wrote a nonexisting command (let's say lls), now I'm in c:\program files\wish.

* On a prompt, I can use Backspace to delete PS1-like string, and after deleting something and pressing return, it crashes

* Add it to PATH so that people can run it via Run window (Windows+R).

* "set" command runs without params in cmd.exe, <http://technet.microsoft.com/en-us/library/bb490890.aspx> this doc might help.

I have recently joined Microsoft and I was using Linux-OSX before that for
work and I miss zsh+iterm2 quite a lot.

~~~
tltjr
Thanks for all the ideas. The prototype is very buggy. I mostly wanted people
to get a feel for the vision. I really like your feature suggestions and will
definitely take them into consideration.

~~~
alpb
I'm still figuring out some ideas but dude, make this thing open source. This
will be really better.

------
SiVal
For most of Microsoft's lifetime, I've wondered why MS didn't just build a
unix-style command line into Windows, providing a major upgrade to the
ridiculous DOS. As a Windows dev, I always downloaded unix utilities for DOS
and the first thing I put on any new Windows box is Cygwin. After decades of
the same ol' DOS, it's obvious that MS just doesn't care about the command
line.

One reason I switched to Mac for Web dev is the tightly integrated unix
command line. I love it, but I don't think Apple does. I don't think the
integrated unix CLI is any emblem of enlightenment on Apple's part; it's a
historical accident. A company that believes that even granting users a "files
and folders" view is giving them too much power (iOS) is no stalwart defender
of the command line interface. As we make the Windows -> Metro, Mac -> iOS
shift, the time may come when any command line access to a commercial OS is
part of a "developer tools" package available only to "registered" developers
who have "signed zee papers."

I've only used Linux servers for years. I wonder if I'll end up a few short
years from now with some sort of hackers' Android laptop, built with Apple-
quality hardware/software integration by somebody like Samsung for the niche
of people who want real computers instead of media purchasing appliances.

~~~
drblast
Seriously, MS has been going toward easy scripting for years:

<http://en.wikipedia.org/wiki/Windows_PowerShell>

And Powershell ISE is like bash with Intellisense.

You can access .Net from Powershell and pretty much do anything you want. You
can easily write new commands in C#.

Everything you want is already there. You just have to step slightly out of
the Unix mindset to find the Windows equivalent. And I'd have to say that the
powershell idea of passing objects around instead of text is exceptionally
useful.

~~~
gizmo686
Whats an object? Some type of file?

~~~
drblast
I can best explain via example. Let's say I want to iterate through a
directory and do something to each file:

    
    
      ls C:\ | foreach{echo $_.Name}
    

That will print out the file name. The $_ variable represents each file object
that ls returns. Let's say I want the file creation times instead:

    
    
      ls C:\ | foreach{echo $_.CreationTime}
    

Or just the day of the week the file was created:

    
    
      ls C:\ | foreach{echo $_.CreationTime.DayOfWeek}
    

It's incredibly powerful. And the default is always a text representation of
the object anyway, so it seems like text is getting piped, just like Unix. If
you do this:

    
    
      ls C:\ | foreach{echo $_}
    

You get a typical directory listing.

------
airfoil
Nice work!

I played with it for a bit and one thing I noticed was that the "Home" key
took me to the beginning of the line/prompt instead of the start of my input.
Also if I backspace far enough it will start to kill my prompt.

One thing that would make this awesome for me is emacs keybindings.

Overall though, I think this has nice potential to be a super useful tool.
Thanks for sharing!

~~~
tltjr
Thanks for the feedback. The UI is a bit of a hack for the prototype and will
be a more proper control for release. Emacs and vim keybindings are on my
feature list. I think Ctrl+P and Ctrl+N work for command history in the
prototype, but don't quote me on that.

~~~
airfoil
Good to hear. Yours is the first kickstarter project I've ever backed. Thanks
again for making this available.

------
RyanMcGreal
Quick note (Windows XP x86): every time I try to switch from Powershell to
CMD, I get multiple "Keyboard History Utility has encountered a problem and
needs to close" error dialogs followed by Wish crashing.

~~~
tltjr
Thanks. I'll make a note to fix that.

~~~
RyanMcGreal
Thank you! Tool looks promising but I wasn't really able to test it out
without it crashing.

------
kuida0r3
When I work on windows, I just use cygwin with the mintty shell to get
productive with a familiar look&feel. What am I missing with this setup that
Wish fills?

~~~
tltjr
A lot of Windows users (like myself) are somewhat committed to tools like
Powershell in addition to Cygwin. I currently keep both Git Bash and
Powershell open so I can switch back and forth as needed. Wish allows me to
switch between these seemlessly with a common set of features across both.

~~~
kuida0r3
Ah that makes sense. Thanks for clarifying.

------
skrebbel
I want this, bad, but I'm afraid of depending on little one-developer tools.
How much do I pledge to make you consider open sourcing it?

------
mariusmg
There is already a full featured (including autocompletion), stable windows
CLI called ConeEmu (available at <http://code.google.com/p/conemu-maximus5/>
).

Also, cli in wpf ?! Come on....

~~~
tltjr
I mention ConEmu in the Kickstarter post. It is an excellent alternative. As
for using WPF for a CLI, I think it adds some useful features. At the end of
the day, a tool either makes your life easier and you more productive, or it
doesn't. I think this tool can add a lot of value.

------
nsxwolf
Is this a Windows port of wish (WIndowing SHell), or an all-new, confusingly
named project (WIndows SHell)?

<http://en.wikipedia.org/wiki/Wish_(Unix_shell)>

~~~
tltjr
Quite a few people have brought this to my attention, and it is unfortunately,
a confusingly named project. I was unaware of the other project and will
probably consider renaming my project if it gets funded. Thanks for pointing
this out though.

------
Locke1689
I'm a fan of ConEmu[1]. I've only been using it for a month or so now but it's
pretty good.

[1] <http://code.google.com/p/conemu-maximus5/>

------
dredmorbius
<http://www.gnu.org/software/bash/>

Alternately: <http://zshwiki.org/home/>

/thread

------
Osiris
I've never supported a Kickstarter project before, but I pledged to this one.
I use Mac at work but PC at home and I would LOVE to have a better unix-like
command line on the PC.

------
alexholehouse
_Most features are incomplete_

Sounds all too familiar :-).

I don't have a windowsbox available right now, but demo looks great.

------
bashzor
Not so much "reimagined" as "an improvement for windows' command prompt" it
seems.

------
Tsts
Windows is a dead OS walking. My humble advice is instead of learning Wish,
get a Linux VM and start moving your skillset, aps, ets.

~~~
vitalique
Check your facts, for example here:
<http://www.w3schools.com/browsers/browsers_os.asp>.

See, your 'dead OS' is not walking - it is marching bravely here and there and
all over the planet, led by army of Windows admins. Who, being just as smart
as their other-OS-admin-brothers, are always looking for better tools to do
their job.

~~~
samspot
It's ironic that linux is dying slightly compared to last year (according to
the link).

Not that I think linux is going anywhere :)

