A modern web UI for Claude Code agents that allows you to access Claude Code anywhere in your browser with parallel background agents and task management.
Start a New Task
cui automatically scans your existing Claude Code history in ~/.claude/ and displays it on the home page, allowing you to resume any of your previous tasks. The dropdown menu in the input area shows all your previous working directories.
Fork a Task
To create a branch from an existing task (only supported for tasks started from cui), navigate to the "History" tab on the home page, find the session you want to fork, and resume it with new messages.
Manage Tasks
Feel free to close the page after starting a task—it will continue running in the background. When running multiple tasks (started from cui), you can check their status in the "Tasks" tab. You can also archive tasks by clicking the "Archive" button. Archived tasks remain accessible in the "Archived" tab.
cui uses Gemini 2.5 Flash to provide highly accurate dictation, particularly effective for long sentences. To enable this feature, you'll need a Gemini API key with generous free-tier usage. Set the GOOGLE_API_KEY environment variable before starting the server. Note that using this feature will share your audio data with Google.
You can receive push notifications when your task is finished or when Claude is waiting for your permission to use tools. Notifications are sent using ntfy. To receive them, install ntfy on any of your devices and subscribe to the topic (see settings).
Open ~/.cui/config.json to set the server.host (0.0.0.0) and server.port. Alternatively, you can use --host and --port flags when starting the server.
Ensure you use a secure auth token if accessing the server from outside your local network. The auth token is generated when you start the server and can be changed in the ~/.cui/config.json file.
Recommended: Use HTTPS to access the server. You can use a reverse proxy like Caddy to set this up. On iOS, the dictation feature is only available when using HTTPS.