Skip to main content

Hosanna DevTools Extension

The Hosanna DevTools extension is the interactive debugger UI for Hosanna apps. It connects through the Hosanna command debugger WebSocket proxy and can target either a web app or a Roku/device app.

The extension is available from the Chrome Web Store:

Hosanna DevTools debugger workflow

The extension, MCP tools, web apps, and device apps all share the same debugger proxy and remote inspection protocol.

https://chromewebstore.google.com/detail/hosanna-devtools/epghgnobcajmnhkcablhcghiljopploj

For extension development, ../hosanna-ui-browser-extension runs the panel at http://localhost:3000 with:

cd ../hosanna-ui-browser-extension
npm run dev

Required Services

A useful debugging session has three pieces running:

# App repo
npx hst run:debugger
npm run dev

hst run:debugger opens the proxy ports used by the extension and MCP:

PortClient
59150management HTTP API
59151web app WebSocket
59152device app WebSocket
59153DevTools extension WebSocket

npm run dev in current Hosanna apps usually calls hst run:dev, which can run Vite, generator watch, and the debugger together.

Connecting

Open browser DevTools on an http://, https://, or localhost page. The Hosanna tab only appears on real pages, not browser settings or blank tabs.

Use the app selector at the top of the extension to choose the connected app. The selector lists apps discovered by the debug proxy, including web apps, device apps, and debug-app targets.

In Settings, choose the target type and device/app details:

  • Web: sends remote keys and inspection commands through the debugger proxy.
  • Device: sends Roku ECP commands to the configured device IP and uses the device app WebSocket for view inspection.
  • Debug app: targets a debugger-managed app instance exposed by the proxy.

Main Panels

The extension panels map to the remote debug protocol:

ShortcutPanelPrimary use
1Hosanna ViewsInspect Hosanna view hierarchy, state, errors, and mapped properties
2Scene Graph ViewsInspect rendered SG node hierarchy and update SG fields
3Collection ViewInspect CollectionView rows/cells, focused indices, slices, recordings, and diagnostics
4FragmentInspect fragment mappings and data-bound child properties
5IoC ContainerInspect registered services and selected service state
6Instance PoolInspect reusable instance pools
7RegistryRead, add, update, remove, import, export, or clear registry data
8EventsSend custom app events
9Text to SpeechInspect speaking state, queue, completed items, and control playback
lLogsFilter, export, copy, and clear app logs
0SettingsConfigure highlighting, logging, editor links, device IP, and target selection

The top toolbar also exposes scene overflow, mouse inspection, the remote control, and the device simulator.

Keyboard Shortcuts

Open the help screen with ?.

KeyAction
rToggle remote control
sToggle device simulator
aFocus the app selector
0-9Change main tab
lOpen Logs
?Open help
hRemote Home
*Remote Info
HomeRemote Rewind
EndRemote Fast forward
tFocus remote text entry
EscClear remote text
EnterSend remote text or Select
Arrow keysRemote navigation
BackspaceRemote Back

Shortcuts are ignored while focus is inside an input, textarea, select, contenteditable area, or the remote text entry field.

Settings That Matter

  • Highlight elements on hover: highlights views as you move through debugger trees.
  • Highlight selected element: keeps a sticky highlight around the selected element on device/app.
  • Auto hide generated ids: reduces noise from generated view IDs.
  • Auto-scroll to corresponding item on tab switch: keeps HS/SG/CV trees aligned as you move between panels.
  • Device IP: Roku device target for ECP commands and screenshots.
  • Logging Configuration: set global level and optionally disable individual trace, debug, info, log, warn, or error channels.
  • Editor Integration: controls stack trace links for Cursor or VS Code and the source path used to resolve files.