다시 찾아오는 CLI의 시대 | 옵시디언 CLI
Length: • 1 min
Annotated by Jinyoung
Obsidian CLI가 정식으로 출시 되었습니다. 제가 개인적으로 기대했던 기능이고 또한 Obsidian 개발사가 좀 감다살이구나 느꼈어요. 케파노가 클로드 코드 관련 트윗 올릴 때부터 느꼈습니다. 또 최근에 Obsidian 싱크 헤드리스가 업데이트 되면서 Obsidian 앱을 깔지 않고도 Obsidian 사용이 가능해졌습니다. 즉, 순수히 CLI만으로도 Obsidian 사용이 연동까지 Obsidian 개발사가 생각을 하고 있었다는 건데
AI 시대에 다시 로컬 환경에서 노트를 저장하는 것이 뜨면서 이쪽에 발 맞춰서 개발을 빠르게 진행해주고 있는 것 같습니다. 여튼 개인적으로 기능 소개 영상은 잘 안 찍지만 한 번 정도는 소개해드리면 좋을 것 같아서 만든 영상이고요. 실제 사용 예시도 살짝 보여드릴 예정입니다. 이 영상은 터미널 사용을 어느 정도 할 줄 안다는 가정하에 진행을 합니다. 요즘 클로드 코드 때문에 많은 분들이 터미널을 조금씩 만져보게 되었죠.
그런데 저는 터미널을 사용할 줄 모르는데요. 클로드 코드 사용한 적이 없는데요. 라시는 분들이 있을 텐데 이 영상에서 터미널 사용법까지 다루는 건 조금 무리가 됩니다. 그 분들에게는 아직 Obsidian CLI가 필요는 없는 단계이기 때문에 이런 세계가 있구나 라고 해리포터를 보는 느낌으로 영상을 감상해 주시면 감사하겠습니다. 우선 사용법은 간단합니다. Obsidian을 실행해 주시고요. 설정하면서 제너럴 탭에서 맨 밑에 어드밴스드 섹션에서
CLI를 사용하겠다고 체크를 하고 탭이 하나 뜨거든요. 터미널에서 패스를 등록하는 건데 이거를 해야 Obsidian CLI를 사용할 수 있습니다. 여튼 이 등록 버튼까지 누르면 다 끝나요. 터미널을 실행하신 다음에 Obsidian이라고 입력을 하고 Obsidian 로고가 뜨면 셋업은 끝난 겁니다. 간단하죠? 사실 여기는 Obsidian TUI 모드라서 정확하게 기대한 CLI 모드는 아닙니다. 하지만 명령어는 다 똑같고
차이까지 정확하게 아실 필요는 없고요. 여기서 명령으로 내 볼트를 조작할 수 있습니다. 가볍게 해보죠. 예컨대 현재 열린 노트의 아웃라인을 가져봅시다 하면 아웃라인 이렇게 입력하면 되고요. 혹은 태스크 투두로 내 볼트 내에서 체크 표시 안 한 모든 체크리스트를 가져올 수도 있습니다. 또 코어 플러그인인 데일리 노트를 사용 중이시라면 이렇게 데일리 노트에서 체크리스트 목록을 가져올 수 있습니다. 이 TUI 모드가 아니라 그냥 터미널에서 Obsidian이라 쓰고
뒤에 명령을 입력하면 그대로 사용할 수 있습니다. Obsidian 헬프라고 입력하면 Obsidian CLI의 명령어들이 쫙 나와요. 그래서 이게 일단 현재 제공하는 명령어들의 치트시트입니다. 더 알아보지는 않을 거예요. 저도 사실 어떤 명령어가 있는지 잘 몰라요. 치트시트 쭉 보고 대충 뭘 할 수 있겠구나. 감만 잡는 용도입니다. 이 명령어를 외워서 일일이 타이핑해서 쓰느냐. 그럼 미친 짓은 당연히 하지 않죠.
이 CLI의 주 사용자들은 우리 같은 사람이 아닙니다. 사람이 쓰라고 만든 게 아니에요. CLI가 왜 저 같은 사람들이 기대했던 기능이냐 하면 CLI는 AI와 연동하기 좋습니다. 언어모델이 우리보다 더 CLI를 잘 응용해서 Obsidian을 사용할 수 있을 거예요. 구체적으로 말하면 로컬 파일을 읽으면서 작동할 수 있는 AI Agent를 클로드 코드나 오픈클로에 물려서 쓰는 거죠.
일단 여기서 예시로는 클로드 코드랑 연동법을 보여드리겠습니다. 어차피 연동 방법은 오픈클로도 비슷하거든요. AI Agent가 Obsidian CLI를 쓰게 한다는 건 Obsidian 노트들을 조작하는 상황에서 터미널 명령어를 쓰는 게 아니라 Obsidian CLI를 쓰게끔 가이드를 추가하면 됩니다. 그리고 Obsidian CLI의 자세한 사용법은 Obsidian 헬프 같은 것 보고 알아서 하라 하면 돼요.
그래서 이미 Obsidian CEO인 케파노가 잘 만들어놨습니다. 여기에 Obsidian 관련 스킬을 만들어놨거든요. 추가로 여기서는 CLI 뿐만 아니라 여러 가지 스킬이고요. 이 깃헙 링크를 따서 클로드 코드에 이 스킬을 설치해라고 단순하게 해도 되지만 리드미에서 안내하는 대로 클로드 코드 플래그를 이용해서 설치를 합니다. 그러면 나중에 스킬이 업데이트될 때 자동으로 업데이트가 된대요. 저는 이미 깔았기에 넘어갈 거고요.
다 까셨으면 클로드 코드를 재시작하시면 됩니다. 이제 클로드 코드가 Obsidian을 사용할 때는 Obsidian CLI를 이용할 거예요. 물론 항상 Obsidian CLI를 잘 사용하는 건 아니에요. 지금 어쩌다 터미널 명령을 사용할 때도 있는데 그때마다 지침에 어느 정도 안내하는 등의 작업이 필요합니다. 반복 작업하는 스킬들에는 명령을 확실히 해줄 수 있고요. 그러면 실제 사용을 해보겠습니다. 먼저 현재 노트 요약을 덧붙여줘 라고 명령해 봅니다.
원래는 노트 링크나 제목을 따서 노트를 지정했어요. 이제 CLI가 있으니 그냥 현재 노트의 요약을 하라고 바로 명령을 할 수가 있어요. Obsidian 파일로 현재 파일의 경로를 읽고 Obsidian 리드로 현재 파일 내용을 읽었습니다. 그 후 클로드 코드가 요약한 다음에 Obsidian 업데이트로 현재 노트에 요약 내용을 붙여넣을 겁니다.
이 과정에서 그래프라든가 터미널 명령에 개입할 필요가 없어요. 그냥 스무스하게 진행이 됩니다. 다른 사례로는 스킬을 만들어서 쓰는 거죠. 브리핑 스킬을 만들어 보겠습니다. 최근 14일간 생성 및 수정된 노트를 읽어서 내 현재 상황과 앞으로 뭘 해야 할지를 브리핑한 후 노트로 만들어 열어줘 라고 스킬을 만들어 보겠습니다. 이 14일간 생성 및 수정된 노트를 가져오는 거는 터미널 명령을 쓰긴 해야 합니다.
Obsidian CLI에서 생성 및 수정으로 날짜 필터 거는 기능은 지금은 제공하지 않거든요. 그렇기에 브리핑을 만든 뒤에 Obsidian 오픈을 이용해 해당 파일을 여는 거죠. 그러면 스무스하게 브리핑을 만든 뒤에 Obsidian에서 자동으로 열게 됩니다. 아까 잠깐 터미널 명령을 언급했었는데요. 눈치 좋으신 분들은 눈치 채셨겠지만
어차피 Obsidian 볼트가 마크다운 파일 집합인데 그냥 터미널 명령을 쓰면 되는 거 아니야? 굳이 Obsidian CLI를 써야 하나 이런 생각이 드는 감 좋으신 분들이 있을 겁니다. 먼저 CLI의 장점은 현재 열린 노트를 기반으로 명령을 내릴 수 있습니다. 물론 터미널로도 워크스페이스 정보 읽어서 확인하는데 조금 더 자연스럽게 할 수 있는 거죠. 굳이 노트 제목이나 경로 붙여넣기 안 해도 쓸 수 있고요.
아까 노트 요약 예제처럼요. 그리고 일부 기능은 터미널 명령보다 빠릅니다. 특히 연결된 노트 찾을 경우 그렇거든요. Obsidian은 실행될 때 인덱싱 작업이 있어요. 볼트에 존재하는 노트와 노트 간의 연결 관계를 가져오는 건데 이 Obsidian CLI를 사용하면 이 인덱싱 정보를 이용해서 더 빠르게 관련 노트를 찾을 수 있습니다. 터미널 명령으로 연결된 노트를 찾는다면 파일을 탐색해 가면서 찾기 때문에 훨씬 느려요.
또한 파일 수정을 할 때 즉각적으로 반영이 됩니다. 근데 터미널 명령으로는 노트 수정 시에 Obsidian에 즉각 바로 반영이 안 될 때가 있어요. 그러니까 파일 자체는 수정이 되었는데 실제 Obsidian에 수정이 되는 게 즉각 보이지 않을 때가 있거든요. 아예 파일 수정된 걸 Obsidian이 알아차리지 못할 때도 있어요. 근데 Obsidian CLI 사용 시에는 즉각 Obsidian 통해서 파일이 수정되기에 즉각 Obsidian에서도 보이게 됩니다. 그래서 더 매끄럽게 사용할 수 있고요.
부가적으로 플러그인 개발에 유리하다고 합니다. Obsidian 공식 개발사에서 이런 걸 강조하는데 저는 사실 그런 쪽으로 사용해본 경험은 없고요. 여튼 기존에는 Obsidian 기능을 쓸려면 MCP를 써서 해야 했습니다. 로컬 REST API 플러그인 깔고 MCP 툴 깔고 이렇게 커뮤니티 플러그인을 여러 개 덕지덕지 붙여 했는데 이제는 깔끔하게 AI가 Obsidian을 쓸 수 있게 된 겁니다. 그래서 요즘 개발계에서는 CLI가 다시 각광을 받고 있습니다.
아무래도 현재 AI는 이미지보다는 언어를 더 잘 처리하잖아요. 그러니까 언어 인터페이스인 CLI로 앱의 기능을 제공하면 우리 AI가 앱을 더 잘 사용할 수 있겠죠. 그리고 기존 터미널 명령을 같이 잘 씁니다. CLI 명령을 파이프 기호 써가면서 연결하면 조작할 수 있으니까. 앱의 인터페이스가 인간 친화적인 그래픽 기반의 인터페이스에서 다시 문자 기반 인터페이스도 주목을 받는 시대가 오는 것 같습니다.
사실 이것도 나름 인간 친화적인 거죠. 사람은 모니터 안 보고 명령만 딱 내리면 노예 기계가 알아서 자동으로 처리해 주면 좋잖아요. 이제 애플리케이션의 인터페이스를 우리 같은 사람에게 보여지는 것뿐만 아니라 AI가 더 접근하기 쉽게 명령을 제공하는 것도 중요해지는 것 같습니다. 좋아 보이기는 하는데 막 개발자들만 잘 쓸 수 있는 거 아닌가 라는 생각이 들 수도 있습니다. 이런 터미널이나 CLI가 말이죠. 저는 절대 그렇지 않다고 말씀드리고 싶고요.
일단 전 개발자만 접근 가능하다 싶은 건 먼저 그리 말을 하는 편이긴 합니다. 근데 이 CLI나 터미널 사용은 그렇지 않아요. 근데 우리가 터미널 명령어들 엄청 외워가면서 쓸 것도 아니고요. 원래 CLI 나오기 전에는 사람들은 도스 같은 CLI 위주의 환경에서 컴퓨터를 잘 사용하기도 했습니다. 어렵지 않습니다. 익숙한 거고요. 물론 익숙해지는 데 시간이 필요하기에 여유가 있을 때 익숙해져 볼 것을 추천드립니다.
제가 비슷한 사례로 마크다운을 꼽고 싶어요. 제 첫 영상에서 댓글에 옵시디언을 개발자만 쓸 수 있는 거다 하면서 그 예로 마크다운을 꼽더라고요. 이게 근데 어려운 것과 생소한 것은 구분할 수 있어야 하거든요. 마크다운도 개발자뿐만 아니라 IT 업계에서 그냥 널리 쓰이고 애초에 노션에서도 쓰이잖아요. 그런데 노션이 마크다운 어렵다고 쓰기 어렵다고 하는 사람은 없잖아요. 그리고 이제는 국가 문서 표준에 마크다운이 도입되는 움직임도 보이고 있어요.
약간의 기호를 외우고 손에 익숙해지면 서식화된 문서를 빠르고 쉽게 만들 수 있는 장점이 있는데 그걸 개발자만 할 수 있는 거라든가 그렇게 생각하면서 습득을 막는 건 좀 아깝다 생각합니다. 사실 터미널 못 사용하는 개발자가 요즘은 더 많아요. 요즘 개발자들은 터미널과 안 친하고 금융 쪽에서도 블룸버그 터미널 유명하지 않습니까? 그런데 블룸버그 터미널도 개발자들이 쓰는 건 아니고요.
여튼 어떤 생소한 게 있을 때 지금은 여유가 없다라든가 당장은 필요하지 않다라는 등의 이유로 넘기는 건 괜찮지만 조금 써보지 않고 너무 어려워. 특정 집단만 쓸 수 있을 거다. 라고 생각하고 문을 닫아버리는 건 아쉽다는 생각이 듭니다. 마지막으로 곧 옵시디언 책의 개정판이 나옵니다. 책 표지에 이렇게 예정이 되어 있고요. 클로드 코드랑 연동하는 부분이 한 챕터 정도 추가됩니다. 나올 경우 많은 관심을 부탁드리며 영상을 마칩니다.