cli-anything-joplin은(는) 무엇을 하나요?
이 스킬을 사용하면 실제 joplin 터미널 바이너리를 기반으로 한 상태 저장 하니스를 통해 Joplin 노트북, 노트, 할 일, 태그, 첨부 파일, 검색, 동기화, 가져오기/내보내기 워크플로우를 자동화할 수 있습니다.
요구 사항
- Python 3.10+
joplin으로 실행 가능한 Joplin 터미널 바이너리- 선택 사항: 특정 Joplin 프로필을 대상으로 하려면
--profile전달
설치
cd joplin/agent-harness
pip install -e .
사용법
# REPL 모드 (기본값)
cli-anything-joplin
# 기계가 읽을 수 있는 단일 명령
cli-anything-joplin --json notebooks list
# 상태 저장 프로젝트
cli-anything-joplin project new --name demo -o ./demo.joplin-harness.json
cli-anything-joplin --project ./demo.joplin-harness.json notes create "회의록"
# 드라이 런 (자동 저장 안 함)
cli-anything-joplin --json --dry-run --project ./demo.joplin-harness.json notes create temp
JSON 출력 계약
--json이 활성화되면 명령은 다음을 반환합니다:
ok: 불리언command:notes.list,todos.toggle등 안정적인 명령 식별자data: 명령 페이로드error: 성공시 null, 실패시{ type, message }
명령 그룹
project:new,open,save,info,json,statusnotebooks:list,create,use,removenotes:list,create,set,get,remove,copy,move,renametodos:list,create,toggle,clear,done,undonetags:list,add,remove,notetags,tagnotessearch:runsync:run(--target,--upgrade,--use-lock)interop:import,exportconfig:get,set,list,export,import-fileattach:addstatus:show,restorebackend:version,dump,keymap,geoloc,export-sync-statusserver:status,start,stope2ee:status,target-status,decrypt,decrypt-filesession:status,undo,redo,history
에이전트 가이드
- 파싱 가능한 출력을 위해
--json을 선호하세요. - 다단계 워크플로우 실행 시 기록을 유지하려면
--project를 사용하세요. - 단일 변경 명령은
--dry-run이 설정되지 않은 경우 프로젝트를 자동 저장합니다. - REPL 모드는 자동 저장하지 않습니다. 명시적으로
project save를 실행하세요. - 일부 Joplin CLI 빌드는
search를 GUI 모드로 제한합니다."only available in GUI mode"메시지가 보이면 검색을 최선(best-effort)으로 처리하세요. - Joplin 3.6.x에서는 전역 npm 레이아웃에서
version명령이 손상될 수 있습니다. 하니스는 심볼릭 링크가 확인된 바이너리 디렉터리, Windows 스타일node_modules/joplin, Unix 스타일 상위lib/node_modules/joplin, 마지막으로npm root -g를 순서대로 탐색하여 설치된 패키지 메타데이터로 폴백합니다. - 명령 결과의 백엔드
stdout/stderr는 그대로 전달됩니다. 노트 본문이나 내보내기에서 경고가 제거되었다고 가정하지 마세요. - 실패 시 성공과 동일한
command필드를 사용하여error를 파싱하세요 (config.import_file,e2ee.decrypt_file). 여러 단어로 구성된 하위 명령은 그룹과 하위 명령 사이에 점 하나를 사용합니다.
테스트 워크플로우
# 빠른 피드백 루프
python -m pytest -q cli_anything/joplin/tests/test_core.py
python -m pytest -q cli_anything/joplin/tests/test_full_e2e.py::TestCLISubprocess
# 실제 백엔드 (joplin이 PATH에 있어야 함)
python -m pytest -v cli_anything/joplin/tests/test_full_e2e.py::TestBackendCommands
python -m pytest -v cli_anything/joplin/tests/test_full_e2e.py::TestBackendWorkflows
python -m pytest -v cli_anything/joplin/tests/test_full_e2e.py::TestBackendIntegration
# 전체 테스트 스위트
python -m pytest -v --tb=no cli_anything/joplin/tests
# 설치된 콘솔 스크립트 진입점 확인
CLI_ANYTHING_FORCE_INSTALLED=1 python -m pytest -v -s cli_anything/joplin/tests/test_full_e2e.py
현재 검증 기준 (Windows + Joplin CLI 3.6.2):
python -m pytest -q cli_anything/joplin/tests/test_core.py->107 passedpython -m pytest -q cli_anything/joplin/tests->134 passed, 1 skipped