Command-line interface for Joplin workflows using the real joplin terminal backend
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-cli-anything-joplin-cca102b3e9b0 ,按照其中的说明把「cli-anything-joplin」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
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.
joplin--profile to target a specific Joplin profilecd joplin/agent-harness
pip install -e .
# 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
When --json is enabled, commands return:
ok: booleancommand: stable command identifier such as notes.list, todos.toggledata: command payloaderror: null on success, or { type, message } on failureproject: 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--json for parseable output.--project when running multi-step workflows so history is persisted.--dry-run is set.project save explicitly.search behind GUI mode; if you see
"only available in GUI mode", treat search as best-effort.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.stdout/stderr in command results are verbatim; do not assume
warnings were stripped from note bodies or exports.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.# 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 passedpython -m pytest -q cli_anything/joplin/tests -> 134 passed, 1 skipped