Skip to main content
Glama

라이센스: AGPL v3 PyPI 버전 파이썬 3.12+ 테스트 주름 옷깃 대장간 배지

기본 메모리

Basic Memory를 사용하면 Claude와 같은 대규모 언어 모델(LLM)과의 자연스러운 대화를 통해 지속적인 지식을 구축할 수 있으며, 모든 내용을 컴퓨터의 간단한 마크다운 파일에 보관할 수 있습니다. MCP(Model Context Protocol)를 사용하여 호환되는 모든 LLM이 로컬 지식 베이스를 읽고 쓸 수 있도록 지원합니다.

중단했던 부분부터 대화를 이어가세요

  • AI 어시스턴트는 새로운 대화에서 로컬 파일의 컨텍스트를 로드할 수 있습니다.

  • 메모는 실시간으로 마크다운 파일로 로컬에 저장됩니다.

  • 프로젝트 지식이나 특별한 지시가 필요하지 않습니다.

https://github.com/user-attachments/assets/a55d8238-8dd0-454a-be4c-8860dbbd0ddc

Related MCP server: memora

빠른 시작

지엑스피1

~/basic-memory (기본 디렉토리 위치)에 있는 파일을 통해 공유된 컨텍스트를 볼 수 있습니다.

Smithery를 통한 대체 설치

Smithery를 사용하면 Claude Desktop의 기본 메모리를 자동으로 구성할 수 있습니다.

npx -y @smithery/cli install @basicmachines-co/basic-memory --client claude

이렇게 하면 Claude Desktop 구성 파일을 수동으로 편집하지 않고도 Basic Memory를 설치하고 구성할 수 있습니다. Smithery 서버는 MCP 서버 구성 요소를 호스팅하는 반면, 데이터는 마크다운 파일로 로컬에 저장됩니다.

글라마.에이아이

왜 기본 메모리인가?

대부분의 LLM 상호작용은 일시적입니다. 질문을 하고 답변을 받으면 모든 것이 잊혀집니다. 각 대화는 이전 대화의 맥락이나 지식 없이 새롭게 시작됩니다. 현재의 해결책에는 다음과 같은 한계가 있습니다.

  • 채팅 기록은 대화를 기록하지만 구조화된 지식은 아닙니다.

  • RAG 시스템은 문서를 쿼리할 수 있지만 LLM이 다시 쓸 수 없도록 합니다.

  • 벡터 데이터베이스는 복잡한 설정이 필요하며 종종 클라우드에 있습니다.

  • 지식 그래프는 일반적으로 유지 관리를 위해 특수 도구가 필요합니다.

Basic Memory는 이러한 문제를 간단한 접근 방식으로 해결합니다. 사람과 LLM 모두 읽고 쓸 수 있는 구조화된 마크다운 파일을 제공합니다. 주요 장점은 다음과 같습니다.

  • 로컬 우선: 모든 지식은 사용자가 제어하는 파일에 보관됩니다.

  • 양방향: 사용자와 LLM 모두 동일한 파일을 읽고 쓸 수 있습니다.

  • 구조화되어 있으면서도 간단함: 의미적 패턴을 갖춘 친숙한 마크다운을 사용합니다.

  • 탐색 가능한 지식 그래프: LLM은 주제 간 링크를 따라갈 수 있습니다.

  • 표준 형식: Obsidian과 같은 기존 편집기와 함께 작동합니다.

  • 가벼운 인프라: 로컬 SQLite 데이터베이스에 인덱싱된 로컬 파일만

기본 메모리를 사용하면 다음을 수행할 수 있습니다.

  • 기존 지식을 바탕으로 대화를 나누세요

  • 자연스러운 대화 중에 구조화된 메모를 작성하세요

  • 이전에 논의했던 내용을 기억하는 LLM과 대화하세요.

  • 지식 그래프를 의미론적으로 탐색하세요

  • 모든 것을 지역적으로 관리하고 통제하세요

  • Obsidian과 같은 친숙한 도구를 사용하여 노트를 보고 편집하세요.

  • 시간이 지남에 따라 성장하는 개인 지식 기반을 구축하세요

