Seeking alpha testers for the Letta x Obsidian plugin

I am seeking alpha testers for the Letta x Obsidian plugin! Obsidian is a fairly popular note taking tool and personal knowledge manager.

I’ve been working on the plugin intermittently for the past few weeks. The idea is to start building something like Cursor for Obsidian, with all the power and bells and whistles you get from stateful Letta agents.

What currently exists:

  • A chat pane to talk to an agent.
  • An agent and project switcher – you can talk to any agent on your Letta server.
  • Clunky but functional sync from your Obsidian vault to Letta Filesystem, meaning your agent can open, close, grep, and semantic search across synced files
  • Should :trade_mark: support self-hosted servers, but need testers.
  • Memory block editing.
  • Agent configuration tools.

The plugin is very rough, but has enough basic functionality that I’d like to have people start finding more bugs, bad behavior, etc.

Check out the repository here.

Remember! Stateful agents need to be taught – they are not magic. Just because they have access to your notes and tools does not mean that they will give you all the magic answers you want.

Warning! THIS IS IN PROGRESS. DO NOT USE THIS PLUGIN ON OBSIDIAN NOTES YOU CANNOT AFFORD TO LOSE. I highly recommend you clone your vault to use as a sandbox.

Installation

The community plugin listing process for Obsidian is surprisingly painful, so it is not widely available to install directly from Obsidian.

You can follow the Obsidian guide if you get lost.

Step 1: Navigate to your Obsidian plugin directory

You’ll need to find the location of your Obsidian vault on your machine. In my case, this is

cd /User/cameron/Documents/Vault/

The Obsidian plugin directory is in .obsidian/plugins:

cd .obsidian/plugins

Step 2: clone the Letta plugin repo into your Obsidian plugin folder

git clone https://github.com/letta-ai/letta-obsidian
cd letta-obsidian

Step 3: Build the plugin

npm install
npm build # for building once
# npm run dev # if you are modifying the plugin

Step 4: Enable the Letta plugin

  1. Open the Obsidian settings
  2. Click Community Plugins
  3. Enable community plugins
  4. Toggle the Letta plugin on

Step 5: Configure the plugin

Click the gear icon next to the Letta plugin name to configure it:

Paste in your API key, server base URL, and optional agent ID/project ID.

Usage

Starting the plugin gets you a “not connected” modal:

Connecting

If you click “Connect to Letta”, you’ll be asked to choose an agent if you have not already set one manually in the plugin settings. You can create a new one, or select any from your project.

Selecting an agent:

You can pick any agent, but if you know which one you want it’s probably easiest to just paste the agent ID into the plugin settings:

Once you’re connected, you should see something like this:

Folder setup

The Obsidian plugin uses Letta Filesystem to sync files to your agent. This requires two things:

  1. The existence of a folder on your server
  2. That folder being “attached” to an agent

You can set the name of the folder you want to use in the plugin settings:

If this folder does not exist, the plugin (should) ask you if you want to create one.

When an agent is selected, the plugin will check if the folder is currently attached to the agent. If not, it will ask if you would like to attach it:

Attaching a folder will give your agents special tools it can use to look at your Obsidian notes:

  • open_file to expand the file contents into its context window
  • grep_file to do exact text match
  • search_file for semantic search across chunks

You can work on prompting your agent to help it understand how to use these tools.

Syncing

For files to be visible to the agent, they must be synced to your folder. You can do this with one of Letta’s custom Obsidian actions. Open the command pallet (Command + P on mac, Ctrl + Shift + P elsewhere I believe) and choose “Letta: Sync Current File” to upload the currently viewed file:

You can confirm it has been uploaded in the ADE:

There are options to sync your entire vault, but I do not recommend this! Letta Filesystem is not designed for hundreds or thousands of files, it is designed for <100 complex, high quality documents. You should sync small numbers of files, and deliberately.

I recommend enabling “focus mode”, which will attempt to sync the current file. It will also force the current file open in the agent’s context window while forcing all other files closed, requiring the agent to actively view other files. It looks at the same thing you do in focus mode.

I am actively working on alternative approaches to support knowledge management for very large vaults.

Agent chat

The primary use for the plugin is to talk to your agent. Letta is essentially a general purpose connector for hooking agents up to whatever you want, and this Obsidian plugin simply exposes all of your existing agents to a new interface.

This is basically the same as what you get in the ADE, but with a different frontend (you can also open the ADE using the button on the chat pane header).

If you have any files in your folder, you can ask your agent about them:

(the UI needs work)

Your agent is the same in Obsidian as it is elsewhere, so it can access all of its tools. Here, I asked my agent to search for related information using web_search (you can manage agent tools in the ADE):

Tool use calls and tool use results are expandable in case you want to examine exactly what your agent did:

Model switching

There’s a hideous model switcher available underneath the chat bar in case you want to quickly toggle between models:

Which will give you this modal:

Memory editing

There’s a “memory editing” tab on the top:

This will let you create, detach, delete, and modify any of the agent’s current memory blocks:

The “manage” button will also let you search blocks by labels in case you’ve detached a block and want to re-attach it:

Agent configuration

You can modify your agent’s configuration by pressing “Config” next to the agent name:

You can set agent name, description, system prompt, and tags.

Agent switching

Select a new project + agent by pressing “Agent” in the top:

Let’s choose my “Writing Assistance” project:

Now I can chat with my solarpunk writer agent:

Settings

You can change various settings for the plugin in the plugin page:

Connection & Authentication

  • Letta API Key - Your API key for authentication (sk-let-…)
  • Letta Base URL - Base URL for Letta API (defaults to https://api.letta.com)
  • Project ID - Current project identifier (auto-detected from agent selection)
  • Agent ID - Specific agent to use with your vault

Sync & File Management

  • Source Name - Name for the Letta source containing your vault
  • Auto Sync - Automatically sync file changes to Letta
  • Auto-Connect on Startup - Connect to Letta when Obsidian starts
  • Sync on Startup - Sync vault after connecting (requires Auto-Connect)

Chat & Interface

  • Show Reasoning Messages - Display AI reasoning in chat (for debugging)
  • Enable Streaming - Use streaming API for real-time responses
  • Focus Mode - Only open currently active file in agent context

Security & Permissions

  • Ask Before Creating Folders - Confirm before creating Letta folders
  • Ask Before Attaching Folders - Confirm before giving agents folder access
  • Reset Consent Preferences - Reset to always ask permission

Actions

  • Connect to Letta - Test connection and setup agent
  • Sync Vault - Manually sync all files to Letta
  • Delete & Recreate Source - Fresh start (removes all synced files)

Give it a shot

That’s about all I got for now. Please give it a shot!

Send feedback on:

cloning the repo now!

I JUST installed Letta like, 2 days ago, and just exported 2 years of ChatGPT chat history, used Nexus-AI-Importer to import it into Obsidian and now… i found this 4 days after you posted it! I am self-hosting, and can restore the entire archive from a .zip in minutes if needed. I will absolutely test and provide feedback on this!

THANKS CAMERON!

1 Like

Oh that’s so lovely to hear! I’m glad you’re interested in it. Give it a shot and let me know what features you want. I started working on allowing the agent to propose new notes, but open to suggestions.

SHUT UP and take my money. I been looking for something like this but can’t code for my life. I will gladly test this. I been using something like this GitHub - logancyang/obsidian-copilot: THE Copilot in Obsidian but its limited by the lack of custom tools and memory features

1 Like

This is awesome! Been working on something similar but specifically for academic research using Letta as the agentic memory system definitely will try this

1 Like

What kind of features are you hoping for?