Skip to content
Branch: master
Go to file

Latest commit

juergenhoetzel authored and davidshepherd7 committed d8b9530 Jun 17, 2020
Remote commands have to be quoted because ssh just sticks
together (separated by spaces) the remote command to run.


Failed to load latest commit information.
Latest commit message
Commit time

Terminal Here

travis melpa melpa stable badge

An Emacs package to open an external terminal emulator in directories associated with the current buffer.


Run terminal-here-launch to start a terminal in the current directory.

If the default command doesn't launch your preferred terminal you can set terminal-here-terminal-command to either a list containing the command and arguments (e.g. (list "my-terminal" "--foo")) or a function which takes a directory and returns such a list.

Recommended keybindings:

(require 'terminal-here)
(global-set-key (kbd "C-<f5>") #'terminal-here-launch)
(global-set-key (kbd "C-<f6>") #'terminal-here-project-launch)


Terminal-here has out-of-the-box support for some platforms, but will work anywhere with some customisation.

Out-of-the-box support tested on:

  • Ubuntu 16.04 (but should work identically on any Debian-based system)
  • Windows 10
  • OSX

Should be supported out-of-the-box, but currently untested:

  • Older versions of Windows

Requires setting terminal-here-terminal-command before use:

  • Non-Debian-based UNIXes, because I haven't seen a standard way to open the user's preferred terminal

If you have problems just set terminal-here-terminal-command as described above.

Remote directories

terminal-here can run ssh to open terminals in remote directories for files opened with tramp. This may require additional setup because of inconsistencies between different terminals.

If your terminal has a flag to treat the rest of the command line as the command to run inside the terminal, you just need to set terminal-here-command-flag to this flag. If not it may be impossible to get ssh support. Some examples are:

  • xterm, urxvt: -e (this is the default)
  • gnome-terminal: -x


There are lots of built in ways to run terminals inside emacs (shell, eshell, ansi-term, ...) but these can have problems like slow output speed or incompatibility with existing configs. I currently prefer to run external terminal emulators, YMMV.

A couple of places on the internet have instructions for running specific terminals from Emacs, but they are not as portable as they could be.


An Emacs package to open an external terminal emulator in the current directory




You can’t perform that action at this time.