Was macht cli-anything-joplin?
Nutzen Sie diese Fähigkeit, um Joplin-Notizbücher, Notizen, Aufgaben, Tags, Anhänge, Suche, Synchronisation und Import/Export-Workflows über einen zustandsbehafteten Harness zu automatisieren, der auf dem echten joplin-Terminal-Binary basiert.
Voraussetzungen
- Python 3.10+
- Joplin-Terminal-Binary als
joplinverfügbar - Optional:
--profileübergeben, um ein bestimmtes Joplin-Profil anzusprechen
Installation
cd joplin/agent-harness
pip install -e .
Verwendung
# REPL-Modus (Standard)
cli-anything-joplin
# Maschinenlesbarer Einmal-Befehl
cli-anything-joplin --json notebooks list
# Zustandsbehaftetes Projekt
cli-anything-joplin project new --name demo -o ./demo.joplin-harness.json
cli-anything-joplin --project ./demo.joplin-harness.json notes create "Besprechungsnotiz"
# Testlauf (kein automatisches Speichern)
cli-anything-joplin --json --dry-run --project ./demo.joplin-harness.json notes create temp
JSON-Ausgabe-Vertrag
Wenn --json aktiviert ist, geben Befehle Folgendes zurück:
ok: booleschcommand: stabiler Befehlsbezeichner wienotes.list,todos.toggledata: Befehlsnutzdatenerror:nullbei Erfolg, oder{ type, message }bei Fehlschlag
Befehlsgruppen
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
Agenten-Hinweise
- Bevorzugen Sie
--jsonfür auswertbare Ausgabe. - Verwenden Sie
--projectbei mehrschrittigen Workflows, damit der Verlauf gespeichert wird. - Einmalige mutierende Befehle speichern das Projekt automatisch, es sei denn
--dry-runist gesetzt. - Der REPL-Modus speichert nicht automatisch; führen Sie
project saveexplizit aus. - Einige Joplin-CLI-Builds schränken die
search-Funktion auf den GUI-Modus ein; wenn Sie"only available in GUI mode"sehen, behandeln Sie die Suche als bestenfalls versuchsweise. - Joplin 3.6.x kann einen defekten
version-Befehl in npm-globalen Layouts haben; der Harness greift auf installierte Paketmetadaten fürbackend versionzurück, indem er das symlink-aufgelöste Binary-Verzeichnis, das Windows-artige Geschwisterverzeichnisnode_modules/joplin, das Unix-artige Elternverzeichnislib/node_modules/joplinund schließlichnpm root -gdurchsucht. - Backend-
stdout/stderrin Befehlsergebnissen sind unverändert; gehen Sie nicht davon aus, dass Warnungen aus Notiztexten oder Exporten entfernt wurden. - Parsen Sie bei Fehlschlag
errormit dem gleichencommand-Feld wie bei Erfolg (config.import_file,e2ee.decrypt_file). Mehrwort-Unterbefehle verwenden einen einzelnen Punkt zwischen Gruppe und Unterbefehl.
Test-Workflow
# Schnelle Rückmeldung
python -m pytest -q cli_anything/joplin/tests/test_core.py
python -m pytest -q cli_anything/joplin/tests/test_full_e2e.py::TestCLISubprocess
# Echtes Backend (joplin muss im PATH sein)
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
# Gesamte Testsuite
python -m pytest -v --tb=no cli_anything/joplin/tests
# Installierten Konsolenskript-Einstiegspunkt überprüfen
CLI_ANYTHING_FORCE_INSTALLED=1 python -m pytest -v -s cli_anything/joplin/tests/test_full_e2e.py
Aktuelle Validierungsbasis (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