# CLI Anything Joplin

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

- Repository: https://github.com/HKUDS/CLI-Anything (58029 stars)
- Category: Engineering
- License: Apache-2.0
- Last updated: 2026-09-22
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add HKUDS/CLI-Anything --skill cli-anything-joplin -g -a claude-code -y`
Codex: `npx skills add HKUDS/CLI-Anything --skill cli-anything-joplin -g -a codex -y`
Cursor: `npx skills add HKUDS/CLI-Anything --skill cli-anything-joplin -g -a cursor -y`
Gemini CLI: `npx skills add HKUDS/CLI-Anything --skill cli-anything-joplin -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add HKUDS/CLI-Anything`

## Description

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

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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

The rest: https://github.com/HKUDS/CLI-Anything/blob/HEAD/joplin/agent-harness/cli_anything/joplin/skills/SKILL.md
