Skip to main content

cli-anything-joplin

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

الانتقال إلى التثبيت

معلومات المصدر

المستودع
HKUDS/CLI-Anything
آخر نشاط في المصدر
٢٨ مايو ٢٠٢٦ في ١١:٢٦
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٤٩٬٤٨٦
التفرعات
٤٬٥٦٥

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
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`
عرض على GitHub