Skip to content

Projects & Sessions

Chats are grouped under projects with live status indicators (idle, running, waiting, failed).

Sidebar with project groups and status indicators

Reorder project groups in the sidebar — order persists across restarts.

Kanna auto-discovers projects from both Claude (~/.claude/projects/) and Codex local history. New projects appear in the sidebar without manual import.

From the sidebar, Import Claude sessions pulls existing ~/.claude/projects/ sessions in with their full transcript — Import all, or paste specific session ids. Imported chats resume like any other.

A session that is still being written to by Claude Code keeps catching up: Kanna follows the source file and imports the delta as it grows. Following arms only when the source was modified recently (within 10 minutes by default) and stops after it goes quiet for the same window, so importing an old session does not leave a poller running. Tune with KANNA_IMPORT_FOLLOW_* (env vars).

Claude session bulk import modal

A chat gets its own checkout by starting work from a board card. Kanna cuts a branch for the card, creates a worktree for it, and opens a chat already rooted there — so two agents on two cards cannot touch each other’s files.

Worktrees live beside the repo, at ../.kanna-worktrees/<repo-name>/<branch>, not inside it. A nested worktree would be an untracked directory to the parent and would dirty every git status, including the Changes pane.

You can also point Kanna at a worktree you made yourself: add it as a project, or bind it to a multi-repo stack chat.

Resume agent sessions with full context preservation. Pick up where you left off — the agent re-loads the JSONL transcript and continues.

Chat titles generated in the background via Claude Haiku 4.5 after the first turn completes.

Star projects to pin them to the top of the sidebar.

Two or more projects can be grouped into a stack, so one chat can work across several repositories at once — see Multi-repo stacks.