
Xiki: An amazing shell - jestinjoy1
http://techcrunch.com/2014/07/07/programmer-craig-muth-kickstarts-a-new-version-of-his-arguably-amazing-shell-xiki/?utm_campaign=fb&ncid=fb
======
zorbo
These alternative shells always get me really excited, until I try them out.
Then the drawbacks become immediately and very painfully obvious:

\- Some are extremely slow, especially those that rely on complete webservers
/ node.js / whatever as a backend

\- Memory-hungry. I've got an average of about 30 terminals open at all times.
50 Mb per terminal really is a bit too much. 10 Mb is the upper limit on what
a single terminal should ever use.

\- Don't work remote. If it doesn't work remotely without installation (and
none do), it's pointless to me.

\- Don't integrate properly. For instance, copy-pasting is suddenly painfully
impossible or unicode fails or it doesn't handle ncurses or escape sequences
properly.

\- Doesn't add anything that the history and copy-pasting don't already do
nearly perfectly.

\- Doesn't follow the "Simple things should be simple, complex things should
be possible" philosophy. For example, catting large (10mb) log files or a
binary file completely barfs it.

I wonder if Xiki is any different, as I haven't tried it yet. It seems
unwieldy to use. Why would I want to physically move the cursor to a previous
command 50 lines up when I can just do Ctrl-R <part of the command> and be
done with it?

This all sounds a bit negative, which isn't my intention. It's just that I've
become quite a skeptic when it comes to "(email|shell|editor|etc) reinvented"
claims.

~~~
KhalPanda
Wow, an average of 30 terminals at all times? Just out of curiosity... what
for exactly? Real-time monitoring?

~~~
mkl
I always have at least that many too. Not for real-time monitoring, just a
large number of projects and threads of thought, many of which last for weeks
or months. I do this for everything: I just totalled up all my currently open
terminals, browser tabs, documents, etc., and got to over 700, and it's only
that low because I've restarted a couple of times recently....

~~~
meowface
I suffer from the same problem of too many terminal windows and browser tabs,
and honestly it doesn't seem to help me much. It just dilutes my attention. I
always do a logoff or restart at the end of every day now, and that seems to
help a fair bit.

To keep track of what I need to do in the short term, I have a simple TODO
text file.

