Files
daniel156161 c34dab2cca
Build and Push Docker Container / build-and-push (push) Successful in 4m28s
feat(properties): prepare property commands before execution
- Create missing note files before running property:set.
- Default date-only datetime values to midnight.
- Keep property names out of path authorization checks.
- Split policy, vault, daily note, and command target helpers.
- Split n8n node args, description, output, and API response helpers.
- Split API tests by auth, command, daily note, and property behavior.
- Bump API and n8n node versions.
2026-06-24 14:31:42 +02:00
..
2026-06-24 09:11:13 +02:00

n8n-nodes-obsidian-cli-api

n8n community-node package for the Obsidian API Docker service.

It talks to the HTTP API, which then runs the official Obsidian CLI against mounted vaults. The node sends structured args arrays only. It does not send shell commands.

Nodes

Obsidian API

Resources:

  • Note
    • Create
    • Read
    • Append
    • Prepend
    • Delete
    • Rename
    • List Files
  • Property
    • Set
    • Read
    • Remove
    • List
  • Daily Note
    • Append
    • Prepend
    • Read
    • Path
  • Search
    • Search
    • Search With Context
  • Vault
    • Info
    • List Vaults
  • Raw Command
    • Safe args-array escape hatch for any official CLI command

Credentials

Credential type: Obsidian API

Fields:

  • Base URL: URL of your Obsidian API service, e.g. http://localhost:8080
  • API Token: JWT created with scripts/create_jwt.py
  • Default Vault: optional, e.g. work

Multi-vault

Set the Vault field on a node to override the credential default vault.

The node sends this as the official CLI prefix:

vault=work

Raw command example:

["vault=work", "read", "path=Inbox/Note.md"]

Properties / frontmatter

The official Obsidian CLI supports property/frontmatter commands. The n8n node exposes them as the Property resource:

  • Set sends property:set path=<note> name=<property> value=<value> type=<type>
  • Read sends property:read path=<note> name=<property>
  • Remove sends property:remove path=<note> name=<property>
  • List sends properties name=<optional> format=<yaml|json|tsv>

Examples:

path=00 Kontext/Feedback Browser CLI Tests.md
name=tags
value=kontext, feedback-browser-cli-tests
type=list
path=00 Kontext/Feedback Browser CLI Tests.md
name=date
value=2026-06-24
type=date

Local install in self-hosted n8n

From this repo:

cd packages/n8n-nodes-obsidian-api
npm install --ignore-scripts
npm run build
npm pack

Then install the generated .tgz in your n8n custom extensions setup.

For Docker-based n8n, one common setup is mounting this package into n8n's custom extensions directory and setting:

N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom

Exact installation depends on your n8n deployment.

Development

npm install --ignore-scripts
npm run typecheck
npm run build

--ignore-scripts avoids local native builds from n8n transitive dependencies on unsupported bleeding-edge Node versions. Use the Node version recommended by your n8n release for production builds.