Overview
UnifyApps' application builder includes Dev Tools, a floating builder window that lets you inspect what your app is doing as you build it. Its Pulse tab streams every event, action, component method call, state change, data-source fetch, error, and log entry in real time, giving you a readable timeline of your app's behavior.


Dev Tools also includes a Console tab (the browser console for the page), a Network tab (the browser's raw network requests), and a State tab (a browsable view of the current page state — variables, functions, data sources, blocks, and global state). Pulse is distinct from the Network tab: Pulse covers app-level behavior — actions, state changes, component methods — not just HTTP requests.
Note: Dev Tools is a builder-only tool. It is not part of the published app and is never visible to end users.
This page is a short summary of the Pulse tab. For the full reference — stream columns, keyboard use, the State tab and window management — see Dev Tools & Debugger.
Pulse is not the same as the Traces block. The Traces block shows the execution trace of an AI agent or automation run inside your app.
Opening Dev Tools
In the builder, click Dev Tools in the left icon rail.
In Preview, click the Dev Tools toggle in the top bar.
Press Alt + Shift + D to toggle Dev Tools open or closed.
If the Dev Tools window is minimized, clicking Dev Tools or pressing the shortcut again restores it. Dev Tools works in the builder and in Preview.
Pulse starts recording the first time you switch to the Pulse tab, not when you open Dev Tools. It keeps recording while the window is minimized, and stops while it is paused or closed.
What Pulse Records
Pulse records seven event types, each presented as a readable description rather than raw data:
| Event type | What it represents |
| Event | Something the app fired, such as a component event. |
| Action | An action configured in the app ran, such as navigation, setting a variable, or submitting a form. |
| Component method | A method was called on a component. |
| State change | A value in the app's state changed. |
| Data source | A data-source fetch started, finished, failed, or was skipped. |
| Error | Something failed. |
| Log | A log entry. |
Identical consecutive events are grouped into one row with a count badge, such as ×2, next to the kind. Hover the badge to see how many events were grouped.
Event Details
Click any event row to open its Event details panel. Use Previous event and Next event to move through the stream, and Close details (or Escape) to dismiss it. Depending on the event, the panel has up to four tabs:
Payload — the data carried by the event, such as an action's inputs, a component method's arguments, an event payload, or a data-source request and response summary. Shows
No payloadwhen none exists.Error — shown and highlighted when the event failed. Includes the error message, source, and stack trace. If the failure includes input data, the Payload tab is also available.
State — the app's state as it stood at that moment.
Changes — a before-and-after state diff showing what was added, removed, or changed, with a count of the changes. Appears only when there is a difference to show.
Filtering in Pulse
The filter bar above the Pulse stream reads Filter by scope, kind, entity — or search messages…. To narrow the list:
Click the filter bar. A dropdown lists the filter keys under Filters and values under Suggestions.
Choose a key, then a value. The filter appears as a chip in the bar.
To search the messages instead, type your text and press Enter.
The three filter keys are:
Scope — where the event happened: the app, a page, or a module inside it.
Kind — the event type, one of the seven kinds above.
Entity — the item the event is about: a block, variable, function or data source.
Chips for different keys narrow the stream together. Two values for the same key show rows that match either one. To remove a chip, click its ×, or press Backspace in the empty filter bar.
Use Clear filters to remove the selected filters. This does not delete any events — it only changes which ones are shown.
Clearing Pulse Events
Pulse keeps the most recent 500 events. When the limit is reached, the oldest events are removed as new ones arrive.
Pause — the pause icon at the right of the filter bar (Pause new event capture). It stops new event capture without removing events already collected. Click it again to resume. The footer shows LIVE while Pulse records and PAUSED while it is paused, with the number of events.
Clear all captured events — the trash icon next to the pause icon. It empties the stream and starts over.
Minimize — in the window header. Pulse keeps recording while the window is hidden.
Close — in the window header. Closing Dev Tools stops recording and clears all events. Events do not persist after the window is closed.
Related Pages
Page | Relationship |
|---|---|
Full reference for Dev Tools, including every Pulse column, filter and keyboard control | |
Writes your own Log rows to the Pulse stream | |
Foundational explanation of triggers, action chains, and how they connect | |
Pulse shows when an On Receive MQTT Event interaction and its actions run | |
The State tab in an event's details shows page variable values at that moment |