Skip to main content
Glama

om — 플러그인형 지식 베이스(Foam 기반 2차 개발)

超脑 v4의 66개 모듈을 지식 베이스 핵심만 남기고 잘라내어, Foam을 바탕으로 다시 작성하고, DeepSeek Harness 방식으로 플러그인화했습니다:

  • Obsidian 호환 — 여러분의 vault가 곧 지식 베이스입니다: 순수 markdown 파일 + [[双链]] + #标签 + frontmatter

  • 제로 의존성 — Node 내장 node:sqlite만 사용(FTS5 전문 검색, 내장 중국어 토큰화)

  • 플러그인화 — 코어가 안정적인 인터페이스를 노출하고, 사용자가 직접 플러그인을 작성해 확장(명령 / MCP 도구 / 이벤트 / 인덱스 추출기)

  • AI 연동 가능 — MCP stdio 서버, Claude Code / Cursor에서 직접 호출

Foam(MIT)에 경의를 표합니다: 양방향 링크 파싱 의미론과 그래프 모델은 그로부터 깊은 영감을 받았습니다. 이 프로젝트는 독립적인 재작성(제로 의존성, 런타임 의존성 없음)이며, 코드 포크가 아닙니다.

빠른 시작

cd ~/om
./core/cli.js init demo          # 初始化(demo 已有示例笔记)
./core/cli.js scan --vault demo  # 建索引
./core/cli.js search 图谱 --vault demo
./core/cli.js rename 图谱 知识图谱 --vault demo   # 重命名,全库双链自动更新
./core/cli.js deadlinks --vault demo             # 死链检查
./core/cli.js orphans --vault demo               # 孤岛笔记
./core/cli.js daily --vault demo                 # 今日笔记
./core/cli.js graph 插件系统 --vault demo
./core/cli.js backlinks 记忆系统 --vault demo
./core/cli.js tags --vault demo

일상 사용: cd <你的库> && om search xxx(npm link 후 전역에서 om 명령을 사용할 수 있습니다).

Related MCP server: mcp-vault-reader

MCP 연동(Claude Code)

// ~/.claude.json 的 mcpServers
{
  "om": {
    "command": "node",
    "args": ["/data/data/com.termux/files/home/om/core/cli.js", "mcp", "--vault", "/path/to/vault"]
  }
}

내장 도구: search_notes / read_note / create_note / update_note / rename_note / delete_note / backlinks / graph_bfs / list_notes / list_tags, 그리고 플러그인으로 등록된 도구.

아키텍처

vault/                        你的 Obsidian 库(文件即真身)
  .om/config.json             配置(插件开关等)
  .om/index.db                SQLite 索引(可随时删除重建)
  .om/plugins/                你的插件放这里
om/
  core/
    vault.js                  解析 frontmatter / [[双链]] / ![[嵌入]] / #标签
    tokenize.js               中文分词(CJK 单字+双字)+ FTS 查询构造
    db.js / indexer.js        SQLite 索引 + 增量扫描
    graph.js                  图谱查询(邻居 / backlinks / BFS)
    context.js                插件上下文(全部暴露接口)
    plugins.js                插件加载器(dsh 式)
    cli.js / mcp.js           CLI 与 MCP stdio 服务器
  plugins/                    内置示例插件(recent / todos)

플러그인 작성 가이드(노출 인터페이스)

플러그인 = 하나의 JS 파일(ESM)이며, 기본 내보내기로 { name, version, description, activate(ctx) }를 사용합니다. <vault>/.om/plugins/my-plugin.js에 넣으면, 아무 om 명령을 다시 실행할 때 적용됩니다. config.json에서 "plugins": {"my-plugin": false}로 비활성화할 수 있습니다.

두 가지 빠른 명령:

om plugin create my-plugin    # 生成插件模板
om plugin install https://github.com/xxx/om-plugin-repo   # 从 git 仓库安装(仓库根目录需含 index.js)

activate(ctx)로 모든 기능에 접근할 수 있습니다:

인터페이스

설명

ctx.notes

