Note
This project is under development and subject to change.
This project uses Yarn 4 to manage dependencies.
To get started:
- Clone the repository to your local machine
- Run
yarn installto install dependencies - Run
yarn buildto build the project
- 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);});}Installs Devtron into the Electron app. Refer to Configuring an Electron App to use Devtron for installation instructions.
| Option | Type | Default | Description |
|---|---|---|---|
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'});Returns a Promise that resolves to the array of IPC events recorded by the Devtron service worker since installation.
If the
Clear all eventsbutton 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);- 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.oncewill be tracked as two separate events:ipcRenderer.onandipcRenderer.removeListener.
If Devtron is installed correctly, it should appear as a tab in the Developer Tools of your Electron app.

