Knowledge · Integration
ObsidianAGNT

AI agents for Obsidian

A local-first vault — a natural fit for a local-first runtime. AGNT connects to Obsidian so agents can read what happens there, reason about it, and act — with a receipt for every run.

Install Research Analyst → Get AGNT free

Research Analyst is a ready-made agent that works in Obsidian — free, and it runs on your machine.

Obsidian and AGNT, in brief

What it doesLets an AGNT agent read from and act in Obsidian.
Connects withA local endpoint on your own machine
AGNT nodeobsidian-api
Runs whenA note is created or changed
Typical build timeTwo minutes
Where data goesNowhere by default — AGNT runs on your machine and credentials never leave it.

What you can automate

Reacts when…

  • a note is created or changed

Agents can…

  • create and update notes
  • build daily summaries
  • link related notes

Teams use it for

  • research findings filed into your vault
  • daily notes assembled from real activity
  • a second brain agents help maintain

Build it: the Obsidian workflow

Design goal for Obsidian: research findings filed into your vault; daily notes assembled from real activity; a second brain agents help maintain. The template below supplies configurable nodes, not the complete logic for those goals.

Use this Obsidian setup template to arrange the schedule, input review and API operation. Configure the account-specific fields and add your own decision and approval controls before activation.

Obsidian workflow: run on a schedule → review source and draft → configure destination in obsidian TRIGGER trigger-timer Run on a schedule Configure activation ACTION agnt-agent Review source and draft Configure inputs ACTION obsidian-api Configure destination in Obsidian Configure inputs
Configuration example for Obsidian. API and model calls may send data to your selected providers.
Obsidian — read, decide, actSetup template · configure before activation

This is a schema-checked starting point, not an end-to-end tested automation. Replace every CONFIGURE_ value, choose the operations you intend, connect credentials and map source outputs into later inputs. An edge orders steps; it does not supply a condition, an approval gate or a field mapping. Add and test those controls explicitly before any write. Cloud APIs and model providers may receive data. Keep the workflow inactive until tested with fixtures.

{
  "id": "7014a03f-e24e-449f-a52b-dfa0f9f7d962",
  "name": "Obsidian — read, decide, act",
  "nodes": [
    {
      "id": "4a94ccd1-e99e-4c88-aac0-f8ed7b461ab4",
      "text": "Run on a schedule",
      "x": 512,
      "y": 144,
      "isEditing": false,
      "type": "trigger-timer",
      "icon": "clock",
      "category": "trigger",
      "isSelected": false,
      "parameters": {
        "fireOnStart": "No",
        "scheduleType": "Interval",
        "schedule": "Every 15 Minutes"
      },
      "description": "Setup template for Timer Trigger. This trigger node fires the workflow at specified intervals or at a specific time. Configure credentials, inputs and output mapping before use.",
      "error": null,
      "isActive": false,
      "output": null,
      "outputs": {}
    },
    {
      "id": "afbe31fc-5b06-4deb-a8fb-f63dbc25368a",
      "text": "Review source and draft",
      "x": 512,
      "y": 336,
      "isEditing": false,
      "type": "agnt-agent",
      "icon": "agnt",
      "category": "action",
      "isSelected": false,
      "parameters": {
        "agentId": "CONFIGURE_AGENTID",
        "message": "Read the Obsidian item and decide whether it warrants action. Explain your reasoning.\nSource input: CONFIGURE_SOURCE_INPUT. Produce a reviewable draft only; do not take external actions."
      },
      "description": "Setup template for Agent Chat. Chat with an AI agent from your agent library. Select an agent and send messages to interact with it within your workflow. Configure credentials, inputs and output mapping before use.",
      "error": null,
      "isActive": false,
      "output": null,
      "outputs": {}
    },
    {
      "id": "15ea9221-3936-4576-a1de-4859e52a6160",
      "text": "Configure destination in Obsidian",
      "x": 512,
      "y": 528,
      "isEditing": false,
      "type": "obsidian-api",
      "icon": "connect",
      "category": "action",
      "isSelected": false,
      "parameters": {
        "action": "CHECK_STATUS",
        "baseUrl": "CONFIGURE_BASEURL",
        "contentType": "CONFIGURE_CONTENTTYPE",
        "timeoutMs": 1,
        "allowSelfSignedLocalhostCert": false,
        "createTargetIfMissing": false,
        "applyIfContentPreexists": false,
        "trimTargetWhitespace": false
      },
      "description": "Setup template for Obsidian API. Control Obsidian through the Local REST API. Supports vault files, active file, search, periodic notes, tags, commands, and opening notes. Auth uses AGNT providerId 'obsidian'. Configure credentials, inputs and output mapping before use.",
      "error": null,
      "isActive": false,
      "output": null,
      "outputs": {}
    }
  ],
  "edges": [
    {
      "id": "68b893f4-ee46-437b-a7df-3e1d8ba740fa",
      "start": {
        "id": "4a94ccd1-e99e-4c88-aac0-f8ed7b461ab4",
        "type": "output"
      },
      "end": {
        "id": "afbe31fc-5b06-4deb-a8fb-f63dbc25368a",
        "type": "input"
      },
      "startX": 800,
      "startY": 168,
      "endX": 512,
      "endY": 360
    },
    {
      "id": "f2481b29-cc13-4907-a301-52c283d252ce",
      "start": {
        "id": "afbe31fc-5b06-4deb-a8fb-f63dbc25368a",
        "type": "output"
      },
      "end": {
        "id": "15ea9221-3936-4576-a1de-4859e52a6160",
        "type": "input"
      },
      "startX": 800,
      "startY": 360,
      "endX": 512,
      "endY": 552
    }
  ],
  "zoomLevel": 1,
  "canvasOffsetX": 0,
  "canvasOffsetY": 0,
  "isTinyNodeMode": false
}

