Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ttab

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ttab

OSX CLI for opening a new terminal tab/window, optionally with a command to execute and/or display settings

  • 0.5.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5K
decreased by-57.91%
Maintainers
1
Weekly downloads
 
Created
Source

npm version license

Contents

ttab — open a new Terminal.app / iTerm2.app tab or window

A macOS (OS X) CLI for programmatically opening a new terminal tab/window in the standard terminal application, Terminal, or in popular alternative iTerm2, optionally with a command to execute and/or a specific title and specific display settings.

Note: iTerm2 support is experimental in that it is currently not covered by the automated tests run before every release.

Installation

Important: Irrespective of installation method, Terminal / iTerm2 (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 Privacy, select Accessibility, unlock, and make sure Terminal.app / iTerm.app is in the list on the right and has a checkmark.
For more information, see Apple's support article on the subject

Installation from the npm registry

With Node.js or io.js installed, install from the npm registry:

[sudo] npm install ttab -g

Note:

  • Whether you need sudo depends on how you installed Node.js / io.js and whether you've changed permissions later; if you get an EACCES error, try again with sudo.
  • The -g ensures global installation and is needed to put ttab in your system's $PATH.

Manual installation

  • Download this bash script as ttab.
  • Make it executable with chmod +x ttab.
  • Move it to a folder in your $PATH, such as /usr/local/bin.

Examples

# 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.'

Usage

Find concise usage information below; for complete documentation, read the manual online, or, once installed, run man ttab (ttab --man if installed manually).

$ ttab --help


Opens 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
    -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

License

Copyright (c) 2015-2017 Michael Klement mklement0@gmail.com (http://same2u.net), released under the MIT license.

Acknowledgements

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.

npm dependencies

Changelog

Versioning complies with semantic versioning (semver).

  • v0.5.1 (2017-03-23):

    • [doc] Sample command fixed.
    • [dev] Reliability of tests improved.
  • v0.5.0 (2016-10-01):

    • [new feature] -q now allows clearing the "screen" of the new tab after opening using clear, assuming any command (list) passed succeeded.
    • [enhancement] A quoted multi-command shell command string can now be specified as a single - and only - operand, without having to precede with an explicit eval command.
    • [behavior change] If no custom title is specified with -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.
    • [fix] Issue #7: iTerm2 now also preserves the current working dir. when opening a new tab in the current window.
  • v0.4.0 (2016-09-13):

    • [enhancement] -a Terminal|iTerm2 now allows specifying the target Terminal application, which is useful for launching ttab from non-terminal applications such as Alfred.
    • [fix] Specifying a syntactically invalid shell command to execute in the new tab now causes ttab to report a nonzero exit code.
  • v0.3.1 (2016-06-03):

    • [enhancement] Support for iTerm2 v3 added (whose AppleScript syntax changed fundamentally)
    • [enhancement] Setting a tab title is now also supported in iTerm2 v2.
  • v0.3.0 (2016-05-04):

    • [enhancement] Experimental support for iTerm2 (iTerm.app) added.
  • v0.2.1 (2015-09-15):

    • [dev] Makefile improvements; various other behind-the-scenes tweaks.
  • v0.2.0 (2015-09-14):

    • [enhancement] You can now use embedded (escaped, if necessary) double-quotes inside a multi-command string passed via eval.
    • [doc] If installed via the npm registry, a man page is now installed (view with man ttab); if installed manually, ttab --man shows a plain-text version. ttab -h now only prints concise, single-page usage information.
  • v0.1.8 (2015-09-11):

    • [doc] Incorrect new-window option corrected in examples.
    • [doc, dev] Read-me improved together with the Makefile to turn off syntax highlighting for the CLI help chapter.
  • v0.1.7 (2015-06-26):

    • [doc] Read-me: npm badge changed to shields.io; license badge added.
    • [dev] Makefile updated.
  • v0.1.6 (2015-06-01):

    • [doc] Read-me improvements; typo in CLI usage help fixed.
  • v0.1.5 (2015-06-01):

    • [doc] Improved CLI usage help.
  • v0.1.4 (2015-06-01):

    • [doc] Improved CLI usage help; keywords added to package.json.
    • [dev] make browse now opens the GitHub repo in the default browser.
  • v0.1.3 (2015-06-01):

    • [fix] The -g and -G options again correctly do not activate Terminal.app when creating the desired tab.
    • [enhancement] Option parsing now accepts option-arguments directly attached to the option.
    • [dev] Tests added.
  • v0.1.2 (2015-06-01):

    • [doc] Manual-installation link and instructions fixed; examples fixed.
  • v0.1.1 (2015-06-01):

    • [doc] README.md improved with respect to manual installation instructions.
  • v0.1.0 (2015-06-01):

    • Initial release.

Keywords

FAQs

Package last updated on 23 Mar 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc