Wait for a Key Press in a Terminal

Wait for a single key press at the 'R' prompt. This works in terminals, but does not currently work in the 'Windows' 'GUI', the 'OS X' 'GUI' ('R.app'), in 'Emacs' 'ESS', in an 'Emacs' shell buffer or in 'R Studio'. In these cases 'keypress' stops with an error message.

Linux Build Status Windows Build status CRAN RStudio mirror downloads




> has_keypress_support()
[1] TRUE
> x <- keypress()
> cat("You pressed key", x, "\n")
You pressed key h


This is unfortunately impossible to do in

  • RStudio,
  • R.app (the builtin OSX GUI),
  • RGui (the builtin Windows GUI),
  • Emacs ESS, or
  • if stdin() is not a terminal.

In other words, it pretty much only works interactively, in a terminal. The terminal can be pretty much any Linux, OSX, or other Unix terminal or Windows cmd (also called RTerm in R).


Note that not all keys are supported, in particular the modifiers (ctrl, alt, etc.) are not. Supported special keys are:

  • Arrow keys: up, down, right, left. Available on most keyboards.
  • Function keys: from f1 to f12. Available on most keyboards.
  • Others: home, end, insert, delete, pageup, pagedown. Note that these are not available on OSX keyboards, so it is not a good idea to use them.


MIT © Gábor Csárdi



First released version.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


1.2.0 by Gábor Csárdi, 2 years ago


Report a bug at https://github.com/gaborcsardi/keypress/issues

Browse source code at https://github.com/cran/keypress

Authors: Gábor Csárdi [aut, cre] , Jon Griffiths [aut]

Documentation:   PDF Manual  

MIT + file LICENSE license

Imported by cursr.

See at CRAN