실제로 작동하는 방식

커피 추출 방법을 연구하고 지식을 공유하고 싶다고 가정해 보겠습니다. 방법은 다음과 같습니다.

  1. 정상적으로 채팅을 시작하세요:

I've been experimenting with different coffee brewing methods. Key things I've learned:

- Pour over gives more clarity in flavor than French press
- Water temperature is critical - around 205°F seems best
- Freshly ground beans make a huge difference

...대화를 계속합니다.

  1. LLM에 이 지식을 구성하는 데 도움을 요청하세요.

"Let's write a note about coffee brewing methods."

LLM은 시스템에 새로운 Markdown 파일을 생성합니다(Obsidian이나 편집기에서 즉시 볼 수 있음).

---
title: Coffee Brewing Methods
permalink: coffee-brewing-methods
tags:
- coffee
- brewing
---

# Coffee Brewing Methods

## Observations

- [method] Pour over provides more clarity and highlights subtle flavors
- [technique] Water temperature at 205°F (96°C) extracts optimal compounds
- [principle] Freshly ground beans preserve aromatics and flavor

## Relations

- relates_to [[Coffee Bean Origins]]
- requires [[Proper Grinding Technique]]
- affects [[Flavor Extraction]]

이 노트에는 의미적 내용이 포함되어 있으며 간단한 마크다운 형식을 통해 다른 주제로 연결됩니다.

  1. 이 파일은 현재 프로젝트 디렉토리(기본값 ~/$HOME/basic-memory )에서 실시간으로 컴퓨터에서 볼 수 있습니다.

  • 실시간 동기화는 v0.12.0 버전부터 기본적으로 활성화됩니다.

  1. LLM과의 채팅에서 주제를 참조할 수 있습니다.

Look at `coffee-brewing-methods` for context about pour over coffee

이제 LLM은 지식 그래프에서 풍부한 맥락을 구축할 수 있습니다. 예를 들면 다음과 같습니다.

Following relation 'relates_to [[Coffee Bean Origins]]':
- Found information about Ethiopian Yirgacheffe
- Notes on Colombian beans' nutty profile
- Altitude effects on bean characteristics

Following relation 'requires [[Proper Grinding Technique]]':
- Burr vs. blade grinder comparisons
- Grind size recommendations for different methods
- Impact of consistent particle size on extraction

관련된 각 문서를 통해 더 많은 맥락을 얻을 수 있으며, 지식 기반에 대한 풍부한 의미적 이해를 구축할 수 있습니다.

이렇게 하면 다음과 같은 양방향 흐름이 생성됩니다.

  • 사람이 Markdown 파일을 작성하고 편집합니다.

  • LLM은 MCP 프로토콜을 통해 읽고 씁니다.

  • 동기화를 통해 모든 것이 일관성을 유지합니다.

  • 모든 지식은 로컬 파일에 보관됩니다.

기술 구현

기본 메모리의 내부 구조:

  1. 모든 것을 Markdown 파일에 저장합니다

  2. 검색 및 인덱싱을 위해 SQLite 데이터베이스를 사용합니다.

  3. 간단한 마크다운 패턴에서 의미적 의미를 추출합니다.

    • 파일은 Entity 객체가 됩니다.

    • 각 Entity``Observations 또는 이와 관련된 사실이 있을 수 있습니다.

    • Relations 엔터티를 연결하여 지식 그래프를 형성합니다.

  4. 파일에서 파생된 로컬 지식 그래프를 유지합니다.

  5. 파일과 지식 그래프 간의 양방향 동기화를 제공합니다.

  6. AI 통합을 위한 모델 컨텍스트 프로토콜(MCP)을 구현합니다.

  7. AI 어시스턴트가 지식 그래프를 탐색하고 조작할 수 있도록 하는 도구를 공개합니다.

  8. 도구와 대화에서 엔터티를 참조하기 위해 memory:// URL을 사용합니다.

