Cool! For me, the obvious question is: can you pipe commands and direct output to other web services? That's the real power of the shell, and would turn this into an incredible piece of API glue.
Yep! Piping will use something a little different from Unix syntax. (The next post should have a worked example.) Then to send your final output to a web service you'll just point a port at it.
Why use a different syntax for pipes? I think the power in this is that I should be able to quickly adapt to the shell based on existing knowledge.
google "hello world" | grep "python"
The syntax is evolving one feature at a time, and I'm not sure where it will end up, but at the moment I think references to previous command outputs are both more intuitive and more powerful than traditional pipe syntax. I'll say more about this in the next post.
Sounds interesting. When will the code be posted to GitHub?
Check out the chickenfoot project.
you should look at yahoo pipes and the data tools they have. you might discover the wheel already exists and is generally ignored by people who should know better.
I don't think we're building the same wheel. Can I install Yahoo Pipes on my own server? Can I re-use their code, or the pipes created by the community, in my own non-pipe project?
sounds great! I want to add a shell to a webgl game i am making, i'd really like to open the game up to be programmable from within the game and this sort of power/ease-of-use would be awesome! imagine importing all sorts of fun data and working on it within the context of a 3D game!
I like the idea. When I think web, I'd use it for scraping, rest-ful communication, and some cloud APIs. Especially on scraping, I'd imagine something like zombie.js on a command line with the ability to create virtual screen shots. Every shell seems to come with it's own language, but how about JavaScript? It could even be built in JavaScript too...
This looks very exciting.
How would I use it? Ideally, this is the sort of tool I'd like to use for setting up continuous integration and automated deployment of my software between different servers. So I'd be interested in making scripts that can work with systems like trac, mantis, svn, mercurial, and ftp across different operating systems (primarily Windows in my case), both on a machine/network and across the Internet.
From what I can see, this is fundamentally related to Microsoft's PowerShell, another replacement for text-based shells. It is a shell for (.NET) objects, much like ActiveShell is a shell for (JSON-like) objects. In fact, I wonder if you could use the JSON serialization mechanism in .NET to interoperate with ps cmdlets ("verbs")? It would be great to only invest in a single scripting language and have it work cross-platform.
Lars, that's one of the major use cases I'm interested in to drive this forward as a practical tool.
You'd need ports that provide access to trac, svn, FTP, etc, and you'd eventually want a way to run scripts outside of a browser tab, with cron-like scheduling, maybe by just running the JavaScript verb and port implementations on the server side with node.js.
You're right about the similarity to PowerShell. Interoperating with cmdlets on the local machine is an idea that I hadn't considered, but certainly would be a compelling feature. Probably something would need to be installed on the Windows host to provide a bridge between the browser and PowerShell.
Cool. I will have to keep my eye on this project.
I am a fan of goosh.org, a simplified version of this concept, and Powershell, who's piping of full .Net objects is very slick. I would love to see these two concepts merged together in an elegant way.
Sounds interesting, looking forward to the post on prototype.
Good luck. I would like to read more about it!