== Description A ruby web shell that has autocompletion and readline behavior. It uses websockets, repl.js, readline.js and ripl for the shell engine. == Install Install the gem with: sudo gem install nirvana == Usage Your browser must have html5 websockets support. To use, start a websocket server and open nirvana in a tab # On a mac $ nirvana # Everywhere else $ nirvana | command_to_browser_path If you close the tab, the path to nirvana's html page is (for reopening) $ echo $(dirname $(gem which nirvana))/nirvana/public/index.html To see what options nirvana takes (mostly options like ripl): $ nirvana -h Once you're in the nirvana web shell, autocompletion should work better than irb's (argument autocompletion): >> Bo[TAB] >> Bond >> Bond.const[TAB] Bond.const_defined? Bond.const_get Bond.const_missing Bond.const_set Bond.constants >> Bond.const_g[TAB] >> Bond.const_get :Ag[TAB] >> Bond.const_get :Agent Also notice that a subset of readline's functionality is available. Try C-l, C-r or C-p and they should do what readline normally does. For more keybindings, see {readline.js}[http://github.com/cldwalker/readline.js]. == Customize Since nirvana uses ripl under the hood, most shell behavior is customizable with ripl plugins which get loaded from ~/.riplrc. See {ripl}[http://github.com/cldwalker/ripl] for more. == Links * {ripl}[http://github.com/cldwalker/ripl] * {readline.js}[http://github.com/cldwalker/readline.js] * {repl.js}[http://github.com/cldwalker/repl.js] == Bugs/Issues Please report them {on github}[http://github.com/cldwalker/nirvana/issues]. For javascript issues, report them on {readline.js}[http://github.com/cldwalker/readline.js/issues] or {repl.js}[http://github.com/cldwalker/repl.js/issues] as appropriate. == Credits * {rkh's brirb}[http://github.com/rkh/brirb]: Original prototype which inspired this project == License nirvana is MIT licensed. nirvana comes bundled with other libraries which have the following licenses: jquery (GPL2 and MIT), jquery.hotkeys plugin (no license), repl.js jquery plugin (MIT) and readline.js jquery plugin (MIT). == Todo * Tests * Easier way to reopen an existing session * Load ~/.irb_history into readline.js * Customizable html and js * Use text area for multi-line input * See readline.js and repl.js todos for javascript todos * Possible plugins for sinatra and em-websocket-server