D07 UX catalog - screens & user-visible messages
English product copy only. Companion to the normative behavior inventory 07-desktop-ux.md.
This file lists what the user can see: screens, chrome, tips, dialogs, toasts, and terminal install lines.
Shells: denyout-desktop (tray + Wails window) - denyout desktop (tray + native dialogs).
1. Install (terminal)
Typical desktop install lines the user may see:
| Message / line |
denyout install: version=... os=... arch=... |
denyout install: fetching ... |
denyout install: checksum ok |
denyout install: installed .../denyout |
denyout install: installed .../denyout-desktop or note that desktop asset is missing |
denyout install: done |
denyout version output |
denyout install: mode=desktop (...) / mode=server (...) |
Desktop install - silent: autostart, try Protect computer, tray in background. |
Server: Server install - no tray, no localhost web UI. + hints for init / run / serve |
Optional prompt:
Choose install type:
1) Desktop - native tray + Protect this computer (no browser UI)
2) Server - CLI only; no tray, no web services
Install type [1=Desktop / 2=Server]:
2. System tray
| Condition |
Tooltip |
| Off |
DenyOut - Off |
| Protect / wrap on |
DenyOut - Protected / DenyOut - Agents only / DenyOut - Limited (session) |
| Off, computer unavailable |
Status may show Off (unavailable) |
App name: DenyOut.
2.2 Clicks
| Input |
Result |
| Left-click |
Open Home (or native denial list) |
| Right-click |
Compact menu below |
| Label |
Off / Protected / Agents only / ... (disabled status line) |
Protect computer or Protect computer ✓ |
My agents... |
Off or Off ✓ |
Open DenyOut... |
Quit DenyOut |
3. Wails window - shared chrome
| Element |
Copy |
| Brand |
DenyOut |
| Nav |
Home - History - Settings - Problems - My agents (demoted) - Jump via Ctrl+K only |
| Problems badge |
Red dot; title Needs attention |
| Mode pill |
Protected (Safe on) / Agents only / Off / ... |
| Status (healthy) |
Protected when Safe on; else live status |
| Status (unhealthy) |
Needs attention - open Problems |
| Button |
Open Problems (when unhealthy) |
| Button |
Refresh |
| Window close (X) |
Hides to tray (not Quit) |
3.1 Jump modal (Ctrl+K)
| Element |
Copy |
| Title |
Jump to |
| Placeholder |
Type a screen... |
| Rows |
Home - History - My agents - New agent - Settings - Allowed / silenced sites - Resume asks - Agents only - Problems |
| Footer |
Esc to close - Ctrl+K to open |
4. Onboarding layers (one at a time)
4.1 Modal: Your setup
| Element |
Copy |
| Title |
Your setup |
| Body (safe) |
You are protected. Browse as usual - we'll only interrupt for clear risks. |
| Body (agents) |
Protect computer is off for now. Use My agents for AI tools, or turn on Protect computer from Home or the tray. |
| Body (off) |
Protection is off. Turn on Protect computer from Home or the tray when you are ready. |
| Bullets |
- When something is blocked: Keep blocked or Allow this site. |
|
- Open DenyOut (Home) to see if you are protected and what was blocked. |
|
- If Protect failed, open Problems. |
| Footer |
Privacy: decisions stay on this computer. |
| Buttons |
Open DenyOut (primary -> Home) - Got it |
Native title when shown outside Wails: DenyOut - Your setup (same body/buttons).
4.2 Card: Getting started
Dropped - Home covers first open.
4.3 Tip: Protect (glossary)
Protect computer keeps everyday browsing safe. Open Home anytime to see if you are protected - History shows what was blocked.
Button: Got it
4.4 Per-screen tips (each: body + Got it)
| Tip id |
Body |
| activity |
This is your block history. Open a row to decide Allow this site - only when you trust it. |
| profiles |
For AI tools: wrap one command... Everyday browsing stays on Home -> Protect computer. |
| settings-basic |
Basic is On/Off, notifications, and autostart. Allowed sites and rare options live under Advanced. |
| settings-advanced |
Advanced lists, diagnostics, and the whole-PC Agents only mode. Changes here affect what DenyOut allows permanently. |
4.5 Screen: Home (default) - primary; see ux-iters/home.md
| Region |
Labels / copy |
| Protected |
You are protected - Browse as usual. We'll only interrupt for clear risks. - Turn off |
| Off |
Protection is off - Turn on Protect computer... - Turn on Protect computer |
| Needs help |
Needs your help - Something went wrong... - Try Protect computer again - Open Problems |
| Last blocked |
Host - human why - Allow this site (primary) - See history (secondary) |
| Empty |
Nothing blocked yet - that is OK. - Toast expect copy - quiet See history |
| Agents only |
Protection isn't set for everyday browsing - Turn on Protect... - Turn on Protect computer |
| Optional |
Quiet Blocked today: N (when N>0) - no charts / tops |
| Footer doors |
Settings - For AI tools (text links) |
| Not on Home |
Tables, Filters, reason codes, health, Jump, allow-lists, Agents only |
5. Screen: History (nav label; route activity)
| Region |
Labels / copy |
| Toolbar |
Filters / Hide filters - Select... / Done selecting - Always allow selected (N) - Refresh |
| Filters |
Placeholder Search host, URL, why... - reason options - Remembered Keep only - Group by host |
| Reason options |
All reasons - Secret in link - Secret in header - Secret in body - Canary detected - Host denied - Unsafe IP - Host not allowed |
| Table headers |
Time - Site - Why - (Always allow) |
| Row hints |
Keep remembered - Latest for host |
| Row button |
Always allow (secondary) |
| Empty |
Nothing blocked yet - that is OK. Toast expect copy. |
| Empty CTA |
Try a safe check... |
| Drawer |
Host title - human Why - URL - Allow this site (primary) - Always allow host - Copy URL |
| Drawer details |
Technical details - Reason codes - Method - Process - Detectors - When |
| Drawer note |
Secrets in URLs are shown as ***. Allow this site matches the toast. |
| Empty drawer |
Select a row to see why it was blocked and what you can do. |
6. Screen: My agents
| Region |
Labels / copy |
| Toolbar |
New agent - Refresh |
| Learning card |
Learning - While learning is on, Allow once hosts... Pin / Discard... not a tray primary action. |
| Empty |
No agents yet. Create one to wrap a command with Ask / learning. You can also start from the tray: My agents... |
| Table |
Name - Command - Ask - Learning - Status - actions |
| Row actions |
Start / Stop - Edit - Pin - Discard - Delete |
| Delete confirm |
Delete agent <name>? |
| Modal titles |
New agent / Edit agent |
| Fields |
Name - Command (claude or python app.py) - Workdir - Ask before new hosts - Learning (Once -> Pin) - Require stronger isolation (srt) |
| Modal buttons |
Save - Cancel |
7. Screen: Settings
| Shared | Find a setting... (always allow, keeps, asks, agents only...) - tabs Basic - Advanced |
7.1 Basic
| Card |
Copy / controls |
| Protection |
Turn Protect computer on to block... Prefer My agents... |
|
Turn on Protect computer - Turn off - (Switch to Protect computer only if Agents only) |
|
Now: Protected / Off / mode label |
| Notifications |
Show OS notifications for blocks and asks |
| Autostart |
Launch DenyOut at login |
7.2 Advanced
| Card |
Copy / controls |
| Account |
Sign in to sync settings across computers. DenyOut works fully without an account. |
|
Email - Email me a code - One-time code - Sign in - (signed in) Sync settings - Sync now - Sign out - Delete cloud data |
| Sites I've allowed or silenced |
Allowed + Silenced (Keep blocked) - Filter - Undo last allow - Remove / Clear |
| Agents only (whole PC) |
Almost nobody needs this... Prefer My agents. |
|
Enable Agents only (whole PC)... |
| Confirm |
Turn on Agents only for the whole computer? Messengers... Prefer My agents... Only continue if you understand the risk. |
| Asks |
After many Ask prompts... - Resume asks / Asks not paused |
| Diagnostics |
Version - Logs - Audit - Open diagnostics folder - Test protection... - Check for updates - Open update |
|
Update checks use a public version file - no sign-in. Protect still works if the check fails. |
|
Privacy: decisions stay on this computer. |
8. Screen: Problems
| Card |
Copy / controls |
| Summary |
Fix-first headline - Retry Protect computer - Copy last error - Open diagnostics - error pre when present |
| Update available |
DenyOut {version} is ready. No sign-in needed - Open release |
| Last blocked |
Host / URL / summary - Open in History - Empty: No recent denial recorded. |
| Details |
Health: Mode - Control IPC - Proxyd - Session proxy - CA - Clipboard - log path |
9. OS toasts & dialogs (outside the window)
9.1 Post-block (Safe desktop)
| Element |
Copy |
| Title |
DenyOut blocked something |
| Body |
<host> - human why - optional URL - Keep blocked, or Allow this site? |
| Actions |
Keep blocked - Allow this site (~15s -> Keep) |
| Follow-ups |
Allowed this site: <host> - Undid block for now: <host> - quiet re-block -> History |
9.2 Pre-act Ask (wrap / Agents only)
| Element |
Copy |
| Urgent toast |
DenyOut needs a decision - Choose Allow once, Always allow, or Keep blocked. |
| Dialog |
<who> wants to reach <host>. - human why - Allow once / Always allow / Keep blocked |
| Dialog actions |
Allow once - Always allow - Keep blocked |
| Timeout |
Permission timed out - still blocked: \<host> |
9.3 Ask storm / IP
| Message |
| Many permission prompts... Pause asks / Keep asking |
| Asks paused for 15 minutes... Resume from Settings -> Advanced. |
| Title DenyOut blocked a direct IP - Connections by raw IP are blocked in this mode... Prefer Protect computer... |
9.4 Protection / mode toasts (examples)
| Message |
| You're protected. Browse as usual. We'll only interrupt for clear risks. |
| Protection is off. Running agents (if any) keep going - stop them from My agents. |
| A password window should have appeared. If you cancelled it, protection stayed Off... |
| Already protecting whole computer. |
| Protection is already off. (Running agents are separate - use My agents -> Stop.) |
| Agents only is on for the whole computer. Open DenyOut -> Settings to switch back to Safe desktop. |
| Safe desktop - web works as usual. |
| Could not enable Agents only (admin may be required). |
| Asks resumed. |
| Undid always-allow: \<host> |
| Always-allow list is empty. |
| Test: open a browser and visit a normal site... Keep blocked / Allow this site for 15 seconds. |
9.5 First-run / migration dialogs
| Title |
Body / buttons |
| DenyOut |
How should DenyOut protect this computer? - Protect computer - Protect AI agents - Not now |
| DenyOut |
Start DenyOut automatically when you log in? - Recommended... - Yes/No |
| DenyOut update |
Earlier DenyOut versions defaulted to Agents only... - Switch to Safe / Keep Agents only |
| DenyOut - Agents only |
Turn on Agents only for the whole computer? ... - Turn on Agents only / keep Safe |
| DenyOut |
DenyOut closed unexpectedly. Some wrapped agents... Stop leftover processes? |
9.6 Native My agents (fallback shell only)
| Surface |
Copy |
| List |
DenyOut - My agents - Select an agent: - ➕ New agent... - Stop all agents |
| Wizard |
DenyOut - new agent / command / working folder / allowlist / stronger isolation |
| Actions |
Start - Stop - Edit... - Delete - Pin learning (N)... - Cancel |
10. Privacy line (recurring)
Privacy: decisions stay on this computer.