get(name) / search(q,{limit}) / create(name,{folder,content,tags}) / update(name,content) / remove(name) / list({tag})

ctx.graph

resolve(name) / neighbors(ref) / backlinks(ref) / bfs(ref,depth)

ctx.tags

list() / notes(tag)

ctx.storage

get/set/del(key) — 플러그인 전용 KV(플러그인 이름별 격리)

ctx.events

on('note:save'|'note:delete', fn) — 컨텍스트 간 공유 이벤트 버스

ctx.commands

register('名字', async (args) => 输出) — 새 CLI 하위 명령 추가

ctx.tools

register({name,description,inputSchema}, handler) — 새 MCP 도구 추가

ctx.index

register(({id,name,frontmatter,body,text}) => ({tags?,links?})) — 인덱스 추출기, 노트에서 지식을 추출하는 방식 커스터마이즈

ctx.health

deadlinks() 미해결 링크 / orphans() 고립 노트

ctx.db

네이티브 SQLite 핸들(고급)

ctx.vaultRoot / ctx.plugin

vault 경로 / 플러그인 이름

최소 플러그인 예시

// <vault>/.om/plugins/hello.js
export default {
  name: 'hello',
  activate(ctx) {
    ctx.commands.register('hello', async () => `你好,库里有 ${ctx.db.prepare('SELECT COUNT(*) c FROM notes').get().c} 篇笔记`);
  },
};
$ om hello --vault demo
你好,库里有 5 篇笔记

전체 예시는 plugins/recent.js(명령+도구+저장+이벤트)와 plugins/todos.js(frontmatter/태그 조회)를 참조하세요.

테스트

cd ~/om && node --test

범위: 토큰화 / vault 파싱 / 인덱스 및 증분 / 그래프 / 플러그인 전체 인터페이스 / MCP 프로토콜 엔드투엔드.

超脑 v4와의 차이점

超脑 v4

om

모듈 수

66

핵심 10개 파일 + 플러그인

아키텍처

6채널 인지 신경 시스템

순수 지식 베이스 + dsh 방식 플러그인

저장

자체 구축 다중 세트

Obsidian 호환 markdown(파일이 곧 실체)

의존성

npm + pip + 데몬 프로세스

제로 의존성(node:sqlite)

확장

프로그래밍 불가

인터페이스 노출, 사용자가 플러그인 작성

알려진 제한 사항(솔직한 고지)

  • 검색은 리터럴 매칭(FTS5 + 중국어 단일/이중 문자 토큰화)이며, 의미론적 검색이 아닙니다; 동의어/개념 검색은 플러그인이나 외부 벡터 서비스로 확장해야 합니다.

  • update_note에 본문을 전달하면 원래 frontmatter가 자동으로 유지됩니다; 전체를 덮어써야 한다면 --- 헤더와 함께 전달하세요.

  • 이름 변경(rename / rename_note)은 전체 라이브러리에서 해당 노트를 가리키는 양방향 링크를 자동으로 업데이트하지만, 다른 파일의 텍스트 언급은 변경하지 않습니다.

  • 단일 머신 단일 프로세스 설계로, 분산/다중 기기 동기화가 없습니다(vault 자체는 순수 파일이므로 git으로 직접 동기화할 수 있습니다).

  • 인덱스는 파일 시스템 스냅샷이므로, 외부 편집기에서 변경한 후 om scan(또는 om watch)으로 새로고침해야 합니다.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to manage a personal markdown-based knowledge base with natural language interactions. Supports creating, searching, updating, and organizing notes across categories like people, recipes, meetings, and procedures.
    11
    1
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to search, read, and traverse Markdown note vaults (Obsidian-compatible) with full-text search, backlinks, knowledge graphs, and a persistent memory system for cross-session context.
    16
    13 npm
    4
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to list, search, read, and append to Markdown notes through MCP tool calls, making it easy to interact with a second brain folder.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to access and manage a personal markdown knowledge base stored in Cloudflare R2. Provides tools for listing, reading, writing, searching (full-text and semantic), and following backlinks between notes.
    1 npm
    3
    MIT