Hacker News new | past | comments | ask | show | jobs | submit login
Xiki: The Command Revolution (kickstarter.com)
122 points by svm33 on June 9, 2014 | hide | past | web | favorite | 48 comments

I'll plant my lawn sign to lobby for support. I think this is such a completely new way of running a shell it's worth investing in to see how far it can get.

Maybe I am a computing retrofuturist, but I like anything that pushes towards a Plan 9 / Smalltalk / Jef Raskin like dynamic, configurable, adaptable, programmable, textual user interface.

Also, recognition is always better than recall. I hate the UNIXy command line. I have limited brain capacity and I don't want to lard it down with knowing that it's ssh -p but scp -P. If this can help with that, awesome.

>> ssh -p but scp -P

I hate inconsistent command line interfaces, too. If you type `ssh` it dumps usage information. Most commands will respond to `command --help` (but not ssh, irritatingly). Failing that, you can write shell functions to wrap your own interfaces around commands -- I do this all the time.

Exactly, and I believe that Xiki is trying to make that flow much more pleasant. :)

Thanks so much sunir! I love the unixy command line. I think there's a path to bringing command line haters and lovers together, to get us all creating and sharing commands that we can use with our UI method of choice.

Here's the github url for those who don't find the kickstarter helpful - https://github.com/trogdoro/xiki

Xiki has been there for a couple of years at least, because I remember trying it out more than a year back, had to install a lot of dependencies! Nevertheless, its an interesting project!

Yes, me too. Sounds like creator wants to get on top of it and clean all that up, so I hope this kickstarter succeeds. Great project and I want sublime support! :) Backed.

Indeed! Thanks so much for the support!!

Hey! Project creator here! I'll answer all your questions here and try and clear up the writing. Ask away.

This is a very interesting project! I backed it.

I've only tried Xiki in a semi-broken state for now, via the SublimeXiki plugin and with Ruby 2.0 (which mostly doesn't work).

One question I have is how are you planning to handle navigation? E.g. when a command produces large output, it isn't very convenient to scroll around in the file. I didn't see this addressed in the videos.

Some things that are unclear:

1. on kickstarter page: "getting Xiki working in other text editors, like Sublime and Vim." on github: "It has a web interface, but runs best from a Xiki-enabled text editor"

What is a Xiki-enabled text-editor, i.e. what text editors does it support currently?

