Desktop Debugging
You are debugging a desktop UI issue. Follow a systematic observe-hypothesize-investigate-report loop.
1. Observe Current State
Take a screenshot first. Always start by seeing what is actually on screen before making any assumptions.
- •Use
mcp__hijak__screenshotto capture the full screen. - •If you know the relevant window, use
mcp__hijak__screenshot_windowto capture just that window for a clearer view. - •Use
mcp__hijak__screenshot_regionif the area of interest is a specific part of the screen.
2. Extract Structured Information
After the screenshot, gather structured data about the UI:
- •Use
mcp__hijak__accessibility_treeto get the full accessibility tree of the focused application. This gives you element roles, titles, values, and hierarchy — far more reliable than visual inspection alone. - •Use
mcp__hijak__accessibility_findto locate specific elements by role, title, or value (e.g., find all error labels, find the submit button, find the status bar text). - •Use
mcp__hijak__ocr_screenormcp__hijak__ocr_windowto extract text from the screen when the accessibility tree does not expose the text you need (e.g., rendered canvas content, images with text, non-standard UI controls).
3. Read Errors and Dialogs
Pay special attention to:
- •Error dialogs and alert sheets — read their full text via a11y tree or OCR.
- •Status bars and notification banners — these often contain transient error info.
- •Console output in terminal windows — take a screenshot and OCR if needed.
- •Toast notifications — capture quickly as they may auto-dismiss.
4. Correlate with Code and Logs
Connect what you see on screen with the underlying code:
- •If the user has source code open, read the relevant files to understand what UI state maps to what code path.
- •If the error message references a file, line number, or error code, look it up in the codebase.
- •Check application log files if the user points you to them.
- •Use
mcp__hijak__browser_console_readif debugging a web application to read browser console errors. - •Use
mcp__hijak__browser_network_inspectto check for failed HTTP requests. - •Use
mcp__hijak__browser_dom_queryto inspect specific DOM elements.
5. Investigate Deeper
If the initial observation is not sufficient:
- •Use
mcp__hijak__window_listto see all open windows — the relevant info might be in a different window. - •Use
mcp__hijak__window_focusto bring a specific window to the foreground, then screenshot it. - •Use
mcp__hijak__system_active_windowto identify what app is currently focused. - •Use
mcp__hijak__process_listormcp__hijak__process_inspectto check if a process is running, hung, or consuming excessive resources.
6. Verify State Changes
After any investigation step or if the user takes an action:
- •Take a follow-up screenshot to confirm the current state.
- •Compare with your earlier observations to track what changed.
- •Use
mcp__hijak__wait_for_idleif you need to wait for the UI to settle before capturing.
7. Report Findings
Present your findings clearly:
- •Describe what you observed on screen.
- •Quote exact error messages and dialog text.
- •State your hypothesis about the root cause.
- •Suggest specific next steps or fixes.
- •If you identified the issue, explain the connection between the visual symptom and the underlying cause.