파일 형식은 간단한 마크업이 포함된 마크다운입니다.

각 마크다운 파일에는 다음이 포함됩니다.

서문

title: <Entity title>
type: <The type of Entity> (e.g. note)
permalink: <a uri slug>

- <optional metadata> (such as tags) 

관찰

관찰은 주제에 대한 사실입니다. category , "#" 문자를 사용하는 tags , 그리고 선택적 context 를 참조할 수 있는 특수 형식을 갖춘 마크다운 목록을 만들어 관찰을 추가할 수 있습니다.

관찰 마크다운 형식:

- [category] content #tag (optional context)

관찰의 예:

- [method] Pour over extracts more floral notes than French press
- [tip] Grind size should be medium-fine for pour over #brewing
- [preference] Ethiopian beans have bright, fruity flavors (especially from Yirgacheffe)
- [fact] Lighter roasts generally contain more caffeine than dark roasts
- [experiment] Tried 1:15 coffee-to-water ratio with good results
- [resource] James Hoffman's V60 technique on YouTube is excellent
- [question] Does water temperature affect extraction of different compounds differently?
- [note] My favorite local shop uses a 30-second bloom time

처지

관계는 다른 주제와의 연결입니다. 지식 그래프에서 엔티티가 연결되는 방식을 정의합니다.

마크다운 형식:

- relation_type [[WikiLink]] (optional context)

관계의 예:

- pairs_well_with [[Chocolate Desserts]]
- grown_in [[Ethiopia]]
- contrasts_with [[Tea Brewing Methods]]
- requires [[Burr Grinder]]
- improves_with [[Fresh Beans]]
- relates_to [[Morning Routine]]
- inspired_by [[Japanese Coffee Culture]]
- documented_in [[Coffee Journal]]

VS Code와 함께 사용

한 번의 클릭으로 설치하려면 아래의 설치 버튼 중 하나를 클릭하세요...

VS Code에서 UV로 설치 VS Code Insiders에서 UV로 설치

VS Code에서 Basic Memory를 사용하면 코딩 중에 정보를 쉽게 검색하고 저장할 수 있습니다. 위의 설치 버튼을 클릭하여 원클릭으로 설치하거나, 아래의 수동 설치 지침을 따르세요.

수동 설치

VS Code의 사용자 설정(JSON) 파일에 다음 JSON 블록을 추가합니다. Ctrl + Shift + P 를 누르고 Preferences: Open User Settings (JSON) 입력하면 됩니다.

{
  "mcp": {
    "servers": {
      "basic-memory": {
        "command": "uvx",
        "args": ["basic-memory", "mcp"]
      }
    }
  }
}

원하는 경우, 작업 공간의 .vscode/mcp.json 파일에 추가할 수 있습니다. 이렇게 하면 다른 사용자와 구성을 공유할 수 있습니다.

{
  "servers": {
    "basic-memory": {
      "command": "uvx",
      "args": ["basic-memory", "mcp"]
    }
  }
}

Claude Desktop과 함께 사용

