# devtron **Repository Path**: mirrors_electron/devtron ## Basic Information - **Project Name**: devtron - **Description**: An Electron DevTools Extension - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-27 - **Last Updated**: 2026-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Devtron icon Devtron [![Test](https://github.com/electron/devtron/actions/workflows/test.yml/badge.svg)](https://github.com/electron/devtron/actions/workflows/test.yml) [![npm version](http://img.shields.io/npm/v/@electron/devtron.svg)](https://npmjs.org/package/@electron/devtron) > [!NOTE] > This project is under development and subject to change. ## Building and Development This project uses [Yarn 4](https://yarnpkg.com/) 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: ```js // main.js const { 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: ```js const { app } = require('electron'); const isDev = !app.isPackaged; async function installDevtron() { const { devtron } = await import('@electron/devtron'); await devtron.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](#configuring-an-electron-app-to-use-devtron) for installation instructions. #### `Options` | 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: ```js // Only 'warn' and 'error' logs will appear in the terminal await devtron.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: ```js // main.js import { devtron } from '@electron/devtron'; // Ensure Devtron is installed before calling getEvents() devtron.install(); setInterval(async () => { const ipcEvents = await devtron.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.