Organize

Three features for making sense of an archive that's gotten big: topics, the knowledge graph, and digests.

Topics

As conversations accumulate, Kept clusters them by theme. No manual tagging — the clustering is automatic, and it updates as new conversations get captured.

A topic is a cluster of related conversations identified from their content. Examples from a typical archive:

  • Postgres, with subclusters RLS, replication, vacuum tuning
  • React performance, with subclusters memoization, bundle size, hydration
  • Stripe integration, Tauri development, Federated learning, etc.

The Topics view (sidebar in the desktop app) shows your top topics by conversation count. Click one to see every conversation tagged to it across every platform.

How it works

Topic discovery uses keyword extraction and semantic clustering. The clustering rebuilds incrementally — new conversations get assigned to existing topics where they fit, or seed new ones when the cluster gets big enough.

You can rename topics, merge them, or split them via the Topics view. Renaming doesn't affect the conversation files — topic membership is stored in the knowledge graph store (~/.kept/kg.db/), not in the markdown.

Knowledge graph

The knowledge graph extracts entities, decisions, and relationships from each conversation as it lands.

A graph node might be:

  • A person (you, a collaborator mentioned by name)
  • A decision ("chose JWT over sessions for stateless auth")
  • A tool or library (Postgres, Stripe, Tauri)
  • A concept (idempotency, RLS, FedAvg)

A graph edge might be:

  • decision X → was made in conversation Y
  • concept A → relates to concept B (co-mentioned in N conversations)
  • decision X → references tool T

Open the Graph view in the desktop app to explore. Click any node to see its connected conversations and adjacent entities. Pivot through the graph to retrace how an idea developed across many chats.

Storing the graph

The graph lives in CozoDB (~/.kept/kg.db/) — a small embedded graph database. Like the FTS5 index, it's purely local and rebuildable from the markdown vault. If you delete the database, Kept re-extracts everything next time it starts.

Digests

Generated summaries across slices of your archive:

  • Weekly digest — what you worked on this week, surfaced as bullet points with links to source conversations
  • Project recap — every conversation tagged to a project, summarized chronologically
  • Decision log — every decision-type entity from the knowledge graph, with the conversation it was made in

Digests are plain markdown files in ~/.kept/vault/digests/. They're regenerated on a schedule (default: weekly, configurable) or on-demand from Settings → Digests.

You can pipe them anywhere markdown can go: into Obsidian, into a static-site generator, into your morning email via a small cron job.

Projects

Projects are explicit groupings — a manual layer above auto-clustering. Useful when you want to scope a digest, a graph view, or a Smart Recall query to a specific effort.

Create a project from Sidebar → New project. Add conversations either by:

  • Manually picking from search results
  • Suggested-conversations (Kept proposes likely-relevant ones based on the project name and existing members)
  • Linking from a conversation directly: Conversation → Add to project

Projects don't move files. They're metadata in the graph store. Removing a project doesn't delete any conversation.