Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

iTerm - A Terminal app with tabbed windows Pick of the Week
iTerm iconThe macosxhints Rating:
7 of 10
[0 to 10 lights; 10 = perfect!]
  • Developer: Ujwal S. Sathyam [Product Page]
  • Price: Free [open source]
iTerm was noted in a recent hint, but I feel it's worth a bit more exposure than that. iTerm is a terminal replacement program that supports multiple tabbed windows within one primary window, as seen here:

If you wish, you can see a larger version(172K) of the image. Using tabs, you can quickly jump from one task to the next (and there's a keyboard shortcut to making cycling both directions quick and easy). The tabs themselves also provide information on the status of each terminal window -- the two red tabs in the screenshot indicate that the particular window has new information for me to see or act on; the active tab is highlighted in blue.

As noted in the comments to the original article, you can use screen to effectively do the same thing. However, as a visual person, I like to be able to see the numerous windows at a glance, and not have to cycle or run a command to see what's happening. One additional feature of iTerm that you can't replicate in screen is that each tabbed terminal can have unique colors for text, background, and selection, as well as unique transparency settings (note a portion of the desktop image showing in the screenshot). You can also add opened windows to an "Address Book," making it very easy to re-activate the program and settings you have in place. It's also a Cocoa application, complete with a customizable multiple-size toolbar (I've reduced mine to text-only in the screenshot).

