clairefro / obsidian-chat-cbt-plugin

AI-powered journaling plugin for your Obsidian notes, inspired by cognitive behavioral therapy
https://obsidian.md/plugins?search=chatcbt
MIT License
173 stars 11 forks source link

ChatCBT

An AI-powered journaling assistant for Obsidian, inspired by cognitive behavioral therapy (CBT).

Install

Demo

ChatCBT is a journaling assistant that prods you to reframe negative thoughts and rewire your reactions to distressful situations (*disclaimer).

Start chatting in a note

chat-gif

Summarize your findings when you're ready

summary-gif

Features

You can keep your local conversations and affirmations as a diary, or even share them with a therapist.

Setup

To get started using ChatCBT, you need to configure an AI platform connection from the ChatCBT plugin settings menu.

image

You have two options:

OpenAI is recommended for conversation quality and speed, with the cavaet that it is a paid service, and that your messages are sent to OpenAI. See OpenAI's data privacy policy.

Choosing a model

ChatCBT defaults to the following models for each platform mode. You can manually override the model in the ChatCBT settings. See available OpenAI models (note that some are more costly than others) and Ollama models.

Platform Default model Cost Hosting Speed Quality
OpenAI (recommended) gpt-3.5-turbo Paid (cheap) Cloud Fast ⚡ Excellent
Ollama mistral Free Local (private) OK Great

OpenAI setup

OpenAI provides cloud based AI solutions, including the models that power ChatGPT.

While use of OpenAI costs money, it is cheap (as of Mar 2024). Chat sessions with ChatCBT cost less than a few cents.

To use OpenAI with ChatCBT:

  1. Create an OpenAI account
  2. Add a payment method to your account, and add a small credit (ex: $10 = roughly 500 ChatCBT sessions!)
  3. Generate an API Key here and copy it to your clipboard
  4. Set your OpenAI API Key in ChatCBT plugin settings
  5. Ensure "Ollama mode" is disabled in ChatCBT plugin settings

Treat your OpenAI API Keys like a password - do not share this publicly. For your safety, your OpenAI API key is encrypted when saving settings.

Note: With the OpenAI option enabled, your messages will be sent to OpenAI. See OpenAI's data privacy policy. To minimize chances of your messages being associated with you personally, I crafted the prompt to respond to a "fictional client" such that it looks like you are creating fake scenarios. As you can guess, this is not foolproof. Try to stick to your emotions, and avoid disclosing any sensitive personal info like real names of people or your home address.

If you prefer to use a different OpenAI model, you can specify in the plugin settings.

Ollama setup

Ollama is a client that allows you to easily run powerful open source LLM models locally on your machine for free.

Requires Ollama v0.1.24 or higher

System requirements

  1. download ollama (Get Ollama v0.1.24 or higher)
  2. download mistral model: in terminal, run ollama pull mistral
  3. Start local server: in terminal, run OLLAMA_ORIGINS="*" OLLAMA_HOST="0.0.0.0:11434" ollama serve
  4. Ensure "Ollama mode" is enabled in ChatCBT settings

This will start a local server that hosts your Ollama instance locally on your computer from port 11434. You can change the port if you like by editing the OLLAMA_HOST property in step 3 - just be sure to also update the Ollama URL in the ChatCBT plugin settings too. The OLLAMA_ORIGINS='*' allows Obsidian to talk to Ollama.

If you prefer to use a different Ollama model, you can specify in the plugin settings.

Usage

  1. Start a new note
  2. Type what's bothering you
  3. Run "Chat" from ChatCBT
  4. Chat with ChatGPT by adding your responses at the bottom of the file
  5. Keep chatting to start reframing your negative thoughts
  6. Once you are ready to sum up your conversation, run "Summarize" to create a table outlining your reframed thoughts

Running commands

You can run the "Chat" and "Summarize" commands from the left ribbon menu or the command pallette.

Ribbon menu

image

Command pallete (cmd + p > search "chat...")

image

Contributing

You can install and enable ChatCBT in developer mode via these steps:

  1. In Obsidian, make sure you have enabled Community Plugins
  2. In your terminal, navigate to the Obsidian vault (directory) on your computer where you'd like to use ChatCBT
  3. cd .obsidian
  4. cd plugins (if plugins directory doesn't exist, create one: mkdir plugins, then cd plugins)
  5. git clone git@github.com:clairefro/obsidian-chat-cbt-plugin.git
  6. Install dependences: npm i
  7. Run plugin npm run dev
  8. Navigate back to Obsidian settings, add ChatCBT plugin and enable it
  9. Follow setup instructions below

Disclaimer

ChatCBT is not a replacement for actual therapy or human interaction. Instead, ChatCBT should be thought of as a journaling assistant, similar to an interactive worksheet. It is a bot that responds with objective questions to your writing help you get out of your head and see your problems from other angles.

While the bot draws inspiration from general cognitive-behavioral therapy methods, it has not undergone review or approval by licensed therapists. Though I have personally found ChatCBT useful in managing negative thoughts, it's important to note that this bot was built by someone without domain expertise in pyschology. Also note that AI generates unpredictable responses. You are responsible for deciding whether or not this tool is useful for you. Conisder seeking help from a professional therapist.

You can see the prompts that the bot uses to generate responses here: chat and summarize.

I'm happy to hear about any issues you encounter with the bot in the Issues tab, or through a DM to @clairefroe on Twitter/X.