Skip to content

An Electron DevTools Extension

License

Notifications You must be signed in to change notification settings

electron/devtron

Repository files navigation

Devtron icon Devtron

Testnpm version

Note

This project is under development and subject to change.

Building and Development

This project uses Yarn 4 to manage dependencies.

To get started:

  • Clone the repository to your local machine
  • Run yarn install to install dependencies
  • Run yarn build to build the project

Configuring an Electron App to use Devtron

  • In your Electron app's main entry point, add the following code to load Devtron:
// main.jsconst{ devtron }=require('@electron/devtron');// or import{devtron } from '@electron/devtron'devtron.install();// call this function at the top of your file
  • Devtron can be conditionally installed in development mode to avoid impacting production builds. Here's an example:
const{ app }=require('electron');constisDev=!app.isPackaged;asyncfunctioninstallDevtron(){const{ devtron }=awaitimport('@electron/devtron');awaitdevtron.install();}if(isDev){installDevtron().catch((error)=>{console.error('Failed to install Devtron:',error);});}

Devtron API

await devtron.install(options)

Installs Devtron into the Electron app. Refer to Configuring an Electron App to use Devtron for installation instructions.

Options

OptionTypeDefaultDescription
logLevel'debug' | 'info' | 'warn' | 'error' | 'none''warn'Sets the minimum log level for the logger. Messages below this level are ignored.

Levels:
debug — logs: debug, info, warn, error
info — logs: info, warn, error
warn — logs: warn, error
error — logs: error only
none — disables all logging

Examples:

// Only 'warn' and 'error' logs will appear in the terminalawaitdevtron.install({logLevel: 'warn'});

await devtron.getEvents()

Returns a Promise that resolves to the array of IPC events recorded by the Devtron service worker since installation.

  • If the Clear all events button in the Devtron UI is clicked, this array will be cleared.

  • If the array size exceeds 20,000 events, it will be truncated to the most recent 20,000 events.

  • If called before installation or before the Devtron service worker is ready, an empty array will be returned.

Here's a usage example that keeps logging IPC events every 2 seconds:

// main.jsimport{devtron}from'@electron/devtron';// Ensure Devtron is installed before calling getEvents()devtron.install();setInterval(async()=>{constipcEvents=awaitdevtron.getEvents();console.log('IPC Events:',ipcEvents);},2000);

Requirements and Limitations

  • Electron version must be 36.0.0 or higher.
  • For Devtron to work with newly created sessions, you must call devtron.install() before they are created.
  • Some IPC events sent immediately after the Electron app starts may not be captured by Devtron, even if devtron.install() is called early, because Devtron may take a short time to initialize after starting the app.
  • ipcRenderer.once will be tracked as two separate events: ipcRenderer.on and ipcRenderer.removeListener.

If Devtron is installed correctly, it should appear as a tab in the Developer Tools of your Electron app.

About

An Electron DevTools Extension

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 7