Skip to content
PluginStats

vite-plugin-terminal weekly downloads statistics

By patak-dev · npm · Vite plugins

Log in the node terminal from the browser

View on npm Stale · Oct 18, 2026

vite-plugin-terminal has 14,670 recorded weekly downloads on npm, a decrease of 48.4% over the past 30 days, ranking #864 of 2,322 tracked listings.

Weekly downloads
14,670
Official API · Oct 18, 2026
7-day growth
-21.3%
-4K weekly downloads
30-day growth
-48.4%
-13.7K weekly downloads
90-day growth
-28.2%
-5.8K weekly downloads
Rank
#864
Among tracked npm listings

About vite-plugin-terminal

vite-plugin-terminal

NPM version

Log in the node terminal from the browser

Open a playground online in StackBlitz

Install

npm i -D vite-plugin-terminal

Add plugin to your vite.config.ts:

// vite.config.ts
import Terminal from 'vite-plugin-terminal'

export default {
  plugins: [
    Terminal()
  ]
}

Usage

In your source code import terminal, and use it like you do with console.log.

import { terminal } from 'virtual:terminal'

terminal.log('Hey terminal! A message from the browser')

The terminal log calls will be removed when building the app.

Types

There are two ways of telling typescript about the types of the virtual import:

  • In your global.d.ts file add the following line:

    /// <reference types="vite-plugin-terminal/client" />
    
  • In your tsconfig.json add the following to your compilerOptions.types array:

    {
      // ...
      "compilerOptions": {
        // ...
        "types": [
          "vite-plugin-terminal/client"
        ],
      },
    }
    

API

Supported methods:

  • terminal.log(obj1 [, obj2, ..., objN])
  • terminal.info(obj1 [, obj2, ..., objN])
  • terminal.warn(obj1 [, obj2, ..., objN])
  • terminal.error(obj1 [, obj2, ..., objN])
  • terminal.assert(assertion, obj1 [, obj2, ..., objN])
  • terminal.group()
  • terminal.groupCollapsed()
  • terminal.groupEnd()
  • terminal.table(obj)
  • terminal.time(id)
  • terminal.timeLog(id, obj1 [, obj2, ..., objN])
  • terminal.timeEnd(id)
  • terminal.clear()
  • terminal.count(label)
  • terminal.countReset(label)
  • terminal.dir(obj)
  • terminal.dirxml(obj)

These methods will work but use the console

  • terminal.trace(...args: any[])
  • terminal.profile(...args: any[])
  • terminal.profileEnd(...args: any[])

Redirect console logs to the terminal

If you want the standard console logs to appear in the terminal, you can use the console: 'terminal' option in your vite.config.ts:

// vite.config.ts
import Terminal from 'vite-plugin-terminal'

export default {
  plugins: [
    Terminal({
      console: 'terminal'
    })
  ]
}

In this case, you don't need to import the virtual terminal to use the plugin.

console.log('Hey terminal! A message from the browser')

You can also overwrite it in your index.html head manually in case you would like more control.

  <script type="module">
    // Redirect console logs to the terminal
    import terminal from 'virtual:terminal'
    globalThis.console = terminal
  </script>

Check the Console playground for a full example.

Log in both the terminal and the console

You can use the output option to define where the terminal logs should be logged. Accepts terminal, console, or an array with both.

// vite.config.ts
import Terminal from 'vite-plugin-terminal'

export default {
  plugins: [
    Terminal({
      output: ['terminal', 'console']
    })
  ]
}

Examples

  • Basic - Playground using every available method.
  • Console - Redirect standard console logs to the terminal.
  • Auto Import - Use unplugin-auto-import to make terminal global in your app.
  • Vue - Example of logging to the terminal from a Vue App.

Options

console

Type: 'terminal' | undefined<br> Default: undefined<br>

Set to 'terminal' to make globalThis.console equal to the terminal object in your app.

output

Type: 'terminal' | 'console' | ['terminal', 'console']<br> Default: terminal<br>

Define where the output for the logs.

strip

Type: boolean<br> Default: true<br>

Strip terminal.*() when bundling for production.

include

Type: String | RegExp | Array[...String|RegExp]<br> Default: /.+\.(js|ts|mjs|cjs|mts|cts)/<br> Example: include: '**/*.(mjs|js)',<br>

A pattern, or array of patterns, which specify the files in the build the plugin should operate on when removing calls for production.

exclude

Type: String | RegExp | Array[...String|RegExp]<br> Default: []<br> Example: exlude: 'tests/**/*',<br>

A pattern, or array of patterns, which specify the files in the build the plugin should ignore when removing calls for production.

Credits

Sponsors

<p align="center"> <a href="https://patak.dev/sponsors.svg"> <img src="https://patak.dev/sponsors.svg"/> </a> </p>

License

MIT License © 2022-present Matias Capeletto

Description from the npm listing.

  • vite-plugin

README badge

Show your rank in a README or on your website. The badge updates automatically.

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

vite-plugin-terminal weekly downloads on npm, last 90 days: 14,670 weekly downloads as of Oct 18, 2026, -28.2% over 90 days.vite-plugin-terminalWeekly downloads on npm · Last 90 days14,670downloads / week-28.2% over 90 days010K20K30K40K50K60KJul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 23, 2026 – Oct 18, 2026 · 88 observations · Updated Oc…pluginstats.com
vite-plugin-terminal weekly downloads on npm, last 90 days: 14,670 weekly downloads as of Oct 18, 2026, -28.2% over 90 days.

7/30/90-day growth

vite-plugin-terminal weekly downloads growth on npm: -21.3% over 7 days, -48.4% over 30 days, -28.2% over 90 days.vite-plugin-terminalWeekly downloads growth on npm14,670downloads / week now7-day growth-3,960 weekly downloads-21.3%30-day growth-13,748 weekly downloads-48.4%90-day growth-5,767 weekly downloads-28.2%Growth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
vite-plugin-terminal weekly downloads growth on npm: -21.3% over 7 days, -48.4% over 30 days, -28.2% over 90 days.

Ranking history

vite-plugin-terminal npm ranking history: currently #864 (by weekly downloads).vite-plugin-terminalnpm ranking · by weekly downloads · Last 90 days#864current rank#859#860#861#862#863#864#865#866Jul 22Aug 6Aug 21Sep 5Sep 20Oct 5Oct 20rankOct 18, 2026 – Oct 20, 2026 · 3 observations · Updated Oct 18, 2026pluginstats.com
vite-plugin-terminal npm ranking history: currently #864 (by weekly downloads).

Listing placement

All npm2,320 listings · 116 pages · 1,161 shown · page 44, #5 (overall #865)
All npm: every listing in weekly downloads order

Listing placement

Vite plugins253 listings · 13 pages · page 8, #4 (overall #144)
Vite plugins: every listing in weekly downloads order

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (122)
Recent weekly downloads observations for vite-plugin-terminal
Date (UTC)Weekly downloadsChange vs. previous
14,670+2.4K
12,269-2.1K
14,332+1.2K
13,129-4.5K
17,678-5.8K
23,4680
23,468+4.8K
18,630+547
18,083-447
18,530-1.7K
20,242-818
21,060-500
21,560-6.4K
27,918—

Similar npm Vite plugins plugins

All 20 vite-plugin-terminal alternatives

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/vite-plugin-terminal. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.