Skip to content

Conversation

@cboecking
Copy link

Summary

Add kiosk mode to the web UI that provides a simplified user experience by hiding navigation elements.

URL Parameters

Parameter Description
?kiosk=true Hides sidebar and header
?dir=/path Auto-opens project and navigates to new session

Use Cases

  • Embedded deployments
  • Simplified onboarding experiences
  • Kiosk terminals
  • Single-project focused workflows

Example URLs

# Basic kiosk mode
http://localhost:4096/?kiosk=true

# Kiosk with auto-project
http://localhost:4096/?kiosk=true&dir=/home/user/my-project

Changes

  • packages/app/src/context/layout.tsx - Added kiosk.enabled() and kiosk.dir() state
  • packages/app/src/pages/layout.tsx - Conditional sidebar rendering
  • packages/app/src/components/session/session-header.tsx - Conditional header rendering
  • packages/app/src/pages/home.tsx - Auto-redirect logic for dir parameter
  • docs/KIOSK_MODE.md - Feature documentation

Test Plan

  • Verify ?kiosk=true hides sidebar (desktop)
  • Verify ?kiosk=true hides sidebar (mobile)
  • Verify ?kiosk=true hides header
  • Verify ?dir=/path auto-redirects to new session
  • Verify normal mode unaffected without parameters
  • Type checking passes

Add URL parameter ?kiosk=true to enable a simplified UI that hides:
- Left sidebar (desktop and mobile)
- Top header bar

Useful for embedded deployments or simplified user experiences.
Add dir parameter support for kiosk mode:
- ?dir=/path auto-opens project and navigates to new session
- Add documentation in docs/KIOSK_MODE.md
@github-actions
Copy link
Contributor

github-actions bot commented Jan 7, 2026

The following comment was made by an LLM, it may be inaccurate:

No duplicate PRs found

@adamdotdevin
Copy link
Contributor

Mind sharing a screenshot?

@cboecking
Copy link
Author

Hi @adamdotdevin, thank you for your quick consideration!

The below screenshot is as a result of putting the following in the url:
http://localhost:3000/?url=http://127.0.0.1:4096&kiosk=true&dir=/home/debian/code/opencode

Screenshot from 2026-01-07 09-41-11

@cboecking
Copy link
Author

Here is a screenshot when no dir/project is specified.

Screenshot from 2026-01-07 09-46-38

@cboecking
Copy link
Author

cboecking commented Jan 7, 2026

It is worth noting the use case that prompted this change:

  • I engage a business partner in a needs analysis meeting
  • After the meeting, I realize there are gaps in our plan
  • We document the plan and the gaps in a markdown file
  • We launch opencode with an agent that describes how to annotate the document to close the gaps
  • We send the url to the business partner with both kiosk enabled and the target directory where the markdown file exists.
  • The expectation is that the business partner use opencode to close the gaps and verify the plan.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants