Communitygithub.com

gmickel/obsidian-skill

Obsidian CLI (1.12+)를 위한 에이전트 스킬입니다. Obsidian 볼트에서 노트를 읽고, 생성하고, 검색하고, 정리할 수 있습니다.

obsidian-skill란 무엇인가요?

이 스킬은 AI 에이전트(Claude Code, Cursor, Codex 등)가 Obsidian CLI(버전 1.12+)를 통해 Obsidian 애플리케이션과 상호작용할 수 있도록 지원합니다. Obsidian의 실행 중인 인스턴스, 색인, 설정, 명령 레지스트리 및 개발자 런타임에 의존하는 동작에 특화되어 있으며, 일반 파일 시스템 도구로 처리할 수 있는 단순 파일 작업은 다루지 않습니다. 주요 기능으로는 노트 읽기/쓰기/추가, 검색, 속성 조회, 데일리 노트 작성, 태스크 관리, 탭 및 작업 공간 제어 등이 있습니다. macOS/Linux 및 PowerShell 환경에서 CLI 실행 파일을 자동으로 탐지·검증하며, 사용자의 세션 중단을 방지하기 위해 Obsidian 앱 재시작이나 플러그인 비활성화 같은 위험한 동작을 금지합니다. 또한 명시적 사용자 동의 없이 영구 삭제, 동기화 복원, 게시/배포 취소 등의 변경을 수행하지 않도록 설계되어 안전하게 사용할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add gmickel/obsidian-skill

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Obsidian CLI

Obsidian의 실행 중인 애플리케이션, 색인, 설정, 명령 레지스트리 또는 개발자 런타임에 의존하는 동작에는 CLI를 사용하세요. 일반 파일 작업에는 일반 파일 시스템 도구를 사용하세요.

CLI 확인 및 탐색

실행 파일 이름을 하나로 가정하지 마세요. Obsidian의 등록 및 패키징은 플랫폼과 릴리스에 따라 다르며, 관련 없는 타사 바이너리가 같은 이름을 사용할 수도 있습니다. version 명령이 성공하는 경우에만 후보를 선택하세요.

macOS/Linux:

resolve_obsidian_cli() {
  local candidate
  for candidate in \
    "${COPILOT_OBSIDIAN_CLI:-}" \
    /Applications/Obsidian.app/Contents/MacOS/obsidian-cli \
    "$(command -v obsidian 2>/dev/null || true)" \
    "$(command -v obsidian-cli 2>/dev/null || true)"
  do
    [[ -n "$candidate" && -x "$candidate" ]] || continue
    if "$candidate" version >/dev/null 2>&1; then
      printf '%s\n' "$candidate"
      return 0
    fi
  done
  return 1
}

OBSIDIAN_CLI=$(resolve_obsidian_cli) || {
  echo "Obsidian CLI 사용 불가" >&2
  exit 1
}
"$OBSIDIAN_CLI" version

PowerShell:

$candidates = @(
  $env:COPILOT_OBSIDIAN_CLI,
  (Get-Command obsidian -ErrorAction SilentlyContinue).Source,
  (Get-Command obsidian-cli -ErrorAction SilentlyContinue).Source
) | Where-Object { $_ }

$OBSIDIAN_CLI = $candidates | Where-Object {
  try { & $_ version *> $null; $LASTEXITCODE -eq 0 } catch { $false }
} | Select-Object -First 1

if (-not $OBSIDIAN_CLI) { throw "Obsidian CLI 사용 불가" }
& $OBSIDIAN_CLI version

탐색에 실패하면 사용자에게 호환되는 Obsidian 릴리스를 열고 설정 > 일반 > 명령줄 인터페이스를 활성화한 후 등록을 완료하고 터미널을 다시 시작하도록 요청하세요. 명시적인 사용자 의사 없이 Obsidian을 설치하거나, PATH를 변경하거나, CLI를 등록하지 마세요.

모든 참조 예제에서 확인된 실행 파일을 obsidian 대신 사용하세요:

"$OBSIDIAN_CLI" vaults
"$OBSIDIAN_CLI" help search

볼트를 정확하게 지정

대상을 알고 있다면 항상 vault="<이름 또는 ID>"를 사용하세요. 이 스킬에 개인 볼트 이름이나 시스템 경로를 포함하지 마세요.

"$OBSIDIAN_CLI" vault="<볼트-이름>" search query="프로젝트 마감일" format=json
"$OBSIDIAN_CLI" vault="<볼트-이름>" backlinks path="Projects/Plan.md" format=json

정확한 볼트 기준 경로에는 path=를 사용하세요. Obsidian의 위키링크 스타일 이름 확인이 필요할 때만 file=을 사용하세요. 공백이나 셸 특수 문자가 포함된 값은 따옴표로 감싸세요. 설치된 버전에서 표시되지 않는 구문에 의존하기 전에 라이브 도움말을 확인하세요:

"$OBSIDIAN_CLI" help <명령어>

핵심 작업

# 읽기 및 쓰기
"$OBSIDIAN_CLI" vault="<볼트-이름>" read path="Projects/Roadmap.md"
"$OBSIDIAN_CLI" vault="<볼트-이름>" append path="Journal.md" content="- 새 항목"

# 검색 및 메타데이터
"$OBSIDIAN_CLI" vault="<볼트-이름>" search query="API" limit=10 format=json
"$OBSIDIAN_CLI" vault="<볼트-이름>" properties path="Projects/Roadmap.md"

# 설정된 데일리 노트 및 인덱싱된 작업
"$OBSIDIAN_CLI" vault="<볼트-이름>" daily:append content="- 오후 2시: 전화" silent
"$OBSIDIAN_CLI" vault="<볼트-이름>" tasks all todo

# 라이브 작업 공간
"$OBSIDIAN_CLI" vault="<볼트-이름>" tabs ids
"$OBSIDIAN_CLI" vault="<볼트-이름>" workspace ids

호스트 세션 보호

에이전트 세션에서 Obsidian 앱/윈도우를 절대 다시 로드하거나 재시작하지 마세요. 현재 에이전트 세션을 호스팅하는 플러그인을 절대 다시 로드, 비활성화 또는 제거하지 마세요. 이와 동등한 명령, JavaScript, 개발자 도구 작업도 피하세요. 이러한 작업은 세션을 종료하고 진행 중인 작업을 잃을 수 있습니다.

영구 삭제, 로컬 히스토리 복원, 동기화 복원, 게시/게시 취소, 플러그인/테마 설치 또는 제거, 제한된 모드 변경, JavaScript/개발자 호출 변경 등은 명시적인 사용자 의사가 필요합니다. 가역적인 작업을 선호하세요. 명령 참조는 기능을 설명할 뿐, 변경을 승인하지 않습니다.

참조 가이드

작업과 관련된 가이드만 읽으세요. 예제의 obsidian은 확인된 $OBSIDIAN_CLI 실행 파일로 간주하고, 대상을 알고 있다면 vault="<이름 또는 ID>"를 추가하세요.

작업참조
노트 작업, 개요, 단어 수, 고유 노트references/note-operations.md
검색, 태그, 속성, 역링크, 고아 노트, 확인되지 않은 링크references/search-metadata.md
데일리 노트, 작업, 템플릿references/daily-tasks-templates.md
볼트, 작업 공간, 북마크, 플러그인, 테마, 동기화, 게시, Bases, 개발자 도구references/vault-management.md

관련 스킬