MCPcopy Index your code
hub / github.com/electron/devtron

github.com/electron/devtron @v2.1.1

repository ↗ · DeepWiki ↗ · release v2.1.1 ↗ · Ask this repo → · + Follow
66 symbols 189 edges 34 files 4 documented · 6% updated 3d agov2.1.1 · 2025-11-18★ 1,7767 open issues
README

Devtron icon Devtron

Test npm 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.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:
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 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:

// 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:

// 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.

Extension points exported contracts — how you extend this code

TrackIpcEventOptions (Interface)
(no doc)
src/index.ts
IpcEventData (Interface)
(no doc)
src/types/shared.ts
PanelMessage (Interface)
(no doc)
src/lib/electron-renderer-tracker.ts
DevtronContextType (Interface)
(no doc)
src/extension/react/context/context.tsx
InstallOptions (Interface)
(no doc)
src/types/shared.ts
DevtronProviderProps (Interface)
(no doc)
src/extension/react/context/context.tsx
IpcEventDataIndexed (Interface)
(no doc)
src/types/shared.ts

Core symbols most depended-on inside this repo

log
called by 16
src/utils/Logger.ts
error
called by 14
src/utils/Logger.ts
trackIpcEvent
called by 13
src/index.ts
track
called by 8
src/lib/electron-renderer-tracker.ts
listener
called by 8
spec/devtron-install-spec.ts
warn
called by 7
src/utils/Logger.ts
getArgsFromPayload
called by 6
src/index.ts
info
called by 3
src/utils/Logger.ts

Shape

Function 50
Interface 7
Method 6
Class 2
Enum 1

Languages

TypeScript100%

Modules by API surface

src/index.ts15 symbols
src/utils/Logger.ts8 symbols
src/lib/electron-renderer-tracker.ts6 symbols
src/extension/react/components/Panel.tsx5 symbols
src/types/shared.ts4 symbols
src/extension/react/context/context.tsx4 symbols
src/extension/background/index.ts4 symbols
spec-electron-setup/electron/main.js4 symbols
spec/devtron-install-spec.ts3 symbols
src/extension/react/components/DirectionBadge.tsx2 symbols
src/extension/react/AgGridFilters/DirectionFilter.tsx2 symbols
src/extension/react/utils/formatTimestamp.ts1 symbols

Dependencies from manifests, versioned

@eslint/js9.27.0 · 1×
@fontsource-variable/roboto5.2.5 · 1×
@fontsource/space-mono5.2.5 · 1×
@tsconfig/node2222.0.2 · 1×
@types/chai5.2.2 · 1×
@types/chrome0.0.326 · 1×
@types/mocha10.0.10 · 1×
@types/node22.10.7 · 1×
@types/react19.1.8 · 1×
@types/react-dom19.1.6 · 1×
@types/webpack-env1.18.8 · 1×

For agents

$ claude mcp add devtron \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact