# 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
[](https://github.com/electron/devtron/actions/workflows/test.yml)
[](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.
