Project and Session Management
Desktop organizes sessions by project and working directory. You can create projects with multiple working directories, manage sessions, fork a copy from the current session or a historical turn, or start an independent side chat in the right panel.
Workspace management
A project groups related working directories. When creating a project, choose a primary directory and add source folders as needed. When editing a project, you can rename it, add or remove source folders, or import legacy additional directories from .kimi-code/local.toml in the primary directory. Sessions, drafts, file previews, and terminals are isolated by project.
There are several ways to add a working directory:
- After creating a session, click the folder name above the Composer to open the workspace picker, choose from recent folders, or click Choose folder… to add another local folder;
- When adding one, choose Enter an absolute path directly; the path is resolved as a local absolute path;
- Drop a folder from Finder or File Explorer onto the sidebar to add it as a working directory directly.
The new folder is added to the current project and the recent folder list. An empty session must have a working directory before you can send a message; existing projects, working directories, and sessions can be switched directly from the left sidebar.
When a project contains multiple working directories, choose Switch file tree root at the top of the file tree to select the root you want to browse. When you open an untrusted folder, the desktop app asks whether to trust the workspace; declining blocks sending messages in it.
Session management
Sessions in a workspace can be created, switched, renamed, archived, restored, deleted, forked, exported, pinned, and searched. Archive, search, restore, and export are used to manage historical sessions.
To clean up archived sessions, delete them directly under Settings → Archived Sessions.
The current session's title appears in the top bar and is generated by AI after the first turn. You can regenerate it from the session item or use the More menu on its right to perform session actions.
After changing AGENTS.md, skills, or configuration outside the app, run /reload or choose Reload session in the session title's More menu to apply the changes immediately—no restart needed. A session cannot be reloaded while it is generating or after it has been archived.
Fork a session
Fork lets you try another direction without disturbing the current conversation: it creates a copy from the current session or a selected historical turn, leaving the original untouched. The copy is named with a "Fork: " prefix and is independent of the original—both can continue separately.
Fork a session from its session item, or type /fork in the Composer. Completed historical turns show Fork from here at the bottom; the new session retains only that turn and the content before it.
For a running session, choose Fork session in the session row menu. The source session continues running. The new session retains the current user prompt, but does not include the unfinished response or tool output.
Side chat
A side chat (temporary conversation) creates a temporary copy based on the main session's context: open a New conversation tab in the right panel to discuss other questions without interrupting the main session.
- Temporary conversations are not saved as regular sessions, and their content does not affect the main session;
- Temporary conversations can only use read-only tools and cannot modify files;
- It is not the same feature as Fork a session: Fork derives an independently saved copy of the session that you can keep working in, while a side chat cannot be recovered after you close its tab.
Sharing sessions with the CLI
The desktop app and the CLI read the same session data: a session created on one side appears in the other side's session list, where you can open it and continue. If the session is already open in another client, opening it again shows an occupancy prompt with the name of the client using it and a one-click retry. If it stays occupied after retrying, you can take over the session. Before taking over, make sure the original client has exited so two clients do not write concurrently and interleave the session history. If both sides are open at the same time, the session list and content are not guaranteed to refresh in real time—restart or reload the other side to see the latest state.