obsidian-github-copilot
무엇인가
Obsidian GitHub Copilot 플러그인은 Obsidian 에디터를 GitHub Copilot 서비스의 클라이언트로 만드는 확장이다. 노트 앱 안에서 코드 자동 완성과 대화형 질의를 처리하는 에디터 통합 계열에 속하며, 별도 IDE를 띄우지 않고 노트 편집 컨텍스트에서 Copilot을 호출하는 자리를 차지한다.
어떻게 동작하나
구현은 TypeScript로 작성된 Obsidian 플러그인이다. 인라인 완성은 Node.js 22 이상 바이너리를 외부 프로세스로 실행해 GitHub Copilot 서비스와 통신하고, 타이핑이 멈춘 뒤 설정된 지연 시간이 지나면 제안을 에디터에 삽입한다. 채팅은 Obsidian 오른쪽 사이드바의 뷰로 등록되며 모델 선택, 대화 기록, 시스템 메시지 설정을 플러그인이 직접 관리한다. 응답 스트리밍은 Obsidian의 requestUrl이 스트리밍 응답 본문을 지원하지 않아 구현되지 않았다.
무엇과 다른가
VS Code 등 IDE에 내장된 Copilot 확장과 달리, 이 플러그인은 마크다운 노트를 편집 대상으로 삼는다. 채팅 입력에서 [[이중 대괄호]] 노트 링크를 해석해 해당 노트 내용을 컨텍스트로 넘기고, 응답에 포함된 Mermaid 코드 블록을 채팅 뷰 안에서 다이어그램으로 렌더링한다. 렌더링 결과는 Obsidian 라이트/다크 테마를 따른다.
어떻게 쓰나
설치는 Obsidian 커뮤니티 플러그인 브라우저에서 하고, 설정에서 활성화한다. 인라인 완성을 쓰려면 설정에 Node 22 이상 바이너리 경로를 넣어야 하며 `which node`로 확인할 수 있다. 로그인 모달이 뜨면 안내를 따르고, 과거에 IDE에서 Copilot에 로그인한 적이 있으면 준비 완료 알림만 뜬다. 에디터에서 Tab으로 제안을 수락하고 Esc로 닫는다. 설정에서 생성 지연, 수락·거부·트리거·부분 수락 키 바인딩, 자동/수동 제안, 코드 블록 한정 여부, 제외 폴더와 파일을 지정한다.
전제와 한계
GitHub Copilot 구독과 서비스 통신을 위한 네트워크 연결이 전제다. 인라인 완성은 Node.js 22 이상이 필요하고, Flatpak으로 Obsidian을 설치한 환경에서는 샌드박스에서 기본 바이너리 경로에 접근할 수 없어 NVM으로 Node 버전을 관리해야 할 수 있다. 저장소를 복제하거나 릴리스 파일을 직접 받아 설치할 때는 플러그인 폴더 이름을 `github-copilot`으로 맞춰야 한다. Tab 완성은 키 바인딩 우선순위 문제로 LaTeX Math 모드의 불릿 등 일부 상황에서 오작동할 수 있다.
유사 도구
- claudianObsidian 볼트를 작업 디렉터리로 삼아 Claude Code·Codex 등 코딩 에이전트 CLI를 채팅 사이드바에서 실행하는 TypeScript 플러그인이다.
- obsidian-copilotObsidian 볼트 안에서 opencode·Claude Code·Codex 에이전트를 실행하는 TypeScript 플러그인이다. 노트를 읽고 파일을 만들며 여러 턴에 걸쳐 작업을 이어간다.
- CopilotForXcodeXcode 소스 편집기 확장으로 GitHub Copilot·Codeium·ChatGPT를 Xcode 안에 붙여 코드 제안·채팅·수정을 실행하는 Swift 앱이다.
- chatluna여러 플랫폼의 대규모 언어 모델을 하나의 봇 플러그인으로 연결하고, 확장 가능한 구조와 다양한 출력 형식으로 채팅 서비스를 제공하도록 규율한다.