---
title: "ChatCrystal: Local-First AI Knowledge Base and MCP Memory"
description: A local-first knowledge app that turns AI coding conversations into reusable notes, semantic search and MCP memory.
image: "https://zengliangyi.com/_astro/chatcrystal.BVQkD0Sh.png"
---

## The problem: where does experience go after a conversation?

AI coding histories contain more than code. They also hold debugging context, failed attempts and the reasoning behind a decision. When that material stays scattered across tools, the next similar problem begins with another search for context.

ChatCrystal organizes a workflow around turning those conversations into reusable experience: import the source material, distill notes, retrieve related knowledge and bring it into the next task.

## Four stages of a knowledge workflow

This is a conceptual workflow, not a promise that every stage runs automatically after import. In particular, remote-instance imports and summarization are separate actions, allowing users to decide when to process content with a model.

### Import the context

The project supports local histories from tools including Claude Code, Cursor, Codex CLI, Trae and GitHub Copilot. A shared workspace makes it easier to find related conversations without remembering which client originally held them.

### Distill a useful reading layer

Notes include titles, summaries, conclusions, code snippets and tags. The source conversation carries the context; a structured note offers a shorter entry point for deciding whether an experience is relevant.

![ChatCrystal notes interface showing knowledge extracted from coding conversations](/_image?href=%2F_astro%2Fchatcrystal-notes.COt6GCQP.png&w=1280&h=800&f=webp&fit=cover&position=center)

An actual notes screenshot from the repository. Note quality still depends on the source

material, model and subsequent review.

### Retrieve by meaning and explore relationships

Semantic search helps find relevant experience even when the wording differs. The tag graph provides an additional way to explore related topics. Connections based on tag co-occurrence describe associations, rather than proving causation.

![ChatCrystal tag knowledge graph showing relationships between note topics](/_image?href=%2F_astro%2Fchatcrystal-graph.7yV9Q8ry.png&w=1280&h=800&f=webp&fit=cover&position=center) The graph complements the note list and semantic search.

### Reuse knowledge in the next task

CLI and MCP interfaces let agents recall existing experience and write new records back. Knowledge can participate in another coding workflow instead of remaining a document that must be found and copied manually.

## Shared responsibilities, multiple interfaces

The TypeScript repository includes a React client, Fastify server and Electron desktop entry point. Desktop, CLI / Web and Docker self-hosting offer different access patterns. The diagram summarizes responsibilities, not an exact deployment topology.

| Choice | Benefit | Tradeoff |

| --- | --- | --- |

| Local-first workflow | Organize your own histories and knowledge | Does not imply offline inference |

| Separate LLM and embedding settings | Choose generation and retrieval providers independently | The model types are not interchangeable |

| Conversations and notes | Preserve context alongside concise results | Generated conclusions still need judgment |

| CLI / MCP access | Reuse knowledge in automation and agent tasks | Results must be evaluated for the current task |

Content processed by an external LLM or embedding service is sent to that configured provider. The deployment and model choices determine where processing happens.

## Start with a familiar set of conversations

Import one project, inspect the source records, generate a small batch of notes and search for a problem you remember solving. This makes it easier to assess the workflow against your own needs.

See the [README](https://github.com/ZengLiangYi/ChatCrystal) for installation and configuration, and the [development guide](https://github.com/ZengLiangYi/ChatCrystal/blob/main/docs/DEVELOPMENT.md) for implementation details.

## Implementation and workflows

- [Five AI conversation data formats](/en/blog/ai-conversation-data-formats): format differences and import limitations.

- [Choosing a local vector store](/en/blog/local-vector-database-selection): deployment, retrieval, and index-recovery tradeoffs.

- [Exporting ChatCrystal notes to Obsidian](/en/blog/chatcrystal-to-obsidian): a Markdown snapshot workflow that preserves note content and relationships.

- [Local-first and cloud AI](/en/blog/local-first-ai-data-boundaries): data boundaries across storage, inference, and agent clients.

- [RAG and knowledge graphs](/en/blog/rag-and-knowledge-graphs): candidate retrieval, note relationships, and one-hop expansion.

- [Knowledge bases for AI agents](/en/blog/agent-knowledge-memory-loop): recall, validation, and writeback grounded in evidence.

##  More projects

[2026

### Network Error Reporter

A Chrome DevTools extension that turns failed network requests into structured Markdown and image reports.

#JavaScript

#Chrome Extension

#Developer Tools](/en/projects/network-error-reporter)[2026

### Square Image Workshop

An offline browser tool for square image composition, white backgrounds and compressed JPG export.

#HTML

#Canvas

#Offline Tools](/en/projects/image-tool)[2026

### PaddleOCR-VL Document Parsing Evaluator

Evaluate Baidu Cloud document parsing by comparing reading order, layout coordinates, tables and Markdown with the source document.

#Python

#JavaScript

#Document AI](/en/projects/paddleocr-vl)

##  Have a question or an idea?

Send me a message to discuss an implementation or explore a project idea.

[Contact me](/en/contact) [All projects](/en/projects)

```json
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "ZengLiangYi Blog",
  "alternateName": [
    "Zeng Liangyi",
    "ZengLiangYi",
    "zengliangyi.com"
  ],
  "url": "https://zengliangyi.com",
  "description": "曾亮懿的个人网站。记录 AI Native 探索、开发者工具与全栈产品实践。"
}
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "ChatCrystal",
  "description": "A local-first knowledge app that turns AI coding conversations into reusable notes, semantic search and MCP memory.",
  "url": "https://zengliangyi.com/en/projects/chatcrystal/",
  "applicationCategory": "DeveloperApplication",
  "operatingSystem": "Any",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD"
  },
  "codeRepository": "https://github.com/ZengLiangYi/ChatCrystal",
  "image": "https://zengliangyi.com/_astro/chatcrystal.BVQkD0Sh.png",
  "author": {
    "@type": "Person",
    "name": "曾亮懿",
    "url": "https://zengliangyi.com"
  }
}
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://zengliangyi.com/en"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Projects",
      "item": "https://zengliangyi.com/en/projects"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "ChatCrystal",
      "item": "https://zengliangyi.com/en/projects/chatcrystal/"
    }
  ]
}
```