iTerm isn't perfect; it may have troubles with programs that don't use the standard character set, and it's quit on me a few times in the 45 days I've been using it. However, for me, it's a nearly full-time replacement for the Terminal. It's also got a great set of features if you find yourself using multiple terminal windows relatively often (and you're not a full-time UNIX user with tons of experience using screen). Give it a look if you're interested in tabbed terminal windows; at worst, you'll be out a few minutes of your time.
    •    
  • Currently 1.50 / 5
  You rated: 2 / 5 (8 votes cast)
 
[43,271 views]  

iTerm - A Terminal app with tabbed windows | 29 comments | Create New Account
Click here to return to the 'iTerm - A Terminal app with tabbed windows' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
iTerm vs. screen
Authored by: jafager on Apr 21, '03 12:53:18PM

I used screen for a while before iTerm was available. If you're good with the keyboard and you either remap your caps lock key or use a Unix-style keyboard with the control key in the right location, you can work very efficiently with screen. This is the .screenrc that I use:

startup_message off
caption always "%w"
shelltitle "hostname"

This turns off the annoying splash screen at startup, forces the window list to always appear at the bottom of the screen, and sets the default name for new windows (you have to replace "hostname" with the name of your server).

Screen has some advantages over iTerm:

  • faster operation from the keyboard
  • the ability to detach from a running session and reattach later
  • split screen (multiple terminals in the same window)
  • shared terminals

iTerm has some advantages as well:

  • scroll back and forth with the mouse wheel
  • xterm titlebar support for windows and tabs
  • switch terminals with the mouse

iTerm is a great Terminal replacement, even if you use screen and only open one tab, and screen is great for doing things that iTerm isn't capable of.

jafager



[ Reply to This | # ]
How about the image?
Authored by: ragnar on Apr 21, '03 01:09:46PM

I downloaded iTerm and thus far I like it, but now for the real
issue... where can I get that swank image of the cheatah for my
terminal background? :) Seriously, any links are appreciated.



[ Reply to This | # ]
How about the image?
Authored by: artgeek on Apr 21, '03 02:28:04PM

i believe that's a swank 'Jaguar'... cheetah's are much more scrawny, and that will be the release after 'Puma' anyway. ;-]

peas,
ag



[ Reply to This | # ]
Amazing, huh?
Authored by: robg on Apr 21, '03 04:30:00PM
I found that great pic at:

desktop.dvdesign.com/Jaguar2.shtml

It's available in sizes from 800x600 up to 1920x1200. There are some other collections as well with some great imagery -- just go up one level to:

destkop.dvdesign.com

-rob.

[ Reply to This | # ]
Better score in my usage
Authored by: daveedvdv on Apr 21, '03 01:45:06PM

I'm quite addicted to iTerm.
It is my full-time Terminal replacement, and in fact much of my day-time work happens in iTerm. I haven't found it crashing very often in stable releases (I use 0.6.4b right now), although some releases were a bit flaky.
Occasionally, some terminal control codes are not handled correctly, but that's rare enough not to be a bother.
Anyway, in my experience I'd rate it closer to 9/10 than 7/10.



[ Reply to This | # ]
source code?
Authored by: martinx on Apr 21, '03 01:56:14PM

According to the sourceforge page, the project is GPL.

Where can I download the source code? I see that I can browse the CVS
repository, but there doesn't seem to be an archive file (tar.gz, dmg,
etc.) that I can just download to play with.



[ Reply to This | # ]
source code?
Authored by: semios on Apr 21, '03 05:41:42PM

Looks like you have to use cvs to play with it. Don't worry, it's easy. Here's how:


$ cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/iterm 
login
$ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/
iterm co iTerm


[ Reply to This | # ]
source code?
Authored by: martinx on Apr 22, '03 09:52:12AM

Thanks! that was (almost) painless. The way the text got posted I
almost didn't realize that the wrapped lines were supposed to be part of
their preceding lines.

Anyways, my main complaint against CVS only access is that it makes it
a bit harder to figure out which version of the source code you have. (for
example, is it 0.6.5? Or is it newer than that, possibly with newly added
bugs?)



[ Reply to This | # ]
source code?
Authored by: greed on Apr 22, '03 01:51:12PM

I suppose this really belongs as a separate hint, but what the heck.

Once you have something checked out with CVS, you can find out what versions are available. Examine an "important" file, like "README", "configure", "Makefile" or "Makefile.in". It just has to be a file that is likely to have been around for a while.

Now do:
cvs status -v README

This will show the "tags" available on that file. Now you can re-set your code to a named tag by doing:
cvs update -rTAGNAME

If you knew the tag name in advance, you could have used "-rTAGNAME" on the "cvs co" command instead. You can usually find the tags in the web interface, in one of the log or history displays.



[ Reply to This | # ]
Obligatory xterm Plug
Authored by: readparse on Apr 21, '03 02:01:57PM
I found iTerm a long time ago and liked the tab support, but for some reason it never replaced Terminal.app as my primary terminal application (as a unix guy who deals with lots of servers, my terminal application is probably my most commonly used application).

What DID replace Terminal.app for me was xterm, once Apple's X11 came out and I found the tip on this site about using antialiased OS X fonts in xterm. From that moment on, I have been free of Terminal's and iTerm's unbelievable slowness. xterm is a VERY solid terminal application that has many years under it's belt. There are a whole lot of options, all covered very well in the man page.

An example:

alias footerm='xterm -fa Monaco -fs 14 -background "#660000" -foreground "#F2F28C" -e ssh -X -l foouser foosite.com &

This is in my .bash_profile file (your shell may vary), and this alias allows me to type "footerm" and enter, and it opens up a new xterm window with my preferred font, with a dark red background (notice that it takes X11 color names or hex RGB values) and a light-colored font color. The "-e" switch tell it the command to run, so that command even starts my ssh connection. When I quit (or lose) the ssh connection, the window closes.

I have several of these set up, in different colors, so it's easy to tell which xterm window is which. The only thing missing is tab support, which is something that I really want, but which is NOT worth going to iTerm for, because apparently iTerm uses the same core terminal functionality as Terminal.app. You won't notice how unbelievably slow Terminal.app and iTerm.app are until you have used xterm religiously for a while. I am SERIOUSLY in the market for tabbed xterm, which would be simply awesome.

John

[ Reply to This | # ]

Obligatory xterm Plug
Authored by: rselph on Apr 21, '03 02:16:48PM
I am SERIOUSLY in the market for tabbed xterm, which would be simply awesome.

If you have fink installed, you might want to try multi-gnome-terminal. I don't use it myself, but it sounds like what you are looking for.

[ Reply to This | # ]

Obligatory xterm Plug
Authored by: restiffbard on Apr 21, '03 02:49:00PM

glad I'm not the only one that things terminal.app is ass slow.
haven't tried xterm on OS X yet though. certainly will now. coming
from linux i just couldn't get over the slowness of terminal.app



[ Reply to This | # ]
Obligatory xterm Plug
Authored by: ClarkGoble on Apr 21, '03 04:15:31PM

I like a lot of the terminal programs available with Fink as well. The downside with them is that they don't support drag and drop. I use that a lot.

Speed just isn't that big a deal with Terminal for what I use it for. I guess I'm not hard enough of a user of the terminal. I'd tried iTerm a while back and can't remember why I stopped. I'll give it an other try and I did like the tabs in Gnome Term.



[ Reply to This | # ]
Obligatory xterm Plug
Authored by: Aarden on Apr 22, '03 07:47:32AM

Another, prettier alternative is the KDE terminal, konsole. It comes
with the Fink package kdebase3.



[ Reply to This | # ]
iTerm - A Terminal app with tabbed windows
Authored by: raster on Apr 21, '03 02:06:11PM

I've been using iTerm for quite a while, and love it. It's the killer terminal app for Mac OS X.

(I just wish it ran in Mac OS X 10.1.5 which my PowerBook is still running.)



[ Reply to This | # ]
iTerm - A Terminal app with tabbed windows
Authored by: dlrodriguez on Apr 21, '03 02:20:04PM

I gave iTerm a try a while ago, but I couldn't figure out a way to
use ssh-keygen to automatically ssh into a remote host without
entering in a password (as I have successfully done with
Terminal and on other machines). Has anyone been able to do
this? If so, could you give me another hint?

---
David



[ Reply to This | # ]
How to do SSH without passwords
Authored by: jafager on Apr 21, '03 02:56:59PM

BE AWARE THAT GENERATING SSH KEYS WITHOUT A PASSPHRASE IS NOT THE MOST SECURE WAY TO OPERATE. I STRONGLY SUGGEST YOU CONSULT THE OPENSSH DOCUMENTATION FOR THE CORRECT WAY TO DO HANDS-FREE SSH AUTHENTICATION WITH SSH-AGENT!

You want to connect from machine "left" to machine "right".

Log into left:

mkdir ~/.ssh
cd ~/.ssh
ssh-keygen -b 1024 -t rsa1 -C "you@yourdomain.com" -N ""
ssh-keygen -b 1024 -t rsa -C "you@yourdomain.com" -N ""
ssh-keygen -b 1024 -t dsa -C "you@yourdomain.com" -N ""

This creates six files in your ~/.ssh directory:

identity
identity.pub
id_rsa
id_rsa.pub
id_dsa
id_dsa.pub

Log into right:

mkdir ~/.ssh
cd ~/.ssh

On right, create a file called "authorized_keys" (in the ~/.ssh directory). Paste the contents of the three .pub files created earlier into this file (you will have to work out for yourself the best way to do this).

Now test it out. On left:

ssh username@right

It should let you in without a password. If it does not, the first thing to check is your file permissions. The ~/.ssh directories on both sides should not be writable by anyone but the owner. The .pub files should be readable by everyone, but the other key files should only be readable by their owner. The permissions should be set correctly by ssh-keygen, but you never know. There are a lot of things that can go wrong here; troubleshooting is complicated and well beyond the scope of these instructions.

HTH,
jafager



[ Reply to This | # ]
How to do SSH without passwords
Authored by: dlrodriguez on Apr 21, '03 10:27:31PM

I have a response to this in a separate comment...sorry about
the confusion.

---
David



[ Reply to This | # ]
How to do SSH without passwords
Authored by: englabenny on Apr 22, '03 12:07:09PM
I can't get that to work between my machines... :(
They both use jaguar.5 or .4, and i've followed your instructions to the point, I used cat id_dsa.pub >> authorized_keys on all the keys, copied over with scp, to get the keys into the file..

[ Reply to This | # ]
How to do SSH without passwords
Authored by: englabenny on Apr 22, '03 12:13:55PM
Found out that the -C switch with argument maybe not was unimportant, I filled it in with my mail, :D. What do I enter? I have rendezvous names for both the computers, TiBook.local and Cube.local, and I have static intranet IPs, shall I use any of them?

A verbose log of ssh failing (asking for pass) (sorry for looong post)

[tibook:~/.ssh] ulrik% ssh -v cube.local
OpenSSH_3.4p1, SSH protocols 1.5/2.0, OpenSSL 0x0090609f
debug1: Reading configuration data /etc/ssh_config
debug1: Rhosts Authentication disabled, originating port will not be trusted.
debug1: ssh_connect: needpriv 0
debug1: Connecting to cube.local [192.168.0.3] port 22.
debug1: Connection established.
debug1: identity file /Users/ulrik/.ssh/identity type 0
debug1: identity file /Users/ulrik/.ssh/id_rsa type 1
debug1: identity file /Users/ulrik/.ssh/id_dsa type 2
debug1: Remote protocol version 1.99, remote software version OpenSSH_3.4p1
debug1: match: OpenSSH_3.4p1 pat OpenSSH*
Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_3.4p1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: dh_gen_key: priv key bits set: 138/256
debug1: bits set: 1626/3191
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'cube.local' is known and matches the RSA host key.
debug1: Found key in /Users/ulrik/.ssh/known_hosts:1
debug1: bits set: 1654/3191
debug1: ssh_rsa_verify: signature correct
debug1: kex_derive_keys
debug1: newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: waiting for SSH2_MSG_NEWKEYS
debug1: newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: done: ssh_kex2.
debug1: send SSH2_MSG_SERVICE_REQUEST
debug1: service_accept: ssh-userauth
debug1: got SSH2_MSG_SERVICE_ACCEPT
debug1: authentications that can continue: publickey,password,keyboard-interactive
debug1: next auth method to try is publickey
debug1: try pubkey: /Users/ulrik/.ssh/id_rsa
debug1: authentications that can continue: publickey,password,keyboard-interactive
debug1: try pubkey: /Users/ulrik/.ssh/id_dsa
debug1: authentications that can continue: publickey,password,keyboard-interactive
debug1: next auth method to try is keyboard-interactive
debug1: authentications that can continue: publickey,password,keyboard-interactive
debug1: next auth method to try is password
ulrik@cube.local's password: 


[ Reply to This | # ]
No 'Find' makes it useless to me...
Authored by: gerti on Apr 21, '03 03:50:11PM

Pretty neat, came some way since I last checked it. But no 'Find' for the scrollback buffer is a killer for me.

Also I hacked my Terminal.app so I can use the context menu to switch between windows. Kind of miss that, wish i could quickly switch between tabs using the context menu.



[ Reply to This | # ]
No 'Find' makes it useless to me...
Authored by: maclaxguy on Apr 21, '03 09:49:28PM

May I ask how you hacked the menu for Terminal?

I'm curious about that now...



[ Reply to This | # ]
iTerm - A Terminal app with tabbed windows
Authored by: dlrodriguez on Apr 21, '03 10:25:23PM

Thanks for the info, but I already know this...and I am running
ssh-agent. Perhaps I didn't make myself clear.

Using ssh-keygen and ssh-agent, I have been able to set up the
Terminal app to log me into remote machines without entering
passwords. In fact, I have saved terminal sessions that show up
in my library directory that when selected open up new windows
and automatically log into the remote machine. This is very
convenient because I can customize each remote machine
differently. However, when I try this with the iTerm address
book, the new session that I open always asks me for the RSA
passphrase even though I have started up ssh-agent. If I simply
type ssh <remote-host> from an iTerm, it works fine..it logs in
without asking for a password. But this is not what I want. I
want to be able to hit the new button, scroll down to the already
set up address entry for the remote host, and have iTerm log
me in with no password in separate tab. This is what I have
failed to do (without having the session ask for my password
every time).

My questions are:
1) Has anyone also run into this problem?
2) Has anyone successfully used ssh-keygen and ssh-agent to
avoid entering passwords every time they log into a remote
machine with iTerm..in a new tabbed session window, that is?

thank you.

---
David



[ Reply to This | # ]
iTerm - A Terminal app with tabbed windows
Authored by: AndyF on Apr 22, '03 01:03:24PM

I have set up, in my ~/.MacOSX/environment.plist file, which is available to OSX programs (including iTerm)

<key>SSH_AUTH_SOCK</key>
<string>/Users/andy/.ssh/agent</string>

I have a shell script that I run to set up ssh-agent that looks like

#!/bin/sh
ps xc | grep -q ssh-agent && exit
new=/Users/andy/.ssh/agent
ssh-agent -s > ~/.ssh/env.save 2>/dev/null
. ~/.ssh/env.save
rm -f $new
ln -s $SSH_AUTH_SOCK $new
ssh-add

The script starts ssh agent, and make a symbolic link from the variable-named ssh-agent socket to the fixed name used in my environment.plist file.

Actually, I have more than that. I have also set

<key>SSH_ASKPASS</key>
<string>/Users/andy/Applications/SSHPassKey.app/Contents/MacOS/SSHPassKey</string>

so that SSHPassKey asks for the password. I believe this also requires having set

<key>DISPLAY</key>
<string>localhost</string>

(Perhaps those two variables are better set in the shell script...)

Finally, I made a simple apple script of the form 'do shell script "/Users/andy/bin/start.sh"' that is saved as a an application and run as a login item. Thus ssh is set up (once) when I first log in.



[ Reply to This | # ]
iTerm - A Terminal app with tabbed windows
Authored by: geekwagon on Apr 22, '03 06:56:33PM
The other reply you got should work, but if you don't want to reinvent the wheel with a bunch of scripts, try out Keychain.

I run it in my bash_profile so the script runs everytime I start a new shell. If it doesn't find a ssh-agent running, it will start one and ask for your passphrase. If one is running, it will silently set the proper environment variables to point your current shell to use the existing ssh-agent.

I just tried it with iterm and it works. I am using bash, so if you are using tcsh your mileage may vary.

Here's the URL: http://www.gentoo.org/proj/en/ keychain.xml

I tried to put in as a link but for some reason a %0d kept getting inserted into the URL. Anyone know what is up with that?

[ Reply to This | # ]

Aggregated Windows
Authored by: synathome on Apr 22, '03 01:27:02PM

I wonder whether Apple will end up releasing some sort of 'aggregated windows' mechanism (aka 'upside-down tabs', a la safari).

That would be much better than developers having to re-invent the wheel all the time.



[ Reply to This | # ]
iTerm - A Terminal app with tabbed windows
Authored by: wgscott on Apr 23, '03 01:15:46AM

The tabs become much more useful when you use a dynamic terminal title as described here:

http://www.macosxhints.com/article.php?story=20010522025350220&query=settitle



[ Reply to This | # ]
iTerm - A Terminal app with tabbed windows
Authored by: porkchop_d_clown on Apr 24, '03 10:17:01AM

I'm sorry, but I just don't like iTerm; it is slower to load than plain-old Terminal and for some reason, while I like tabbed browsing I seem to be too "old school" to adapt to tabbed terminal windows.

---
Everyone loves a clown, but no one will lend him money!



[ Reply to This | # ]
GLterm 1.2 as alternative
Authored by: opsotta on Apr 24, '03 11:50:39AM

The best CLI so far is still GLterm. You can find it at
http://www.pollet.net/GLterm/ and it is not only lean and fast.
It also supports full ANSI colors, 8 bits clean support, Latin-1
translation keyboard input and rendering. And last but not least
it is stable.

Have fun!



[ Reply to This | # ]