Basic Memory는 MCP(Model Context Protocol)를 사용하여 구축되었으며 Claude 데스크톱 앱( https://claude.ai/ )과 함께 작동합니다.

  1. 기본 메모리를 사용하도록 Claude Desktop을 구성하세요.

MCP 구성 파일을 편집합니다(일반적으로 OS X의 경우 ~/Library/Application Support/Claude/claude_desktop_config.json 에 위치).

{
  "mcpServers": {
    "basic-memory": {
      "command": "uvx",
      "args": [
        "basic-memory",
        "mcp"
      ]
    }
  }
}

특정 프로젝트를 사용하려면( 여러 프로젝트 참조) Claude Desktop 구성을 업데이트하세요.

{
  "mcpServers": {
    "basic-memory": {
      "command": "uvx",
      "args": [
        "basic-memory",
        "--project",
        "your-project-name",
        "mcp"
      ]
    }
  }
}
  1. 지식 동기화:

수동으로 편집한 경우 기본 메모리는 프로젝트의 파일을 실시간으로 동기화합니다.

  1. Claude Desktop에서 LLM은 이제 다음 도구를 사용할 수 있습니다.

write_note(title, content, folder, tags) - Create or update notes
read_note(identifier, page, page_size) - Read notes by title or permalink
build_context(url, depth, timeframe) - Navigate knowledge graph via memory:// URLs
search_notes(query, page, page_size) - Search across your knowledge base
recent_activity(type, depth, timeframe) - Find recently updated information
canvas(nodes, edges, title, folder) - Generate knowledge visualizations
  1. 시도해 볼 수 있는 프롬프트의 예:

"Create a note about our project architecture decisions"
"Find information about JWT authentication in my notes"
"Create a canvas visualization of my project components"
"Read my notes on the authentication system"
"What have I been working on in the past week?"

추가 정보

자세한 내용은 다음을 포함한 설명서를 참조하세요.

특허

AGPL-3.0

참여를 환영합니다. 프로젝트를 현지에서 설정하고 PR을 제출하는 방법에 대한 자세한 내용은 '참여 가이드'를 참조하세요.

스타 역사

Basic Machines에서 ♥️로 제작

Available Tools

12 tools
bm_contextBuild contextA
Read-onlyIdempotent

Follow the Basic Memory knowledge graph from a note: the note, its observations, and the notes its relations reach, up to depth hops (1-5). identifier is a path, permalink, memory:// URL, or a pattern such as 'specs/*'. since limits related results to recent changes. compact returns the graph without note bodies; read chosen notes with bm_read.

Inputs: project (required), identifier (required), page, depth, +5 more. Returns: result

bm_deleteDelete noteA
DestructiveIdempotent

Delete a Basic Memory note (identifier) or a directory (path). A directory delete removes every file under it and needs recursive=true. Pass expected_checksum (from bm_read) to delete a note only if it is still the revision you read. A note that does not exist is an error. This cannot be undone.

Inputs: project (required), path, recursive, identifier, +2 more. Returns: result

bm_editEdit noteA
Destructive

Change part of an existing Basic Memory note. command: append or prepend content; find_replace find_text with content (exact text, which must occur expected_replacements times, default 1); replace_section, insert_before_section or insert_after_section for a section heading ('Decisions', 'Auth/Decisions', 'Decisions[1]', as bm_read takes it); set_metadata to merge metadata into the frontmatter without touching the body. metadata also merges with any other command. Pass expected_checksum (from bm_read) to edit only the revision you read. A missing note is an error; create notes with bm_write.

Inputs: command (required), project (required), identifier (required), content, +7 more. Returns: result

bm_findFind filesA
Read-onlyIdempotent

Find files in a Basic Memory project, recursively. With name, match file names against a glob ('meeting'). With filters, match notes by frontmatter, e.g. {"status": "active"} or {"priority": {"$in": ["high"]}}, and with fields return just those frontmatter values per note. path limits the search to a folder. For ranked text or meaning search, use bm_search.

Inputs: project (required), name, page, path, +5 more. Returns: result

bm_listList folderA
Read-onlyIdempotent

List one folder of a Basic Memory project: its subfolders, then its files with title, date and id. project is required; '/' lists its root. Discover projects with bm_project(command='list'). Filter files with glob and order them with sort. For a recursive search by name or frontmatter, use bm_find.

Inputs: project (required), glob, page, path, +3 more. Returns: result

bm_manManualA
Read-onlyIdempotent

Read the Basic Memory manual. With no arguments, the index of every page. page reads one page: 'bm-search(3)' for an MCP tool, 'grep(1)' for a shell command; a tool name such as 'bm_search' works too. query lists the pages that mention every word given, like man -k.

Inputs: page, query, output_format. Returns: result

bm_moveMove noteA

Move or rename a Basic Memory note (identifier) or a directory (path) within its project. destination is the new project-relative path; ending it with '/' moves into that folder under the current name ('archive/'). A note keeps its file extension ('.markdown' may become '.md'). Pass expected_checksum (from bm_read) to move a note only if it is still the revision you read. Moving into another project is refused: bm_read, bm_write there, then bm_delete.

Inputs: project (required), destination (required), path, identifier, +2 more. Returns: result

bm_projectProjectsB

Basic Memory projects. command: list (projects, grouped by workspace); create (name, path, optional set_default, workspace); recent (what changed lately in the required project: since, items, paging).

Inputs: command (required), name, page, path, +7 more. Returns: result

bm_readRead noteA
Read-onlyIdempotent

Read a Basic Memory note or file by path, permalink, memory:// URL or exact title. Slice a long note with section (a heading), start_line/end_line or max_tokens; line numbers count the whole file, frontmatter included. A text file such as .txt takes start_line/end_line too. include_content=false returns only the metadata and the checksum that bm_write and bm_edit take as expected_checksum. Images come back as images and other binary files as documents. A missing note is an error: find notes with bm_search.

Inputs: project (required), identifier (required), section, end_line, +5 more.

bm_schemaNote schemasA
Read-onlyIdempotent

Basic Memory note schemas (Picoschema). command: validate notes against their schema (one note_type, one note by identifier, or every type that has a schema); infer a schema from the notes of a note_type; diff a note_type's notes against its schema to find drift. A schema is a note with type: schema whose entity field names the note type it describes.

Inputs: command (required), project (required), note_type, threshold, +2 more. Returns: result

bm_writeWrite noteA
Destructive

Create or replace a Basic Memory note. Give a file path as identifier ('notes/plan.md'), or title plus directory. With a path the file lands exactly there and the title comes from the content's frontmatter, then title, then the file name. An existing note is an error unless overwrite=true; pass expected_checksum (from bm_read) to replace only the revision you read. To change part of a note use bm_edit. Content may hold frontmatter, observations ('- [category] fact #tag') and relations ('- relation_type [[Other Note]]').

Inputs: content (required), project (required), tags, title, +7 more. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 12 tools

    Disambiguation4/5

    There is real overlap among three retrieval tools (bm_find, bm_list, bm_search), but the descriptions explicitly route the agent: bm_list for one folder, bm_find for recursive name/frontmatter matching, bm_search for ranked text/semantic search. Similarly bm_read (one note body) is distinguished from bm_context (graph traversal) and bm_write (full replace) from bm_edit (partial change). Only a small chance of misselection remains for an agent skimming names.

    Naming Consistency4/5

    All 12 tools follow a single predictable bm_<word> snake_case pattern with no style mixing. Most suffixes are verbs (find, list, read, write, edit, move, delete, search), but a few are nouns/commands (bm_context, bm_schema, bm_project, bm_man), which is a minor deviation rather than an inconsistency.

    Tool Count5/5

    Twelve tools sit comfortably in the well-scoped range and each maps to a distinct capability: directory listing, find, search, read, write, edit, move, delete, graph context, schema ops, project ops, and docs. None look like padding, and the surface is not so thin that agents would have to chain workarounds.

    Completeness4/5

    Note lifecycle is fully covered (create/replace, read, partial edit, move, delete, plus graph context and search), and bm_schema and bm_project cover schema and project management. Minor gaps: bm_project only supports list/create/recent (no rename or delete of projects), and there is no copy/duplicate operation, though the description notes the read+write+delete workaround.

    Maintenance

    ActivityActive
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      F
      maintenance
      Provides persistent memory functionality for AI conversations by creating, managing and querying entities and relationships in a knowledge graph. Features SQLite storage, advanced search capabilities, and Windows auto-start integration for long-term AI memory retention.
      34 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides persistent memory for AI tools by building a local knowledge graph from conversations, enabling cross-session recall and context awareness without cloud dependencies.
      9
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables AI agents to share persistent, self-improving memory by ingesting, classifying, synthesizing, and retrieving knowledge from Obsidian vaults, code, documents, transcripts, bookmarks, and sessions through MCP and REST interfaces with token-optimized search.
      10 npm
      MIT