cli-anything-joplin は何をしますか?
このスキルを使用すると、実際の joplin ターミナルバイナリをバックエンドとする状態管理可能なハーネスを通じて、Joplin のノートブック、ノート、ToDo、タグ、添付ファイル、検索、同期、インポート/エクスポートワークフローを自動化できます。
必要条件
- 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"が表示された場合は、検索をベストエフォートとして扱ってください。 - Joplin 3.6.x では、npm のグローバルレイアウトで
versionコマンドが壊れている可能性があります。ハーネスはインストール済みパッケージのメタデータにフォールバックしてbackend versionを実行し、シンボリックリンクを解決したバイナリディレクトリ、Windows スタイルの兄弟node_modules/joplin、Unix スタイルの親lib/node_modules/joplin、そして最終的にnpm root -gをプローブします。 - バックエンドの
stdout/stderrはコマンド結果にそのまま含まれます。警告がノート本文やエクスポートから削除されたと想定しないでください。 - エラー発生時は、成功時と同じ
commandフィールド(config.import_file、e2ee.decrypt_file)を使用してerrorを解析してください。複数単語のサブコマンドはグループとサブコマンドの間に単一のドットを使用します。
テストワークフロー
# クイックフィードバックループ
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