---
title: KMS Session Seeds (multi-note briefing + project context notes)
---

# KMS Session Seeds (multi-note briefing + project context notes)

## What it is

Two ways to pre-load KMS notes into Claude sessions so the AI starts with real context instead of a blank slate. Both are gated by the parent KMS toggle (`nothariEnabled`).

## Where to find it

The briefing starts from the **KMS file tree** — select two to five notes, right-click, and choose **Start briefing**; the session it opens lands in the KMS **Sessions** tab. Project context notes are configured per project inside KMS settings.

## How it behaves

### Multi-note briefing

Select 2-5 notes in the file tree (Ctrl+Click / Shift+Click), right-click, and choose **Start briefing (N notes)**. A confirm dialog opens with an optional question field. Clicking **Start Briefing** reads every selected note's full body via `KMS_NOTE_READ`, assembles them into a single prompt via `buildBriefingPrompt` (each note titled and fenced, per-note cap 20 KB, total cap 80 KB), and launches a vault-scoped session with the assembled text as `initialPrompt`. The session opens in the KMS Sessions tab.

- **Where it lives**: file tree context menu (bulk mode, 2-5 selection), `BriefingModal` confirm dialog, `useNoteBriefing` hook.
- **Limits**: 2-5 notes (below or above that range the menu row is hidden), 20 KB per note body, 80 KB total. Truncated notes get a hint to use `kms_read` for the full version.
- **No KMS tools injected**: the briefing prompt carries the full note bodies inline, so the session does not need `kms_read` / `kms_search` MCP tools.

### Project context notes

Designate 1-5 notes as standing context for a real (non-virtual) project. Every new session spawned in that project automatically receives the pinned notes' current bodies via the session-context provider system, no manual selection needed.

### How to pin

Right-click a single note in the file tree. With one real project you get a direct **Pin to \<project name\>** row; with several you get a single **Pin to project** entry whose submenu flyout lists every real project — so the menu stays tidy no matter how many projects you have. Picking a project adds the note to that project's context list. If the project already has 5 context notes, the pin is rejected with a cap-exceeded error.

### How it works

A content-matched `SessionContextProvider` registered in `CONTENT_PROVIDERS` checks `matches(folderPath)` at session spawn time. If the project has pinned context notes, `build()` reads their current bodies from the DB (fresh, not cached) and assembles them via `buildProjectContextPrompt`. The result is injected as a system-context block alongside other providers.

- **Living context**: note bodies are read at spawn time, so an updated note automatically appears in the next session. No re-pinning needed.
- **No kms_read hint**: unlike the briefing prompt, the project context prompt does not hint at `kms_read`, because real-project sessions may not have KMS MCP tools available.

### Managing pinned notes

- **CLI**: `GET /kms/project-context?projectFolderPath=...` (list), `POST /kms/project-context` (add), `DELETE /kms/project-context/:id` (remove).
- **IPC**: `KMS_PROJECT_CONTEXT_LIST`, `KMS_PROJECT_CONTEXT_ADD`, `KMS_PROJECT_CONTEXT_REMOVE`, `KMS_PROJECT_CONTEXT_REORDER`.
- **Push**: mutations emit `KMS_PROJECT_CONTEXT_CHANGED` so open panels reconcile.
- **DB table**: `nothari_project_context_notes` (soft-delete, `is_deleted = 0` filter on all queries).

### Settings

No new settings. Both features are gated by the existing KMS toggle (`nothariEnabled` at Settings > Features > Enable KMS). The vault root (`nothariVaultRootPath`) must be configured for briefing to work.

## Related

Asking the vault a question directly, rather than briefing a session with notes you picked by hand, is described on the [KMS](kms.md) page under its one-click note-seeded chat. The agent tools a seeded session can use are on [KMS agent tools](kms-agent-tools.md).
