sindresorhus/term-img

Display images in iTerm

318

stars

40

commits

JavaScript

primary language

Oct 7, 2025

updated

cli-utility
image
iterm2
nodejs
npm-package
terminal-image

README

term-img

Display images in terminals using the iTerm inline image protocol

You probably want the higher-level terminal-image package for displaying your images.

Even animated gifs!

Currently only supported on iTerm >=3, WezTerm, Konsole, Rio, and VSCode integrated terminal.

Install

npm install term-img

Usage

import terminalImage from 'term-img';

function fallback() {
	// Return something else when not supported
}

console.log(terminalImage('unicorn.jpg', {fallback}));

API

terminalImage(image, options?)

Get the image as a string that you can log manually.

image

Type: string | Uint8Array

File path to an image or an image as a buffer.

options

Type: object

width
height

Type: 'auto' | string | number

The width and height are given as a number followed by a unit, or the word 'auto'.

  • N: N character cells.
  • Npx: N pixels.
  • N%: N percent of the session's width or height.
  • auto: The image's inherent size will be used to determine an appropriate dimension.
preserveAspectRatio

Type: boolean
Default: true

fallback

Type: Function
Default: () => throw new UnsupportedTerminalError()

Enables you to do something else when the terminal doesn't support images.

Contributors

sindresorhus

32 commits

Richienb

2 commits

kevva

2 commits

tmgldn

1 commits

sindresorhus/term-img

Display images in iTerm

318

stars

40

commits

JavaScript

primary language

Oct 7, 2025

updated

cli-utility
image
iterm2
nodejs
npm-package
terminal-image

README

term-img

Display images in terminals using the iTerm inline image protocol

You probably want the higher-level terminal-image package for displaying your images.

Even animated gifs!

Currently only supported on iTerm >=3, WezTerm, Konsole, Rio, and VSCode integrated terminal.

Install

npm install term-img

Usage

import terminalImage from 'term-img';

function fallback() {
	// Return something else when not supported
}

console.log(terminalImage('unicorn.jpg', {fallback}));

API

terminalImage(image, options?)

Get the image as a string that you can log manually.

image

Type: string | Uint8Array

File path to an image or an image as a buffer.

options

Type: object

width
height

Type: 'auto' | string | number

The width and height are given as a number followed by a unit, or the word 'auto'.

  • N: N character cells.
  • Npx: N pixels.
  • N%: N percent of the session's width or height.
  • auto: The image's inherent size will be used to determine an appropriate dimension.
preserveAspectRatio

Type: boolean
Default: true

fallback

Type: Function
Default: () => throw new UnsupportedTerminalError()

Enables you to do something else when the terminal doesn't support images.

Contributors

sindresorhus

32 commits

Richienb

2 commits

kevva

2 commits

tmgldn

1 commits

Languages

JavaScript

95.3%

TypeScript

4.7%