터미널로 다루는 내 볼트
taskforge는 Obsidian 볼트의 작업을 읽고 쓰는 작은 명령줄 도구입니다. 앱과 같은 파서를 사용하므로 반복 작업은 다음 회차로 넘어가고, 보관 항목은 올바른 위치로 이동하며, 작업 줄은 여러분의 형식 그대로 유지됩니다. 셸 스크립트나 에이전트에 맡기면 실제 마크다운 파일을 편집합니다. 호스팅되는 것은 아무것도 없습니다.
TaskForge 3.0에서 제공 예정
TaskForge CLI와 MCP 서버는 TaskForge 3.0 출시와 함께 제공됩니다. 이 페이지의 내용은 출시 시점에 어떻게 동작할지를 설명합니다. TaskForge 앱은 지금 바로 이용할 수 있습니다.
CLI냐 MCP 서버냐?
MCP 연결이 없는 셸 환경, 즉 스크립트, cron, CI, 저장소 체크아웃에서 작업하는 코딩 에이전트라면 CLI를 사용하세요. 에이전트가 이미 TaskForge에 MCP 연결을 갖고 있다면 MCP 도구를 우선하세요. 타입이 있고, 에이전트가 스스로 고칠 수 있는 구조화된 오류를 반환하며, PATH에 아무것도 필요하지 않습니다. 둘 다 동일한 엔진을 동일한 시맨틱으로 구동하므로, 여러분의 런타임에 이미 연결된 쪽을 고르면 됩니다. 볼트 파일을 손으로 편집하는 것은 최후의 수단입니다.
설치
macOS와 Linux는 Homebrew로 설치합니다:
brew install azhard/tap/taskforge npm을 선호하시나요? 같은 바이너리가 패키지로도 제공됩니다:
npm install -g taskforge 볼트를 열면 스스로 설치되는 앱 번들 버전이 곧 제공될 예정입니다. 그때까지는 위의 tap이 유일한 설치 경로입니다.
빠른 시작
--vault로 taskforge에 볼트 위치를 알려주거나, TASKFORGE_VAULT를 한 번 설정해 두세요. 모든 조회 명령은 --json을 지원하여 에이전트가 파싱할 수 있는 기계 판독용 출력을 냅니다.
taskforge schema 볼트의 작업 표기 방식을 출력합니다: 상태 기호, 날짜 형식, 사용자 지정 필드, 새 작업이 들어가는 위치. 에이전트가 가장 먼저 읽는 정보입니다.
taskforge add "call the plumber" --due 2026-07-10 --priority high 볼트의 기본 새 작업 대상에 작업을 추가합니다. 여러분의 볼트가 작업을 쓰는 방식 그대로 포맷됩니다.
taskforge query 'prop:priority_label=urgent' --sort priority --count 사용자 지정 필드 priority_label:: urgent를 가진 작업 수를 셉니다. 가장 긴급한 순서부터입니다. 목록으로 보려면 --count를 빼세요.
taskforge query 'desc:"invoice" text:acme' --json 설명에 invoice가 언급되고 제목에 acme가 언급된 작업을 JSON으로 찾습니다. 발음 구별 기호와 대소문자는 무시되므로 cafe가 café와도 일치합니다.
taskforge done <task-id> 작업을 완료합니다. 반복 작업이라면 다음 회차가 앱이 하는 것과 똑같이 파일에 다시 기록됩니다.
taskforge show <task-id> --json 작업 하나를 콘텐츠 해시와 함께 읽습니다. 이후 편집에서 --if-hash를 전달하면 오래된 복사본 위에 덮어쓰는 것을 막을 수 있습니다.
쿼리 문법
쿼리 인자는 공백으로 구분된 토큰의 집합이며, 모든 토큰이 일치해야 합니다. 자주 쓰이는 토큰은 다음과 같습니다:
| text:word | 제목에 해당 단어가 포함되어 있습니다 (발음 구별 기호와 대소문자 무시). | text:groceries |
| desc:"phrase" | 작업 설명에 해당 구절이 포함되어 있습니다. | desc:"send invoice" |
| tag:name | 작업에 #name 태그가 있습니다. | tag:work |
| prop:key=value | 사용자 지정 필드 key가 value와 같습니다. | prop:area=home |
| prop:key | 사용자 지정 필드 key가 존재합니다 (값은 무관). | prop:estimate |
| --sort due|priority|created | 결과의 순서를 정합니다. 기본값은 마감일이 가까운 순입니다. | --sort priority |
| --count | 작업 대신 일치하는 개수를 반환합니다. | --count |
사용자 지정 필드 key에는 문자, 숫자, 밑줄을 쓸 수 있으므로 priority_label과 area_2 모두 사용할 수 있습니다.
요구 사항 하나: 볼트 계약 파일
taskforge는 TaskForge가 볼트 안에 쓰는 작은 계약 파일인 taskforge/schema.json을 읽습니다. 이 파일은 여러분의 정확한 작업 형식을 설명하므로, CLI는 추측하는 대신 여러분의 방식대로 작업을 편집합니다. TaskForge 3.0 이상에서 볼트를 한 번이라도 열고, Settings, AI & Agents로 가서 "Generate agent files"를 켜 두세요. 그러면 계약 파일이 기록됩니다.
taskforge가 볼트를 찾지 못하면 볼트를 지정하는 세 가지 방법을 알려줍니다:
- 명령에 --vault /path/to/vault를 전달합니다.
- TASKFORGE_VAULT 환경 변수를 설정합니다.
- TaskForge 3.0 이상에서 볼트를 한 번 열어 taskforge/schema.json이 생기게 한 다음, 볼트 폴더 안에서 실행합니다.
로컬에서만 동작
taskforge는 여러분의 기기에서 실행되며, 지정한 볼트 안의 마크다운 파일만 다룹니다. 계정도, API 키도, 네트워크 호출도 없습니다. 이미 볼트를 동기화하고 있는 iCloud, Dropbox, Obsidian Sync 등이 편집 내용을 다른 기기로 전달합니다.
에이전트가 직접 다루게 하고 싶으신가요?
CLI는 터미널과 스크립트를 위한 것입니다. Claude Desktop이나 다른 MCP 클라이언트가 도구 인터페이스를 통해 작업을 추가하고 완료하게 하려면 MCP 서버를 대신 설정하세요. 같은 볼트, 같은 규칙입니다. 어느 쪽이든 같은 taskforge 바이너리이므로, taskforge mcp --stdio 하나면 MCP 서버로 전환됩니다.
MCP 서버 설정하기 →CLI가 작업을 편집합니다. 앱이 그것을 살아있게 유지합니다.
taskforge는 어떤 터미널에서든 당신의 볼트에 씁니다. TaskForge는 같은 파일을 휴대폰과 데스크톱의 목록, 위젯, 알림으로 바꿔줍니다. iPhone, iPad, Mac, Android에서 무료로 다운로드할 수 있습니다.