Que fait cli-anything-joplin ?
Utilisez ce skill pour automatiser les workflows Joplin (carnets, notes, tâches, balises, pièces jointes, recherche, synchronisation, import/export) via un harnais avec état basé sur le binaire terminal réel joplin.
Prérequis
- Python 3.10+
- Binaire terminal Joplin disponible en tant que
joplin - Optionnel : passer
--profilepour cibler un profil Joplin spécifique
Installation
cd joplin/agent-harness
pip install -e .
Utilisation
# Mode REPL (par défaut)
cli-anything-joplin
# Commande unique lisible par machine
cli-anything-joplin --json notebooks list
# Projet avec état
cli-anything-joplin project new --name demo -o ./demo.joplin-harness.json
cli-anything-joplin --project ./demo.joplin-harness.json notes create "Note de réunion"
# Simulation (pas de sauvegarde automatique)
cli-anything-joplin --json --dry-run --project ./demo.joplin-harness.json notes create temp
Contrat de sortie JSON
Lorsque --json est activé, les commandes renvoient :
ok: booléencommand: identifiant de commande stable tel quenotes.list,todos.toggledata: charge utile de la commandeerror: null en cas de succès, ou{ type, message }en cas d'échec
Groupes de commandes
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
Conseils pour l'agent
- Privilégiez
--jsonpour une sortie analysable. - Utilisez
--projectpour les workflows multi-étapes afin de conserver l'historique. - Les commandes de mutation uniques sauvegardent automatiquement le projet sauf si
--dry-runest défini. - Le mode REPL ne sauvegarde pas automatiquement ; exécutez
project saveexplicitement. - Certaines versions du CLI Joplin limitent
searchau mode GUI ; si vous voyez"only available in GUI mode", traitez la recherche comme étant au mieux. - Joplin 3.6.x peut avoir une commande
versiondéfectueuse dans les installations globales npm ; le harnais se replie sur les métadonnées du paquet installé pourbackend version, en explorant le répertoire binaire résolu par lien symbolique, le dossier frère de style Windowsnode_modules/joplin, le dossier parent de style Unixlib/node_modules/joplin, et enfinnpm root -g. - Les sorties
stdout/stderrdu backend dans les résultats de commande sont textuelles ; ne supposez pas que les avertissements ont été supprimés des corps de notes ou des exportations. - En cas d'échec, analysez
erroren utilisant le même champcommandqu'en cas de succès (config.import_file,e2ee.decrypt_file). Les sous-commandes multi-mots utilisent un point unique entre le groupe et la sous-commande.
Workflow de test
# Boucle de rétroaction rapide
python -m pytest -q cli_anything/joplin/tests/test_core.py
python -m pytest -q cli_anything/joplin/tests/test_full_e2e.py::TestCLISubprocess
# Backend réel (joplin doit être dans 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
# Suite complète
python -m pytest -v --tb=no cli_anything/joplin/tests
# Vérifier le point d'entrée du script console installé
CLI_ANYTHING_FORCE_INSTALLED=1 python -m pytest -v -s cli_anything/joplin/tests/test_full_e2e.py
Référence de validation actuelle (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