Skip to main content

cli-anything-joplin

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

Aller à l'installation

Informations de source

Dépôt
HKUDS/CLI-Anything
Dernière activité de la source
28 mai 2026 à 11:26
Langue détectée de SKILL.md
anglais
Étoiles
49 636
Forks
4 582

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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 ```bash cd joplin/agent-harness pip install -e . ``` ## Usage ```bash # 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 ```bash # 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`
Voir sur GitHub