A macOS (OS X) CLI for programmatically opening a new terminal tab/window in the standard terminal application,
or in popular alternative
iTerm2, optionally with a command to execute and/or a specific title and specific display settings.
iTerm2 support is experimental in that it is currently not covered by the automated tests run before every release.
Important: Irrespective of installation method,
iTerm.app) needs to be granted access for assistive devices in order for
ttab to function properly, which is a one-time operation that requires administrative privileges.
If you're not prompted on first run and get an error message instead, go to
System Preferences > Security & Privacy, tab
Accessibility, unlock, and make sure
iTerm.app is in the list on the right and has a checkmark.
For more information, see Apple's support article on the subject
[sudo] npm install ttab -g
sudodepends on how you installed Node.js / io.js and whether you've changed permissions later; if you get an
EACCESerror, try again with
-gensures global installation and is needed to put
ttabin your system's
chmod +x ttab.
$PATH, such as
# Open a new tab in the current terminal window.ttab# Open a new tab in a new terminal window.ttab -w# Open a new tab and execute the specified command before showing the prompt.ttab ls -l "$HOME/Library/Application Support"# Open a new tab and execute *multiple* commands in it - note how the entire# command line is specified as *single, quoted string*.ttab 'git branch; git status'# Open a new tab, switch to the specified dir., then execute the specified# command before showing the prompt.ttab -d ~/Library/Application\ Support ls -1# Open a new tab with title 'How Green Was My Valley' and settings 'Grass'.ttab -t 'How Green Was My Valley' -s Grass# Open a new tab and execute the specified script before showing the prompt.ttab /path/to/someScript# Open a new tab, execute the specified script, and exit.ttab exec /path/to/someScript# Open a new tab, execute a command, wait for a keypress, and exit.ttab 'ls "$HOME/Library/Application Support"; echo Press a key to exit.; read -rsn 1; exit'# Open a new tab in iTerm2 (if installed).ttab -a iTerm2 echo 'Hi from iTerm2.'
Find concise usage information below; for complete documentation, read the manual online, or, once installed, run
man ttab (
ttab --man if installed manually).
$ ttab --helpOpens a new terminal tab or window in OS X's Terminal application or iTerm2.ttab [-w] [-s <settings>] [-t <title>] [-q] [-g|-G] [-d <dir>] [<cmd> ...]-w open new tab in new terminal window-s <settings> assign a settings set (profile)-t <title> specify title for new tab-q clear the new tab's screen-g create tab in background (don't activate Terminal/iTerm)-G create tab in background and don't activate new tab-d <dir> specify working directory; -d '' disables inheritingthe current dir.-a Terminal|iTerm2 open tab or window in Terminal.app / iTerm2<cmd> ... command to execute in the new tab"<cmd> ...; ..." multi-command command line (passed as single operand)Standard options: --help, --man, --version, --home
This project gratefully depends on the following open-source components, according to the terms of their respective licenses.
npm dependencies below have optional suffixes denoting the type of dependency; the absence of a suffix denotes a required run-time dependency:
(D) denotes a development-time-only dependency,
(O) an optional dependency, and
(P) a peer dependency.
Versioning complies with semantic versioning (semver).
-d ''now prevents
ttabfrom implicitly changing to what it thinks the working directory should be; useful for creating tabs/windows that set their own working directory.
-qnow allows clearing the "screen" of the new tab after opening using
clear, assuming any command (list) passed succeeded.
-t <title>, no attempt is made anymore to auto-derive a meaningful tab title from the shell command specified, as there is no heuristic that works well in all cases.
-a Terminal|iTerm2now allows specifying the target Terminal application, which is useful for launching
ttabfrom non-terminal applications such as Alfred.
ttabto report a nonzero exit code.
man ttab); if installed manually,
ttab --manshows a plain-text version.
ttab -hnow only prints concise, single-page usage information.
make browsenow opens the GitHub repo in the default browser.