55

I would like to set iTerm2 instead of terminal.app as my default terminal.

Go2Shell for example let you open a terminal to the current directory in Finder. I want to ba able to use iterm2 instad of terminal.app.

I didn't find any answer on the official documentation.

Thanks for your help.

Update: ShellTo is a great alternative to Go2Shell and supports iTerm2

  • Default terminal for what? You just launch the one you want and leave the other alone...? Please explain in more detail what you're asking. – Daniel Beck Jan 17 '12 at 11:21
  • 1
    Go2Shell blurb from the app store: Added support of iTerm, iTerm 2 and even xterm :). Just take a look at its preferences. Also, at least for Terminal.app, this feature has been part of the OS for half a year, see here (last item). – Daniel Beck Jan 17 '12 at 11:43
  • Oh I didn't saw it. My fault! – politicus Jan 17 '12 at 12:08
57

Terminal.app declares itself a handler of the ssh, telnet and x-man-page URL schemes.

It also registers the file extensions .term (sessions), .terminal (settings), .tool and .command (scripts), and itself as an editor/viewer for these.

Other than that, there is no default terminal in OS X. It's just an application that can handle URL schemes and file types.


iTerm is capable of handling all of these except the Terminal.app specific .term/.terminal.

For the file types, just open the Get Info dialog and associate all files of this kind with iTerm. For the URL schemes, you can download and install the preference pane Default Apps and change the association there. You can also use it as an alternative method of changing the file type associations.

enter image description here


All of these settings are user specific and stored in ~/Library/Preferences/com.apple.LaunchServices.plist. You can of course edit it in a suitable editor yourself. It's pretty straightforward. Screenshot of Xcode 4 showing the result of changing x-man-page in Default Apps preference pane:

enter image description here


Terminal.app also provides the following Services for other applications:

  • New Terminal at Folder
  • New Terminal Tab at Folder
  • Open man page in Terminal
  • Search man pages in Terminal

The association with Terminal.app is hard-coded. You need to create your own Services e.g. using Automator and/or AppleScript to replace these.


If Terminal is used via its AppleScript API, there is no way to just replace it with iTerm in all cases, as their APIs are quite different. This will often require substantial changes to the programs or scripts doing that.

  • 2
    Thank you for your amazing answer. Clear, very informative. New to OSX, I didn't know Default Apps. – politicus Jan 17 '12 at 12:19
  • Awesome tool. Glad it still works well under El Capitan. – ifwdev Jan 9 '16 at 14:42
  • Oh goodness, this is so helpful. I accidentally deleted Terminal.app (or screwed it up so bad it won't open) and this works to fix that, and my React Native builds are using iterm so far so good, knock on wood. THX:D – tidelake Jun 14 '18 at 20:35
56

You should be able to make iTerm.app your default terminal by selecting "Make Default" from the menu bar.

File menu drop down

Alternatively you can use a keyboard shortcut.

+++\

  • 1
    It doesn't seem to work for most of my tests. GitHub.app still opens Terminal and so does SublimeText. – bfred.it Mar 26 '16 at 6:45
  • 4
    @bfred.it: Sadly, the name of the menu item is misleading: the only thing it does is to run shell scripts opened from Finder in iTerm2 rather than Terminal. It will not magically cause third-party applications such as GoShell, GitHub, Alfred, ... to use iTerm2, as explained in Daniel Beck's answer. – mklement0 Sep 11 '16 at 22:07
  • I think this is the most appropriate answer nowadays... – mecampbellsoup Dec 6 '17 at 18:33
7

As mentioned in the comments above Go2Shell can be told to use iTerm2

To open configuration window follow this steps:

  1. Fire up your favorite terminal program.
  2. Enter: open -a Go2Shell --args config
  3. Press [return].

enter image description here

http://zipzapmac.com/Go2Shell

4

To provide a pragmatic summary of the existing answers:

  • macOS (OS X) does NOT support the concept of a default terminal.

    • See Daniel Beck's helpful answer for background information.
    • iTerm2 itself somewhat misleadingly offers a menu item named iTerm2 > Make iTerm2 Default Term (as presented in halfcube's answer), but the only thing that does is to make Finder run shell scripts opened from it in iTerm2 (more specifically, it assigns the shell role of UTI public.unix-executable to Finder) - which is not a typical use case.
  • Therefore, applications must be configured INDIVIDUALLY to use iTerm2 instead of Terminal, IF they support that:

    • While the Go2Shell app that prompted the OP's question does have a configuration dialog that supports iTerm2 (open -a Go2Shell -- config, the application doesn't seem to work at all as of OSX 10.11.6 (on clicking the toolbar button as of v2.23, the only thing that ever happens is that the configuration dialog comes up, even after having clicked Install Go2Shell to Finder).
    • The paid alternative mentioned by the OP - application ShellTo - also supports iTerm2 in principle, but as of this writing doesn't support the current version, v3+.
4

As found on the ma.ttias.be blog, iTerm2 can register itself as the default terminal for some common URL schemes: You just have to check the corresponding schemes at the very bottom of the General tab in the current Profile from iTerm preferences

iTerm > Préférences > Profiles > Général > URL Schemes

  • Most to the point answer IMO. – markus Jun 10 '17 at 13:06
0

This thread was for OS X Lion, and seems out-of-date for El Capitan. However, since I found this page while searching for a way to have XCode launch iTerm instead of Terminal, I thought I'd post my solution.

It's not free, unfortunately, but it can be done using the Magic Launch system preference app. Using that tool, I set iTerm as the default app for .term, .terminal, and .command extensions. That did the trick for my needs.

Hope this helps!

  • Can you expand upon how this software works? Please see How to recommend software. – Burgi Oct 12 '16 at 9:29
  • Are you saying my answer doesn't work anymore for El Capitan? Could you clarify? – Daniel Beck Nov 18 '16 at 13:19
0

What @gef posted was partially what I did. However, this is what worked for me.

Open your terminal app:

open -a Go2Shell --args config

Then on the options copy the following code, you might have to right click and paste as the commands are restricted:

cd %PATH%;clear;pwd;open -a iTerm.app .;killall Terminal;

And voila, the terminal app should open give a new parameter to iTerm, then close itself again.

0

You can run any command once the terminal application is run so in order to run iterm2 instead of terminal application, you can create a script that runs each time the terminal is opened and this script should open iterm and kill terminal app

Steps to create script

  • Vi /Applications/run_iterm.sh
  • Copy the following commands and paste them in the scrip

    #! /bin/bash
    open -a iTerm.app
    killall Terminal
    
  • Save the file

  • Chmod 755 /Applications/run_iterm.sh

Now our script is ready, the last step is to run it each time the terminal application is opened Run terminal Go to preferences -> General -> shell open with -> select command "complete path" and paste /Applications/./run_iterm.sh inside the textbook finally close the terminal application and run it again enter image description here

  • 1
    Wow; configuring a program to automatically kill itself whenever it is started.  What could possibly go wrong?   :-(   ⁠ – Scott Sep 16 '17 at 1:47

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.