Configure Obsidian API

Control Obsidian through the Local REST API. Supports vault files, active file, search, periodic notes, tags, commands, and opening notes. Auth uses AGNT providerId 'obsidian'.

  • action — The Obsidian Local REST API operation to perform. Current example: CHECK_STATUS.
  • baseUrl — Obsidian Local REST API base URL. Default is https://127.0.0.1:27124. Current example: CONFIGURE_BASEURL.
  • contentType — Content-Type for write/patch actions. Use text/markdown for markdown patches, or application/json for table/frontmatter JSON patches. Current example: CONFIGURE_CONTENTTYPE.
  • timeoutMs — HTTP timeout in milliseconds. Current example: 1.
  • allowSelfSignedLocalhostCert — Allow Obsidian Local REST API's self-signed HTTPS certificate for localhost/loopback URLs only. Current example: false.
  • createTargetIfMissing — For PATCH_* actions: create the target if it does not already exist. Current example: false.
  • applyIfContentPreexists — For PATCH_* actions: apply patch even if patch data already exists in the target. Current example: false.
  • trimTargetWhitespace — For PATCH_* actions: trim target whitespace before applying the operation. Current example: false.

Install Research Analyst — it runs on Obsidian

Research Analyst is a working agent that uses Obsidian. Installing it drops the whole workflow onto your canvas — connected, editable, and yours to change.

Runs on your own machine · See what it does

A local vault meets a local runtime

Obsidian keeps plain markdown files on your own disk, which makes it an unusually natural partner for a local-first agent runtime. Nothing has to leave the machine for an agent to read your notes, write into them or link them together.

A second brain something else helps maintain

The promise of a personal knowledge base always founders on upkeep. Daily notes assembled from real activity and research findings filed into the right place turn maintenance into something that happens whether or not you feel like it.

Obsidian node reference

Control Obsidian through the Local REST API. Supports vault files, active file, search, periodic notes, tags, commands, and opening notes. Auth uses AGNT providerId 'obsidian'.

What it can do: CHECK_STATUS LIST_FILES READ_NOTE CREATE_OR_REPLACE_NOTE APPEND_TO_NOTE PATCH_NOTE DELETE_NOTE OPEN_NOTE GET_ACTIVE_FILE REPLACE_ACTIVE_FILE APPEND_ACTIVE_FILE PATCH_ACTIVE_FILE DELETE_ACTIVE_FILE SEARCH_SIMPLE SEARCH_DQL SEARCH_JSONLOGIC GET_PERIODIC_NOTE CREATE_OR_REPLACE_PERIODIC_NOTE APPEND_PERIODIC_NOTE PATCH_PERIODIC_NOTE DELETE_PERIODIC_NOTE LIST_TAGS LIST_COMMANDS EXECUTE_COMMAND GET_OPENAPI_SPEC GET_CERTIFICATE

