Use joplin CLI to interact with Joplin notes.
Use the joplin CLI for editing notes. Avoid modifying the SQLite database directly - it can cause sync conflicts and data loss.
If Joplin is not configured with WebDAV, configure it:
bash
joplin config sync.target 6
joplin config sync.6.path "https://your-webdav-server/path"
joplin config sync.6.username "your-username"
joplin config sync.6.password "your-password"
joplin sync
bash
joplin ls # List notebooks
joplin ls "Notebook Name" # List notes in a notebook
joplin status # Show sync status and note counts
joplin ls -l # List with IDs
bash
joplin cat <note-id> # Display note content
joplin cat "Note Title" # Also works with title
joplin note <note-id> # Open note in editor
bash
joplin mknote "Note Title" # Create note in default notebook
joplin mknote "Note Title" --notebook "Notebook Name"
joplin mkbook "New Notebook" # Create new notebook
Tip: Ask the user which notebook to use. Use:
joplin use — shows current notebookjoplin use "Notebook Name" — switch to a notebookjoplin ls — see all notebooksbash
joplin edit --note <note-id> # Edit note in editor
joplin set <note-id> title "New title" # Change note title
bash
joplin rmnote <note-id> # Delete note
joplin rmbook "Notebook Name" # Delete notebook
bash
joplin mv "Note Title" "Target Notebook"
bash
joplin todos # List all todos
joplin todo <note-id> # Toggle todo status
joplin done <note-id> # Mark as done
joplin undone <note-id> # Mark as not done
bash
joplin sync # Sync with WebDAV server
bash
joplin export <note-id> --format md
joplin export <note-id> --format html
joplin export <note-id> --format pdf
bash
joplin import /path/to/note.md --notebook "Notebook Name"
Note: joplin search is only available in GUI mode. Use joplin ls to list notebooks and notes instead.
text
attach, batch, cat, config, cp, done, e2ee, edit, export, geoloc, help,
import, ls, mkbook, mknote, mktodo, mv, ren, restore, rmbook, rmnote,
server, set, share, status, sync, tag, todo, undone, use, version
A note or notebook can be referred to by:
Title: "Note Title"
ID: fe889 (get from joplin ls -l)
Shortcuts:
$n — Currently selected note$b — Currently selected notebook$c — Currently selected itemJoplin can run interactively (like a shell). Start with just joplin:
bash
joplin # Start interactive mode
:)#CommandDescription:syncSync with WebDAV server:quit or :qExit Joplin:helpShow help:open <note-id>Open a note
e — Edit current notei — Insert new noteSpace — Select itemEnter — Open notebash
# Create a notebook
joplin mkbook "My notebook"
# Switch to it
joplin use "My notebook"
# Create a note
joplin mknote "My note"
# View notes with IDs
joplin ls -l
# Edit a note's title
joplin set <note-id> title "New title"
Some notebooks use the YesYouKan kanban plugin for visual kanban boards. These notes have a specific format that must be preserved when editing:
markdown
# Notebook Name
# Backlog
## Task 1
Description here
## Task 2
# In progress
## Another Task
Details
# Done
## Completed Task
Result
```kanban-settings
# Do not remove this block
text
### ⚠️ Kanban Formatting Rules
The YesYouKan plugin uses a specific format. Key points:
1. **Kanban settings block** - The kanban-settings block at the end of the note is used by the plugin. Its format should be preserved as shown in the example above.
2. **Use `##` for task headings** (not `#`)
3. **Column headings** should use `# Backlog`, `# In progress`, `# Done`
4. **Blank lines** between tasks are visible in the kanban view
5. **After editing a kanban note, run `joplin sync`** to upload changes
6. **Verify changes with `joplin cat <note-id>`** to ensure formatting is correct
### Moving Tasks Between Columns
When moving a task, simply move the `##` task section from one column to another.