L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

cli-anything-joplin

cli-anything-joplin

Command-line interface for Joplin workflows using the real joplin terminal backend

Independent GitHub snapshot · Automated classification · Original documentation governs

Hhkuds / cli-anythingApache-2.0

Documentation de la Skill

GitHub

name: "cli-anything-joplin" description: "Command-line interface for Joplin workflows using the real joplin terminal backend"

cli-anything-joplin

Use this skill to automate Joplin notebook, note, to-do, tag, attachment, search, sync, and import/export workflows through a stateful harness backed by the real joplin terminal binary.

Requirements

  • Python 3.10+
  • Joplin terminal binary available as joplin
  • Optional: pass --profile to target a specific Joplin profile

Install

cd joplin/agent-harness
pip install -e .

Usage

# REPL mode (default)
cli-anything-joplin

# Machine-readable one-shot command
cli-anything-joplin --json notebooks list

# Stateful project
cli-anything-joplin project new --name demo -o ./demo.joplin-harness.json
cli-anything-joplin --project ./demo.joplin-harness.json notes create "Meeting note"

# Dry-run (no auto-save)
cli-anything-joplin --json --dry-run --project ./demo.joplin-harness.json notes create temp

JSON output contract

When --json is enabled, commands return:

  • ok: boolean
  • command: stable command identifier such as notes.list, todos.toggle
  • data: command payload
  • error: null on success, or { type, message } on failure

Command groups

  • project: new, open, save, info, json, status
  • notebooks: list, create, use, remove
  • notes: list, create, set, get, remove, copy, move, rename
  • todos: list, create, toggle, clear, done, undone
  • tags: list, add, remove, notetags, tagnotes
  • search: run
  • sync: run (--target, --upgrade, --use-lock)
  • interop: import, export
  • config: get, set, list, export, import-file
  • attach: add
  • status: show, restore
  • backend: version, dump, keymap, geoloc, export-sync-status
  • server: status, start, stop
  • e2ee: status, target-status, decrypt, decrypt-file
  • session: status, undo, redo, history

Agent guidance

  • Prefer --json for parseable output.
  • Use --project when running multi-step workflows so history is persisted.
  • One-shot mutating commands auto-save the project unless --dry-run is set.
  • REPL mode does not auto-save; run project save explicitly.
  • Some Joplin CLI builds gate search behind GUI mode; if you see "only available in GUI mode", treat search as best-effort.
  • Joplin 3.6.x can have a broken version command in npm global layouts; the harness falls back to installed package metadata for backend version, probing the symlink-resolved binary directory, the Windows-style sibling node_modules/joplin, the Unix-style parent lib/node_modules/joplin, and finally npm root -g.
  • Backend stdout/stderr in command results are verbatim; do not assume warnings were stripped from note bodies or exports.
  • On failure, parse error using the same command field as success (config.import_file, e2ee.decrypt_file). Multi-word subcommands use a single dot between group and subcommand.

Test workflow

# Quick feedback loop
python -m pytest -q cli_anything/joplin/tests/test_core.py
python -m pytest -q cli_anything/joplin/tests/test_full_e2e.py::TestCLISubprocess

# Real backend (joplin must be in 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

# Full suite
python -m pytest -v --tb=no cli_anything/joplin/tests

# Verify the installed console script entry point
CLI_ANYTHING_FORCE_INSTALLED=1 python -m pytest -v -s cli_anything/joplin/tests/test_full_e2e.py

Current validation baseline (Windows + Joplin CLI 3.6.2):

  • python -m pytest -q cli_anything/joplin/tests/test_core.py -> 107 passed
  • python -m pytest -q cli_anything/joplin/tests -> 134 passed, 1 skipped
Skills enregistrées