Full Obsidian API parameter reference
ParameterTypeWhat it does
actionrequired string The Obsidian Local REST API operation to perform.
CHECK_STATUS · LIST_FILES · READ_NOTE · CREATE_OR_REPLACE_NOTE · APPEND_TO_NOTE · PATCH_NOTE · DELETE_NOTE · OPEN_NOTE
baseUrlrequired string Obsidian Local REST API base URL. Default is https://127.0.0.1:27124.
path string Vault-relative path, e.g. Projects/AGNT.md. For LIST_FILES, leave blank for root or provide a folder path.
only when action is LIST_FILES or READ_NOTE or CREATE_OR_REPLACE_NOTE or APPEND_TO_NOTE
content string Markdown/text content to write, append, patch, or search payload for relevant actions.
only when action is CREATE_OR_REPLACE_NOTE or APPEND_TO_NOTE or PATCH_NOTE or REPLACE_ACTIVE_FILE
query string Search query. For SEARCH_SIMPLE, plain text. For SEARCH_DQL, Dataview DQL. For SEARCH_JSONLOGIC, valid JSONLogic JSON.
only when action is SEARCH_SIMPLE or SEARCH_DQL or SEARCH_JSONLOGIC
operation string Patch operation for PATCH_* actions.
append · prepend · replace
only when action is PATCH_NOTE or PATCH_ACTIVE_FILE or PATCH_PERIODIC_NOTE
targetType string Optional surgical target type for READ_NOTE and PATCH_* actions. Use heading, block, or frontmatter.
· heading · block · frontmatter
only when action is READ_NOTE or PATCH_NOTE or PATCH_ACTIVE_FILE or PATCH_PERIODIC_NOTE
target string Target heading name, block reference, or frontmatter field when targetType is set.
only when action is READ_NOTE or PATCH_NOTE or PATCH_ACTIVE_FILE or PATCH_PERIODIC_NOTE
period string Periodic note type.
daily · weekly · monthly · quarterly · yearly
only when action is GET_PERIODIC_NOTE or CREATE_OR_REPLACE_PERIODIC_NOTE or APPEND_PERIODIC_NOTE or PATCH_PERIODIC_NOTE
year string Optional year for dated periodic note endpoint. Provide year, month, and day together.
only when action is GET_PERIODIC_NOTE or CREATE_OR_REPLACE_PERIODIC_NOTE or APPEND_PERIODIC_NOTE or PATCH_PERIODIC_NOTE
month string Optional month for dated periodic note endpoint. Provide year, month, and day together.
only when action is GET_PERIODIC_NOTE or CREATE_OR_REPLACE_PERIODIC_NOTE or APPEND_PERIODIC_NOTE or PATCH_PERIODIC_NOTE
day string Optional day for dated periodic note endpoint. Provide year, month, and day together.
only when action is GET_PERIODIC_NOTE or CREATE_OR_REPLACE_PERIODIC_NOTE or APPEND_PERIODIC_NOTE or PATCH_PERIODIC_NOTE

7 further parameters are available on the node itself.

Every parameter above is read from the shipped obsidian-api node, so it cannot drift from the product.

Connect Obsidian in two minutes

  1. Download AGNT Community Core — free, local-first, no account needed to run.
  2. Connects to your local instance directly — no cloud account required, nothing leaves your machine.
  3. Drop the Obsidian node into a workflow or hand it to an agent — the first run produces a receipt you can read line by line.

Obsidian + AGNT — common questions

Does anything leave my machine?

Not for the vault itself. With a local model, the whole loop stays on your hardware.

Can agents create and link notes?

Yes — creating, updating and linking related notes as it goes.

How is Obsidian connected?

Directly to your local vault; there is no cloud account involved.

More knowledge integrations

Give AI a job. Get the proof.