(FWIW I don't like web-based editors, so it is quite important that the text editor is a real application. I edit blogposts/wikipages with vim and git too, wherever possible, because I just have a feeling of uncertainty that if I press the wrong thing / click the wrong place by accident the browser will loose everything that I typed)

2. security?

If anything can be a command then what happens if I open a malicious file? Do I have to be careful where I click? What if they use Unicode tricks to disguise the command?

3. predictability

similar to #2: how can I know what will happen when I "run" something if commands can be in any place, and interact with anything? Is there a way to preview what the command would do, and what it would interact with?

4. can I install as non-root?

I want to use the system ruby, and I want to try xiki without installing anything as root (except system packages provided by the distribution). The instructions on the github readme are confusing: it shows the sudo instructions, and some rvm instructions, neither of which meet my simple requirements.

I tried running 'bundle --path vendor/bundle', but it failed with an error:

   Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /usr/bin/ruby2.0 extconf.rb                                                                                                             
  mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

  Gem files will remain installed in /tmp/xiki/vendor/bundle/ruby/2.0.0/gems/json-1.8.1 for inspection.                                       
  Results logged to /tmp/xiki/vendor/bundle/ruby/2.0.0/gems/json-1.8.1/ext/json/ext/generator/gem_make.out                                    
  An error occurred while installing json (1.8.1), and Bundler cannot continue.
5. why ruby?

I'm not a Ruby developer, but I might want to try Xiki. Or is Xiki intended only for Ruby developers? But see #4 for the troubles I run into, it currently looks like one needs to know how to debug Ruby's build system in order to run your application.

1. Currently supports Aquamacs and Emacs. "Xiki-enabled text editor" means a text editor with a Xiki plugin installed. Which, in turn, means you can run Xiki commands right from that text editor (or IDE).

2. Yes, you need to be careful. Similar to being careful to which commands you paste into your shell, and which .sh files and scripts you run and which packages you install. It won't auto-run anything though. And since everything is plaintext, it should help people to review for malicious intent. Maybe some checking for special characters would be a good feature to add.

3. There's no way to preview. If you don't know what a command will probably do and don't trust the source, you probably shouldn't run it. There is a keyboard shortcut for jumping to the source code though!

4. Yes, you can run as non-root. The current version is a bit out of date, and has a rough install process (the Kickstarter is all about improving that). Currently you need ruby 1.9. I need to fix that soon - it probably won't be hard.

5. Ruby is a pretty decent language for manipulating text, and getting stuff done quickly, so it's a good fit for Xiki. You can make a Xiki command via a .py, .js, or .coffee file though, so you don't need to know ruby to make commands!

What's the memory usage like?

Last year I went to a tech talk where the creator of Xiki was showing off the product's features set. He has definitely put a lot of thought into it's design, and Xiki improves a developers workflow once you get use to the commands. I believe the creator also offered anyone who wanted to pair-program with him a call; definitely wish I had jumped on that opportunity.

The offer is still open. Let's pair! :)

I want to pair with a bunch of people during the campaign. I think misc pairing on open source projects is going to be a huge part of how we devs connect with each other. What better way to get familiar with a project super quickly than to pair with one of the core members. For the core members, the benefits include motivation, getting fresh ideas, and getting perspectives from new users.

My suggestion: lose the frantic, cheesy music in the video. It made watching the video thoroughly unpleasant.

Seconded. It's like you're telling me, "we don't believe in our product so have some cheesy music to up the hype". Music was worst part. I was trying to ponder your invention and failed.

Corollary: spend years working on product, ruin it with one stupid customer-facing decision like annoying music. Talk about your one-percenter.

Sorry you don't like the music. I showed it to a bunch of people and they said good things about the music.

The music was actually created via the xiki "piano" command (and then enhanced with garage band). I was going to emphasize that but ran out of time... There are 16 backers so far (and only a few are friends) so hopefully it hasn't ruined it for everyone.

I was also annoyed by the music. Way too many sounds going on. It's a nice demo though, but the video would be better without the music.

Be careful about feedback from friends (or even just showing your stuff to people IRL). Friends and family are often too nice to provide usable feedback. On the internet, people will be brutally honest which is awesome when you want to know of every single little defect with a product.

I don't think that describing it as just cheesy and annoying does it justice, although some people might get that feeling.

Music was a bit over the top but not sure if that was bad or good. It set kind of an epic and exciting ambiance to the video I think. Maybe a bit too much but not sure.

I think if the tool wasn't as awesome it would be too much but it is a badass tool so probably a soundtrack that epic is warranted.

That's nice, a piano command!

But its always better to roll out music that really fits than one that actually misses out the point. Now so many won't know the music came form that! You can maybe update the kickstarter page to include that.

On a side note, music is something that's universal to everyone. Something that we can use to connect with any other person on this earth! Have something really good or inspirational with less actual content in the video, it could still be a success! But if the background music isn't appealing enough, nor the product in the video no matter how great it is! (This is, of course, not the case with all!)

The music was fine, not that big a deal. Altogether the video didn't blow my mind like the short screencast on xiki.org did, but that may be because my mind was already blown.

Unfortunately I have to concur about losing the music. I found it so distracting that I actually couldn't focus on what the voice was saying.

Am I the only one here that really liked the video and the concept of Xiki in general? I thought it looked really interesting and I'm going to try it out tonight on my laptop.

I've been psyched about this project since it was brought up a month or two ago in a discussion about tree viewers here on HN. Its pretty compelling, even if it may not integrate well into developers' workflows. Now I've just got to find time to start using it...

What is xiki? Why does it bring the power of the command line to everyone?

The kickstarter page seems to assume I know what xiki is and why it's different from say bash.

I think it's struggling with the fact it's kind of a hard thing to pigeonhole or label, and people may need to watch both videos, perhaps even with pause/rewind, to perceive all its aspects.

There's overlap with IPython notebooks. There's command-aware autocompletion. There's direct-two-way-manipulation of textual artifacts.

Maybe it could be thought of as an "MVC" IDE, but in pure-text, where familiar Unixy commands can be the "VC" parts... and you don't so much "run" them once but position them for re-use, and their output can be made directly editable with effects on the original inputs. (As just one example, what if editing the output of "ls -l" was enough to change permission bits, owners, or names of files, or truncate them to a new length?)

It even reminds me a little of the Englebart "Mother of all Demos", in the surprising/dangerous depth behind simple outline-menus.

Note I'm just assessing from the videos: I haven't used Xiki myself. If I were using it, I think I might handle it like a loaded weapon: it seems powerful enough to do a lot of filesystem damage in a few experimental keystrokes!

Here is the Github repo - https://github.com/trogdoro/xiki and the official website - http://xiki.org/

Yes, and the extensions are similar to what the plumber provides.

Some discussion about Xiki from around two years back:


I can see a use for this, especially for technical FAQ building, I do a lot of that.

Not sure if this could ever be more than a power admin/developer tool. But good luck anyway!

Looks cool.

I am slightly concerned when it comes to security and "noobs" pasting commands without getting stuff.

Think rm -f ~/

Would be great for stuff that is to unique(only happens once ever) to write automated bash scripts for. The problem is that one might not know that in advance, and suddenly one has to scripify it for real.

At least make it tense and exciting:

(((RANDOM%6)==0)) && rm -rf / || echo Click

I get excited each time I see an attempt to improve the shell, e.g. Mosh [1] and TermKit [2]. I believe that there is room for improvement. But I also think that the UI itself might be in its best form because it is as simple as: type the command, hit enter, get the result. And also equally important, its very efficient.

I don't see that it can replace Bash but it can be useful in some cases. I really liked the Git functionalities.

[1] http://mosh.mit.edu/ [2] https://github.com/unconed/TermKit

Issuing commands to a computer with a "mouse" -- ridiculous! It will never work.

More seriously-- why does this need funding? If the idea is clear enough and people see a need for it, someone will help finish it or write their own version as open source.

Having watched the second video, which is better, it looks to me like there could be some good ideas here; but a lot of them could be implemented on their own. Some could even be done with short shell functions in bash.

I think Xiki might help me escape the editing environment of the shell and REPLs provided via the shell (specifically the bash shell of Mac OS X Terminal, and various Scheme REPLs.) I want to work just as I can in TextEdit, or for that matter in the humble HTML textarea: put the cursor anywhere and start typing or deleting. The Mac OS X program Eddie permits some of this.

Using zsh convinced me that clever and dead-easy autocomplete and hinting is what will save textual interfaces; I don't have precise metrics but it really feels like pimp-slapping tab and ctrl-r all the time saves me a lot of typing.

This project seems to take that idea in a really cool direction.

Makes me want to try it.

I watched the whole video, and I still have no idea how it would improve my life compared to using bash...

Try also the 'Older Video' further down the page; it may especially help those familiar with usual shells/editors.


There's some negativity floating around here with regards to the video, but I'm glad I watched it before reading the comments. The video clearly shows what Craig has in mind for this tool, and the music gives some character too. Best of luck with this campaign!

This made me cranky. "What if?" Why on earth would I want to juggle like this?

This looks like it brings the work of Native Oberon's TUI[0] to *nixes. Awesome!

[0] http://www.ethoberon.ethz.ch/eve/NOVPC.png

The git navigation actually looks amazing.

Is it supports SSH and curses applications (e.g. vim)? I didn't see it in the videos.

There's an experimental web interface that's part of the project. I imagine that an ncurses interface could be built on top of the xiki API in some fashion, although I don't think that is really a use case that the creator has envisioned per se.

Reminds me of https://github.com/unconed/TermKit

I really don't want or need this. It's solving a problem I don't have.

Thanks but I'll stick with fish shell. http://fishshell.com/

It looks like it could be a lot more than what fish brings to a regular terminal. Don't get me wrong I use fish everywhere nowadays but this good be way more.

Looks like. I have little faith that this guy will be able to implement it from what I saw.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact