---
name: "irb"
section: "1"
platform: "linux"
package: "ruby-irb"
version: "1.15.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/irb"
---

# irb(1)

Interactive Ruby Shell

## NAME

**irb** – Interactive Ruby Shell

## SYNOPSIS

**irb** \[**--version**\] \[**-dfUw**\] \[**-I** *directory*\] \[**-r** *library*\] \[**-E** *external*\[:*internal*\]\] \[**-W**\[*level*\]\] \[**--**\[no\]inspect\] \[**--**\[no\]multiline\] \[**--**\[no\]singleline\] \[**--**\[no\]echo\] \[**--**\[no\]colorize\] \[**--**\[no\]autocomplete\] \[**--**\[no\]verbose\] \[**--prompt** *mode*\] \[**--prompt-mode** *mode*\] \[**--inf-ruby-mode**\] \[**--simple-prompt**\] \[**--noprompt**\] \[**--tracer**\] \[**--back-trace-limit** *n*\] \[**--**\] \[program\_file\] \[argument ...\]

## DESCRIPTION

**irb** is the REPL(read-eval-print loop) environment for Ruby programs.

## OPTIONS

- **--version**

  Prints the version of **irb**.

- **-E** *external*\[:*internal*\]

  - **--encoding** *external*\[:*internal*\]

  Same as \`ruby -E' . Specifies the default value(s) for external encodings and internal encoding. Values should be separated with colon (:).

  You can omit the one for internal encodings, then the value (Encoding.default\_internal) will be nil.

- **-I** *path*

  Same as \`ruby -I' . Specifies $LOAD\_PATH directory

- **-U**

  Same as \`ruby -U' . Sets the default value for internal encodings (Encoding.default\_internal) to UTF-8.

- **-d**

  Same as \`ruby -d' . Sets $DEBUG to true.

- **-f**

  Suppresses read of *~/.irbrc*.

- **-w**

  Same as \`ruby -w' .

- **-W**

  Same as \`ruby -W' .

- **-h**

  - **--help**

  Prints a summary of the options.

- **-r** *library*

  Same as \`ruby -r'. Causes irb to load the library using require.

- **--inspect**

  Uses \`inspect' for output (default except for bc mode)

- **--noinspect**

  Doesn't use inspect for output

- **--multiline**

  Uses multiline editor module.

- **--nomultiline**

  Doesn't use multiline editor module.

- **--singleline**

  Uses singleline editor module.

- **--nosingleline**

  Doesn't use singleline editor module.

- **--extra-doc-dir**

  Add an extra doc dir for the doc dialog.

- **--echo**

  Show result (default).

- **--noecho**

  Don't show result.

- **--echo-on-assignment**

  Show result on assignment.

- **--noecho-on-assignment**

  Don't show result on assignment.

- **--truncate-echo-on-assignment**

  Show truncated result on assignment (default).

- **--colorize**

  Use colorization.

- **--nocolorize**

  Don't use colorization.

- **--autocomplete**

  Use autocompletion.

- **--noautocomplete**

  Don't use autocompletion.

- **--regexp-completor**

  Use regexp based completion.

- **--type-completor**

  Use type based completion.

- **--verbose**

  Show details.

- **--noverbose**

  Don't show details.

- **--prompt** *mode*

  - **--prompt-mode** *mode*

  Switch prompt mode. Pre-defined prompt modes are \`default', \`simple', \`xmp' and \`inf-ruby'.

- **--inf-ruby-mode**

  Uses prompt appropriate for inf-ruby-mode on emacs. Suppresses --multiline and --singleline.

- **--simple-prompt**

  Makes prompts simple.

- **--noprompt**

  No prompt mode.

- **--tracer**

  Displays trace for each execution of commands.

- **--back-trace-limit** *n*

  Displays backtrace top *n* and tail *n*. The default value is 16.

## ENVIRONMENT

- IRB\_LANG

  The locale used for **irb**.

- IRBRC

  The path to the personal initialization file.

- XDG\_CONFIG\_HOME

  **irb** respects XDG\_CONFIG\_HOME. If it is set and IRBRC is unset, load *$XDG\_CONFIG\_HOME/irb/irbrc* as a personal initialization file.

- RI\_PAGER

  The command specified would be used as a pager.

- PAGER

  The command specified would be used as a pager if RI\_PAGER is unset.

- VISUAL

  Its value would be used to open files by the edit command.

- EDITOR

  Its value would be used to open files by the edit command if VISUAL is unset.

- NO\_COLOR

  Assigning a value to it disables colorization.

- IRB\_USE\_AUTOCOMPLETE

  Assigning **false** to it disables autocompletion.

- IRB\_COMPLETOR

  Autocompletion behavior. Allowed values are **regexp** or **type**

- IRB\_COPY\_COMMAND

  Overrides the default program used to interface with the system clipboard.

Also **irb** depends on same variables as [ruby(1)](/ruby/1.md).

## FILES

- *~/.irbrc*

  Personal irb initialization. If IRBRC is set, read *$IRBRC* instead. If IRBRC is not set and XDG\_CONFIG\_HOME is set, *$XDG\_CONFIG\_HOME/irb/irbrc* is loaded.

## EXAMPLES

```
% irb
```

```
irb(main):001:0> 1 + 1
```

```
2
```

```
irb(main):002:0> def t(x)
```

```
irb(main):003:1> x + 1
```

```
irb(main):004:1> end
```

```
=> :t
```

```
irb(main):005:0> t(3)
```

```
=> 4
```

```
irb(main):006:0> if t(3) == 4
```

```
irb(main):007:1> p :ok
```

```
irb(main):008:1> end
```

```
:ok
```

```
=> :ok
```

```
irb(main):009:0> quit
```

```
%
```

## SEE ALSO

[ruby(1)](/ruby/1.md).

## REPORTING BUGS

- Security vulnerabilities should be reported via an email to *security@ruby-lang.org*. Reported problems will be published after being fixed.

- Other bugs and feature requests can be reported via the Ruby Issue Tracking System (**https://bugs.ruby-lang.org/**). Do not report security vulnerabilities via this system because it publishes the vulnerabilities immediately.

## AUTHORS

Written by Keiju ISHITSUKA.
