Show HN: Kanna – OSS Web UI for Claude Code and Codex with Embedded Terminals
github.comHey all thanks for checking out my first OSS PROJECT
Here's what makes Kanna special:
- One-click switch between Claude Code / Codex - Runs in your browser on localhost (no app switching) - Embedded split terminals, persisted between chats with a beautiful horizontal scrolling UX
Coming soon:
- End-to-end encryption + remote access via reverse proxy - Git integration, diffs, PRs - Remote / mobile support over tailscale
I wanted to replace switching between cursor, the github app, browser & (most recently) the codex app. The browser is hardest to recreate yet also the most flexible so it makes sense to build in the browser itself.
Install in 5 seconds: bun install -g kanna-code then just type: kanna
Kanna is purely a ui/ux layer. It uses your existing CLIs, is compliant & no data ever leaves your machine. If running claude or codex in your terminal works, kanna works too.
Kanna natively supports every tool call, model, reasoning effort, fast mode, plan mode, compaction, user questions, web searching, skills, agents, mcps, everything. There are a few libraries that do this but none that I found as comprehensive.
All feedback welcome! I use Conductor personally. At work I use worktrunk. But I like your web based approach. Do you plan to have worktrees support anytime soon. I would be a killer feature for me! Nice project. I use Claude Code daily for building macOS apps (shipped two: a process killer and a productivity timer). The terminal-only workflow works but gets messy once you're juggling multiple projects.
Curious about the multi-provider switching — how smooth is it in practice? I've been running a "two Claude" setup where I use Claude (web/Opus) for architecture decisions and Claude Code for implementation. The hardest part is keeping context in sync between the two. Does Kanna help with that at all, or is it more about having a better UI for a single session?
The project grouping in the sidebar is a great touch — that's one of my biggest pain points with vanilla Claude Code. Hey! No interface with claude web - its really just a ui for using either codex or claude code locally in one place. Switching is super easy (one toggle under input area) but you cant change mid convo!