kanna  by jakemor

Web UI for AI code assistants

Created 2 weeks ago

New!

446 stars

Top 67.1% on SourcePulse

GitHubView on GitHub
Project Summary

Kanna provides a polished, web-based user interface for interacting with Claude Code and Codex CLIs, enhancing local AI development workflows. It targets developers who leverage these command-line tools, offering a centralized, feature-rich environment for managing AI-assisted coding projects and conversations, thereby improving productivity and user experience.

How It Works

The architecture employs a React frontend communicating via WebSockets to a Bun backend. Core to its design are event sourcing and CQRS patterns, where all state mutations are logged as append-only JSONL events. Read models are derived from these logs, enabling efficient querying and reactive state broadcasting to the UI. This approach ensures data integrity, facilitates session resumption, and allows for real-time updates across the application. Multi-provider coordination and provider-agnostic transcript rendering unify the experience across different AI models.

Quick Start & Requirements

Install Kanna globally using Bun: bun install -g kanna-code. Prerequisites include Bun v1.3.5+, a working Claude Code environment, and optionally the Codex CLI for Codex provider support. Bun can be installed via curl -fsSL https://bun.sh/install | bash. The UI is accessible at http://localhost:3210 by default.

Highlighted Details

  • Supports multiple AI providers (Claude, Codex) with per-provider model selection and configurable reasoning effort.
  • Features a project-centric sidebar for organizing chats, with live status indicators and drag-and-drop reordering.
  • Offers rich transcript rendering, including hydrated tool calls, collapsible groups, and interactive prompts.
  • Implements "Plan mode" for reviewing and approving agent execution plans before they run.
  • Maintains persistent local history via JSONL event logs and compacted snapshots for refresh-safe sessions.
  • Automatically generates chat titles in the background.

Maintenance & Community

Information regarding specific contributors, community channels (like Discord/Slack), or project roadmaps is not detailed in the provided README.

Licensing & Compatibility

Kanna is released under the MIT license, which is permissive for commercial use and integration into closed-source projects.

Limitations & Caveats

Embedded terminal functionality relies on Bun's native PTY APIs and is currently restricted to macOS and Linux operating systems.

Health Check
Last Commit

2 days ago

Responsiveness

Inactive

Pull Requests (30d)
28
Issues (30d)
10
Star History
450 stars in the last 20 days

Explore Similar Projects

Feedback? Help us improve.