~~~
datashaman
Unrelated, but if you're using plain old text files for todo lists, you should
look at this: [http://todotxt.com/](http://todotxt.com/)

~~~
arvin
Or the Org Mode of Emacs

------
chx
IMO this should link to [https://www.kickstarter.com/projects/xiki/xiki-the-
command-r...](https://www.kickstarter.com/projects/xiki/xiki-the-command-
revolution) and not one of the most awful, bottom feeder sites out there. I
challenge you to find a single bit of information on the TC page that is not
on the Kickstarter page.

~~~
mastazi
Techcrunch has its gems too: [http://techcrunch.com/2014/01/04/silicon-valley-
lost-and-fou...](http://techcrunch.com/2014/01/04/silicon-valley-lost-and-
found/) [http://techcrunch.com/2013/04/06/how-i-started-
zerocater/](http://techcrunch.com/2013/04/06/how-i-started-zerocater/)

------
AgentConundrum
> _“Originally I created Xiki for my own use,” said Muth. “When I was supposed
> to be doing my boring job as a software dev at banks and insurance companies
> in Ohio 13 years ago, I started making this thing that let me run commands
> and navigate files directly from my notes. Ever since then I’ve found myself
> unable to resist working on it. I use it for everything.”_

Isn't this a bit concerning? It sounds like this was created on employer time
with employer resources, yet there is nothing about this in the Kickstarter
page itself. It seems like there could be a potential legal issue because of
this, but there is no reassurance that either it's already been cleared, or
that it's a potential risk.

Seems like a big oversight that might prevent some people who read this from
contributing.

~~~
jgmmo
Maybe he does own the IP outright. He negotiated for the right to create side
projects and has paperwork to prove it?

Or maybe he figures it's his because it's not within the scope of his
employment. i.e. -- has nothing to do with banks in and of itself.

~~~
jdc0589
> when I was supposed to be doing my job

No negotiating your way out of that. I know lots of people have done this type
of thing at work, but I guarantee you he didn't have anything in his
employment agreement that said "If I dick around instead of working and get
paid for it like I was working, everything is fine, don't even worry about
it."

That's a fire-able offense for any sane employer that doesn't have a 20% time
deal or something similar. Hell, most employers specifically address this in
the employment agreement.

I've got 15% time at my job, and I still wouldn't do this unless it was going
to directly benefit my company, including other people that work here.

~~~
jgmmo
Well I know I negotiate for the right to keep developing my own projects.
Also, I work remote, and to me -- time is fungible -- I work nights/weekends
etc. So if I work on a fun project 'during the workday' it is still mine,
didn't become my employers suddenly, I just have to make up the worktime.

~~~
pfraze
That's a major advantage to WFH. Just don't use company equipment when you do
it.

------
azinman2
Holy freaking crap that's amazing. I love how the video all of the sudden
starts to show 9000 features/ways it can be used. Looks like the paradigm
adapts well to many different common workflows.

It's really great to see someone really thinking from scratch about the shell
-- something that very rarely goes through any meaningful changes like this. I
hope this project goes far and becomes the new default.

~~~
anko
This reminds me of ACME
[http://en.wikipedia.org/wiki/Acme_(text_editor)](http://en.wikipedia.org/wiki/Acme_\(text_editor\)).
To me it doesn't look like something new at all.

The cool thing about this project is it doesn't interrupt how you use your
mouse. Using acme makes you learn how to use a mouse again like going from vim
to emacs makes all your keybindings screw up.

Not that i'm saying copying acme is a bad thing, that editor is really
underated.

~~~
biftek
I played with Acme the other day and was blown away. The everything as a
command idea is really powerful. Definitely underrated, would be great if it
got a modern reboot.

For the unfamiliar this video by Russ Cox covers it pretty well.
[http://research.swtch.com/acme](http://research.swtch.com/acme)

------
leorocky
I quite like fish and have been using it painlessly for nearly 6 months now. I
wish fish included an actual programming language that could replace bash
scripts, but the sane advice from fish devs is to use a real programming
language instead of bash or another shell script. Other than that I've become
quite dependent on the nice autocomplete and suggestions from fish. It just
works and I never have to deal with any problems once you get over the initial
learning curve bump which isn't that big.

~~~
barrkel
You can go a long way with bash; it's worth learning because it lets you glue
tools written in different "real" languages together very easily, as long as
they all talk text. There aren't many other languages specifically designed
for process control, orchestration and piping.

I don't like fish because it has almost no features, compared with bash.

~~~
simias
I've never understood why anyone would inflict oneself with bash scripting. If
you really need something portable you should use standard /bin/sh anyway
since bash is not installed by default everywhere (I believe many linux
distros don't even ship with bash anymore, but a lightweight clone called
"dash"?).

And if you don't care about portability out of the box, why not use... Well
basically anything else? Perl, python, ruby, lua, scheme, whatever.

The only shell scripts I ever write are basically a list of command to execute
sequentially. If I need something more complex (control flow, user input,
proper error handling, nontrivial string manipulation) I switch to some other
programming language, it's just not worth the pain.

~~~
jzwinck
Many Linux distros ship with /bin/sh being dash, but they also come with
/bin/bash. A lot of scripts obviously depend on bash, so distro maintainers
have had to either fix them to depend only on POSIXy "sh" or just put
#!/bin/bash at the top.

The reason to use dash instead of bash is speed and to a lesser extent memory
usage. The goal isn't to stop needing bash, it's to speed up boot times etc.
Or at least it was five years ago when this transition was happening.

------
TeeWEE
The whole bash shell is built around input/output. A command generates output.
Which might be input for another program. This forces commands to be non-
interactive, and just plaint text. But it comes with the immense power of
building great programs using functional composition. It looks like Xiki
breaks that in its core, and provides "UIX" ouputs to programs. I'm not sure i
like that complexity. I'd prefer the simplicity that bash provides.

------
stedaniels
> "When I was supposed to be doing my boring job as a software dev at banks
> and insurance companies in Ohio 13 years ago, I started making this thing
> that let me run commands and navigate files directly from my notes."

With all the stories of disgruntled developers complaining that their employer
took ownership of something they'd worked on in their _spare time_ , I
wouldn't be surprised if his old employers came a knocking.

If it wasn't for that, I'd likely already be backing the new version, it feels
very good to use. The video is very slick, there are some companies out there
making good money producing these things!

~~~
bencollier49
He would have to be very unlucky for that to happen, but admitting it online
was perhaps not the best move.

------
pmontra
Installed, started. xiki status says it's running but I'm back in my usual
shell and nothing works any different. No mouse interaction like in the video.
Maybe I'm missing something obvious, maybe the tutorial (Where is it?) or is
it an OSX only thing? I'm on Linux.

I started the web interface, used it to hook xiki to emacs, restarted emacs
and run into the unfixed "error: el4r-instance is dead" bug.

I stopped using xiki. Maybe I'll give it a try when I'll have time to
investigate but it's 2014. There are too many tools battling for mindshare and
if something doesn't have a good tutorial and doesn't work out of the box
isn't giving a good signal.

~~~
lpsz
With all due respect, this looks like an early-stage project. If everyone
adopts such a dismissive attitude, Show HN might as well not exist.

~~~
pmontra
The first commit in git is from 2008.
[https://github.com/trogdoro/xiki/commits/master?page=17](https://github.com/trogdoro/xiki/commits/master?page=17)
From [http://www.linux.com/learn/tutorials/778419-meet-xiki-the-
re...](http://www.linux.com/learn/tutorials/778419-meet-xiki-the-
revolutionary-command-shell-for-linux-and-mac-os-x) it turns out than "Craig
Muth, has been working on Xiki for ten years". Maybe not a mature project but
not an early stage one.

------
BPm
I actually like my shell as it is. I like the old fashion with no mouse
interaction except for scrolling. Is it just me? But I have to say the
interactive search is appealing.

~~~
thathonkey
My approach to CLI is basically: if I wanted to use the mouse, I wouldn't be
in the terminal. Having to reach for the mouse is a huge waste of time and I
only do it if I need to scroll (rare) or copy+paste (relatively common).

Although since I use OS X (Darwin) I don't always need the mouse to copy+paste
(ie. pbcopy -> cmd+V).

~~~
BPm
Yes! I agree completely.

There's also one more situation where we need the mouse: selecting a specific
text on the console to copy & paste.

------
dheera
Speaking of shells, I wish there were a shell inspired by python, able to
conveniently use python libraries (perhaps even auto-import them), but with
the convenience features of common shells. I can never remember the ghastly
syntax of bash.

~~~
omaranto
Maybe the now defunct pysh profile of ipython [1] is close to what you want.
(It's defunct because it is mostly unneccesary in recent versions of ipython,
that page shows how to get most (all?) of the functionality it used to
provide.)

For Perl instead of Python there are psh [2] and zoidberg [3].

[1] [http://ipython.org/ipython-
doc/dev/interactive/shell.html](http://ipython.org/ipython-
doc/dev/interactive/shell.html)

[2] [http://gnp.github.io/psh/](http://gnp.github.io/psh/)

[3] [https://github.com/jberger/Zoidberg](https://github.com/jberger/Zoidberg)

------
kevcampb
This feels very like what iPython notebooks provides, but applied to shell
commands rather than code.

It's a cute video, but I can't quite help feeling this is going to be far less
useful in practice than it's made out to be.

~~~
nodesocket
I tend to agree. The biggest leap for me was switching to oh-my-zsh (near life
changing). :-)

~~~
meowface
I love oh-my-zsh as well, but I ended up switching to prezto
([https://github.com/sorin-ionescu/prezto](https://github.com/sorin-
ionescu/prezto)), which is extremely similar but has less code and is
considerably faster. Shell sessions were taking more than a few seconds to
start up, and I'm using the latest MacBook Air.

------
jsmthrowaway
The fact that this shell has Twitter functionality is a signal, and I can't
decide if it's a negative signal or not. I've worked very hard to avoid a
Twitter capable refrigerator.

~~~
anon4
I think the means you can use it to script twitter functionality via twitter's
REST API.

------
signa11
umm, lot of these _can_ (which is the operative word here) be made to work
together with plan9's acme...

~~~
vidarh
A lot of these also works quite similar to Emacs (M-x shell).

------
spain
Seems like a lot of ideas from GNU Emacs and Plan 9 (such as interactive text
and evaluating within text buffers) rolled into one, so in that sense it isn't
anything revolutionary. Of course it could end up being something nice, but
the way the Kickstarter video rubs off on me makes me doubt it.

------
fit2rule
Sorry but the cognitive load for this shell is just too darn high. I
understand the power, I even get close to grok'ing the 'why', but I just don't
see how I can intuit all the various features from the app. Do I need to spend
a few hours doing a tutorial first? If so: forget it. I don't have time to do
that, not for a shell, no matter how fancy it is .. however, if there is a
neat and easy and fast way to learn these powerful features built-in, I'll
give it a chance. As it stands though, the video just makes me glaze over
about 1/5th of the way into it .. I'm impressed by the awesome power, but the
load is just too high.

------
m_mueller
There's at least one use case I want this for: Interactive documentation of
shell based programs. As a start, imagine a git tutorial with this thing -
beautiful.

------
jestinjoy1
The most revolutionist change to a shell. The feature i found very much
interesting is "in xiki commands can be run from the notes"

~~~
lucb1e
We used to call them shell scripts... I mean, it's not particularly new, only
now you have to ctrl+enter each individual command.

~~~
pbhjpbhj
I think the OP video's demonstrated use-case makes xiki preferable to creating
a shell script.

With a shell script if I want to run some copy-pasta from a blog post or
somesuch then I need to edit to remove non-script parts, then I'm flitting
between shells to make edits that will work. Then I use the script, and remove
it. All just to run a few commands; copy paste, edit in place and ctrl+enter
to execute seems far slicker to me (but haven't used it yet).

Xiki looks great for navigation too.

Currently I use bash/dash (Kubuntu) and the greatest change to me has been
discovering ctrl+R (surprisingly recently!) and a couple of scripts that I
made/modified following a post on HN that make an archive of input commands
and enable me to grep it easily.

------
notduncansmith
The visual file navigation looks like it would be a real step down. If I
already know the directory I'm navigating to, it would almost certainly be
less keystrokes to cd [first letter of first directory]<tab>/[first letter of
second]<tab>, etc. If I wanted to visually navigate files, I'd use Finder.

------
michaelmcmillan
It looks like a good solution to a lot of tedious problems, especially
considering navigation.

On the other hand, it seems like there's no boundaries for what problems Xiki
should solve.

Where do you draw the line? I would for instance never expect my shell to be
able to manage my database. It just doesn't make sense to delegate that job to
the shell.

------
the_eradicator
Most recent discussion here:
[https://news.ycombinator.com/item?id=7869246](https://news.ycombinator.com/item?id=7869246),
and previously here:
[https://news.ycombinator.com/item?id=4512928](https://news.ycombinator.com/item?id=4512928).

------
yepguy
I'm personally keeping my eye on the oh shell [0]. It adds some scheme
goodness to the shell without throwing familiarity to the wind.

[0]:
[https://github.com/michaelmacinnis/oh](https://github.com/michaelmacinnis/oh)

------
msie
It's cool, but I can't imagine it making my life any better over a Unix
prompt. What I really want is a Windows shell that acts exactly like my OSX
Unix shell. I did a little look but didn't see anything satisfactory.

------
robinho364
Really cool!

A few months ago, I started to use vim mode in shell, for the raw way is not
convenient. Furthermore, I have formed an similar idea of "interactive shell",
whereas I have to finish my GRE firstly...

------
5partan
Supporting 2 new text editors or IDEs: 4 months (likely Vim and Sublime, but
it depends on what everyone votes for - also which one is implemented first
depends on the votes)

\--> Please all vote for Vim :)

------
msie
For some reason I think I saw some of this in Smalltalk and Oberon.

------
ape4
I like that it can "run" things beside programs. eg URLs, phone numbers. That
seems like a good idea other shells could do.

------
jdong
To be honest, a lot of these functionalities really don't seem to fit into a
shell but into some sort of a GUI file manager.

------
alekratz
This reminds me of the TempleOS HolyC shell.

------
Cacti
The first part (filtering/searching/expansion) is pretty similar to emacs's
helm/anything.

------
dimillian
I need it. Anything similar already available?

~~~
vertex-four
Native Oberon.

No, I'm kidding, but Native Oberon is pretty much this as a (research)
operating system; the interface is a bunch of text editor panes, you type out
commands and run them by middle-clicking on them, commands tend to produce
output in the form of further commands you can run, and you can save these
panes as files at any time.

It's almost like a generalised version of the core operating system shown in
The Mother Of All Demos.

------
SimonDawlat
The video is amazing.

------
edlerd
looks like the vim browser with a bash file that can be commented (and run and
given to friends).

------
trollol
Great.. Wake me up when it hits 1.0.

~~~
sschueller
It is already at v1.0
([https://github.com/trogdoro/xiki/tree/master](https://github.com/trogdoro/xiki/tree/master)).
It has been under development for over 10 years.

~~~
lucb1e
This comment makes me wonder why he suddenly needs money for it now. Many huge
projects started without kickstarter, even if they receive lots of
contributions and donations nowadays, they never used to need it.

Hmm, and I remember some post on HN a few months ago about why open source
projects should not ask for money/donations in the first place. The crux of it
was that they basically become a company then: they work for money. People
will expect something for that money, and A) features might be made simply
because the developer feels he needs to do _something_ in return for they
money he's getting and B) people who donate a lot (i.e. have a lot of money)
get a huge say in the project even if their ideas turn out to be horrible in
practice.

~~~
pmontra
The TC post includes this quote from Xiki's author. "If this campaign
succeeds, the money will let me dedicate the time needed to bring this next,
drastically improved, version of Xiki to the world."

Apparently he's looking for about one year's worth of money to work full time
on Xiki. Why he didn't do that before, I don't know and it doesn't matter
much. But using Kickstarter he's able to be very specific about what one
should expect to get as a reward. Example: 35 $ buy a t-shirt and 10 votes for
vim or sublime support, no specific features. 2k $ buy a command for your
company. He writes "See the Twilio command in the video for an example". So
it's true that if you donate a lot you get more. If only companies from a
specific domain fund Xiki it could turn out to be a very domain specific
shell. However being strong on a vertical market could be a nice strategy.
Unfortunately it's out of Xiki's control.

