TermKit is the Terminal Beautifully Reimagined, Here’s How to Install It
If you’re tired of the antiquated (retro?) text-only appearance of the command line and Terminal.app, check out the fascinating new TermKit project.
TermKit aims to bridge aspects of the GUI with the command line, allowing this re-imagined terminal to see anything from icons to images, with progress bars and indicators that commands have executed successfully or failed, displaying anything that a modern web browser can (including HTML5 content), meaning there’s even fancy transitions and animations too. The developer cautions that TermKit is not a full terminal emulator, but it’s definitely very compelling even with its current limitations.
TermKit Installation Requirements and Steps
If you want to try TermKit out yourself, you’ll need some familiarity with compiling apps in the command line since TermKit is very much alpha and is somewhat of a hassle to install. Here’s a more accurate list of things you’ll need and steps to take to get the app running, I found the initial instructions on the projects homepage vague and missing some elements:
- Install XCode 4 – registered developers can install Xcode 3 from a Mac OS X Installer DVD and upgrade manually to 4 or later (prior Xcode releases were $5), or anyone can download the latest versions of Xcode from the Mac App Store for free
- Install HomeBrew:
- Install Node.JS:
- Install NPM (Node Package Manager):
- Install MIME using the newly installed NPM:
- Use git to grab the TermKit source (note: if you run into permissions errors, pull off the –recursive flag):
- Run Nodekit daemon:
- Unzip TermKit.zip:
- Launch TermKit.app:
ruby -e "$(curl -fsSLk https://gist.github.com/raw/323731/install_homebrew.rb)"
brew install node git
curl http://npmjs.org/install.sh | sh
npm install mime
git clone git@github.com:unconed/TermKit.git --recursive
cd TermKit/Node; node nodekit.js
unzip Build/Termkit.zip
open Build/TermKit.app
The usefulness is debatable at this point, and as the developer humorously says “nothing works yet” but there’s no doubt that TermKit is beautiful. Here are some more screenshots of TermKit in action:
You can read more about TermKit on the developers blog or check out the source on GitHub, the developer has some interesting ideas and opinions on the concept of the command line and it’s inadequacies with modern computing and those alone are a good read.
This is a pretty exciting project, and definitely something we’ll keep an eye on.
Very first line doesn’t work, the script has been moved. If you go manually, it provides a new link. The new link gives out errors with perl and fails. Can’t move on to the procedure.
Can we get an updated howto please?
node.js:201
throw e; // process.nextTick error, or ‘error’ event on first tick
^
Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead.
at Function. (module.js:376:11)
at Object. (/Users/ibeekman/TermKit/Node/nodekit.js:6:8)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at Array.0 (module.js:470:10)
at EventEmitter._tickCallback (node.js:192:40)
I got the same error as ZB, how can I fix it?
Same error here
same here
Same here
Same. I wonder if it was something that was removed in a recent update to Node…?
same error here…
Same error
same error
Here’s the fix, from the TermKit folder:
$ cp Shared/protocol.js Node/node_modules
$ vim Node/nodekit.js
remove or comment out the line starting with require.paths.unshift (I think it’s line number 5 or something like that).
Then run as normal.
module.js:340
throw err;
^
Error: Cannot find module ‘socket.io-node’
What to do here?
Nice thing, even if I only get it to work not for too much, then I have to restart. Is there a way to bundle all the stuff and not have all the dependencies around the disk?
Very nice!
When can we expect a compiled version?
Keep up the good work!
use this : git clone https://github.com/unconed/TermKit.git –recursive
means https protocol
Thanks!
Cant get git clone git@github.com:unconed/TermKit.git –recursive to work, fails with Premission denied (Publickey).
But https really helps.
I finally figured that I needed to sign up at github and provide them an ssh public key. Now I can log in, but the command:
git clone git@github.com:unconed/TermKit.git
still fails:
[[
git: ‘index-pack’ is not a git-command. See ‘git –help’.
fatal: index-pack failed
]]
Any ideas?
Cool stuff!
Sigh… missing the days when the SDK was free with ALL Macs, and updates were FREE too. I used to think that was so cool for a commercial (closed-source) software vendor to do. And the AppStore method for the SDK is beyond ridonkulous, because it pushes the full disk image on every update (instead of a patch or updater). If I’m paying for the convenience, they could at least implement a smoother update process. I wonder how many third party developers would be allowed to push multi-GB updates in the AppStore (when a teeny-tiny fraction is all that’s required)
I keep getting errors when trying to run nodekit daemon:
node.js:134
throw e; // process.nextTick error, or ‘error’ event on first tick
^
Error: Cannot find module ‘socket.io’
at Function._resolveFilename (module.js:322:11)
at Function._load (module.js:267:25)
at require (module.js:351:19)
at Object. (/Users/levinotik/Downloads/unconed-TermKit-2e472cf/Node/nodekit.js:10:10)
at Module._compile (module.js:407:26)
at Object..js (module.js:413:10)
at Module.load (module.js:339:31)
at Function._load (module.js:298:12)
at Array. (module.js:426:10)
at EventEmitter._tickCallback (node.js:126:26)
new-host:Node levinotik$ cd Termkit/Node;
-bash: cd: Termkit/Node: No such file or directory
new-host:Node levinotik$ sudo node nodekit.js
Password:
node.js:134
throw e; // process.nextTick error, or ‘error’ event on first tick
^
Error: Cannot find module ‘socket.io’
at Function._resolveFilename (module.js:322:11)
at Function._load (module.js:267:25)
at require (module.js:351:19)
at Object. (/Users/levinotik/Downloads/unconed-TermKit-2e472cf/Node/nodekit.js:10:10)
at Module._compile (module.js:407:26)
at Object..js (module.js:413:10)
at Module.load (module.js:339:31)
at Function._load (module.js:298:12)
at Array. (module.js:426:10)
at EventEmitter._tickCallback (node.js:126:26)
new-host:Node levinotik$
@levi: simply install socket.io with the node package manager:
npm install socket.io
Hmm…this didn’t work for me – I’m still getting the same error?
Looks like npm installed socket-io.client but not socket-io.node? I’m new to this npm thing….
nodekit.js: 134
io = require(‘./socket.io-node’),
The directory ‘socket.io-node’ should contains the Socket.IO(https://github.com/LearnBoost/Socket.IO-node) repository so just clone it from github.
“you can install Xcode 3 from a Mac OS X Installer DVD and upgrade manually to 4”
I don’t think so, at least not unless you pay the $99/year developer fee. Registered (free) developers only have access to Xcode 3.2.6.
You are right, thanks for pointing this out. Post has been updated.
Cheaper route is to pay $5 for Xcode on AppStore. Sucks, but I already like TermKit after only a few hours, so worth the $5.
Edit and add this to your ssh config file if you have problems with publickeys on github, replace with your ssh key:
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile [local path to private key half of github public key you provided]
from: http://help.github.com/troubleshooting-ssh/
That is not necessary, just remove –recursive and the command executes fine.
If you want to see what’s going on you can view the Console (View menu > Console) and you’ll open the traditional WebKit Inspector which is familiar to any web developer. All in all very buggy and slower than a dog but it shows promise.
I’ll wait ’till it’s on macports. I will never install more than one portage systems.
You’re in 2011. MacPorts is 1969. Homebrew is 2011.
Homebrew is 2011 with all important stuff missing. No nano, no mtr, no htop, etc… pointless, plus the instructions don’t work, the project is broken (check the github prject, tons of people complaining)… this is just a complete and utter mess. Going back to macports, where software works.
Tested it: Really buggy and doesn’t work well. It’s still an alpha. The idea is awesome, though.
@David
Try:
git clone https://github.com/unconed/TermKit.git –recursive
I was with the same problem here and this command worked fine.
Permission denied (publickey).
looks like the repository was pulled down for public use?
That looks like a recent change if so, be sure to accept the public key when you are using git