TermKit is the Terminal Beautifully Reimagined, Here’s How to Install It

May 19, 2011 - 34 Comments

TermKit is a GUI Terminal

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 anyone can download Xcode 4 from the Mac App Store for $5
  • Install HomeBrew:
  • ruby -e "$(curl -fsSLk https://gist.github.com/raw/323731/install_homebrew.rb)"

  • Install Node.JS:
  • brew install node git

  • Install NPM (Node Package Manager):
  • curl http://npmjs.org/install.sh | sh

  • Install MIME using the newly installed NPM:
  • npm install mime

  • Use git to grab the TermKit source (note: if you run into permissions errors, pull off the –recursive flag):
  • git clone git@github.com:unconed/TermKit.git --recursive

  • Run Nodekit daemon:
  • cd TermKit/Node; node nodekit.js

  • Unzip TermKit.zip:
  • unzip Build/Termkit.zip

  • Launch TermKit.app:
  • 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:


TermKit using cat to view source code

TermKit screenshot showing git mv ls and more

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.

Enjoy this tip? Subscribe to the OSXDaily newsletter to get more of our great Apple tips, tricks, and important news delivered to your inbox! Enter your email address below:

Related articles:

Posted by: William Pearson in Command Line, Mac OS X

34 Comments

» Comments RSS Feed

  1. David says:

    Permission denied (publickey).

    looks like the repository was pulled down for public use?

  2. inket says:

    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

  3. hpux735 says:

    I’ll wait ’till it’s on macports. I will never install more than one portage systems.

    • Someone says:

      You’re in 2011. MacPorts is 1969. Homebrew is 2011.

      • Anonymouse says:

        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.

  4. Gitty McGitterson says:

    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/

    • Parakeet says:

      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.

  5. Marc says:

    “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.

  6. levi says:

    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$

  7. Jackson says:

    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)

  8. Prototypo says:

    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?

  9. djam says:

    use this : git clone https://github.com/unconed/TermKit.git –recursive

    means https protocol

  10. Fernando says:

    Very nice!

    When can we expect a compiled version?

    Keep up the good work!

  11. LeoTh3o says:

    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?

  12. ZB says:

    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)

  13. Anonymouse says:

    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?

Leave a Reply

 

Shop for Apple & Mac Deals on Amazon.com

Subscribe to OSXDaily

Subscribe to RSS Subscribe to Twitter Feed Follow on Facebook Subscribe to eMail Updates