Skip to content

SilverBullet AI Plug

SilverBullet AI is a plug that integrates various LLMs (Large Language Models) into SilverBullet, the markdown-based note-taking tool. This integration allows users to perform a wide range of AI-related tasks directly within their notes.

What are LLMs?

LLMs, or Large Language Models, are advanced AI systems trained on vast amounts of text data. They can understand and generate human-like text, making them powerful tools for various language-related tasks.

Requirements

  • SilverBullet installation
  • Access to either a self-hosted or SaaS LLM such as:
    • Ollama
    • OpenAI (ChatGPT)
    • Google Gemini
    • Others (see Providers)

Development Status

SilverBullet AI is currently in early development. It may not work as expected. We encourage users to:

  • Report any issues encountered
  • Share feature ideas

You can do so through our Github Issues page, or the SilverBullet community discourse.

Getting Started

If you're new here, we recommend starting with:

  1. Quick Start
  2. AI Core Library

Warning

Please back up your notes before using this plug. It inserts and replaces text at certain points. We recommend using the git plug to keep your notes versioned automatically in a git repository.

Features

  • Summarize Note: Summarizes the content of a note or selected text.
  • Replace with Summary: Replaces the selected text with its summary.
  • Insert Summary: Inserts a summary of the selected text or note at the cursor position.
  • Call OpenAI with Note Context: Sends the note or selected text to OpenAI based on a user-defined prompt.
  • Interactive Chat: Have an interactive chat, utilizing the current note as the chat interface.
    • RAG (Retrieval Augmented Generation): Search local vector embeddings of all your notes for relevant context to your current chat query and provide it to the LLM.
  • Templated Prompts: Define custom notes as a templated prompt that can be rendered, sent to llm, and then inserted into the page.
  • Generate Tags for Note: Generates tags for the current note using AI. Custom rules can also be specified to steer towards better tags.
  • Generate and Insert Image using Dall-E: Generates an image based on a prompt and inserts it into the note.
  • Rename a note based on Note Context: Sends the note, including enriched data, to the LLM and asks for a new note title. Custom rules or examples can also be provided to generate better titles.
  • Generate vector embeddings: Chunks each page, generates vector embeddings of the text, and indexes those embeddings. No external database required.
  • Similarity search: Allows doing a similarity search based on indexed embeddings.
  • Note Summary generation and search: Experimental generates a summary of each note, then generates embeddings and indexes that summary to be searched using a similarity/semantic search.
  • FrontMatter generation: Experimental extracts useful information from a note’s context and generates frontmatter attributes for it.

Available commands

The list below are the commands available in this plugin.

  • AI: Call OpenAI with Note as context: Prompts the user for a custom prompt to send to the LLM. If the user has text selected, the selected text is used as the note content. If the user has no text selected, the entire note is used as the note content. The response is streamed to the cursor position.
  • AI: Chat on current page: Streams a conversation with the LLM, but uses the current page as a sort of chat history. New responses are always appended to the end of the page.
  • AI: Enhance Note: Enhances the current note by running the commands to generate tags for a note, and a new name.
  • AI: Execute AI Prompt from Custom Template: Prompts the user to select a template, renders that template, sends it to the LLM, and then inserts the result into the page. Valid templates must have a value for aiprompt.description in the frontmatter.
  • AI: Generate Note FrontMatter: Extracts important information from the current note and converts it to frontmatter attributes.
  • AI: Generate and insert image using DallE: Prompts the user for a custom prompt to send to DALL·E, then sends the prompt to DALL·E to generate an image. The resulting image is then uploaded to the space and inserted into the note with a caption.
  • AI: Generate tags for note: Asks the LLM to generate tags for the current note. Generated tags are added to the note's frontmatter.
  • AI: Insert Summary: Uses a built-in prompt to ask the LLM for a summary of either the entire note, or the selected text. Inserts the summary at the cursor's position.
  • AI: Search: Ask the user for a search query, and then navigate to the search results page. Search results are provided by calculating the cosine similarity between the query embedding and each indexed embedding.
  • AI: Select Embedding Model from Config: Prompts the user to select an embedding model from the configured models.
  • AI: Select Image Model from Config: Prompts the user to select an image model from the configured models.
  • AI: Select Text Model from Config: Prompts the user to select a text/llm model from the configured models.
  • AI: Stream response with selection or note as prompt: Streams a conversation with the LLM, inserting the responses at the cursor position as it is received.
  • AI: Suggest Page Name: Ask the LLM to provide a name for the current note, allow the user to choose from the suggestions, and then rename the page.
  • AI: Summarize Note and open summary: Uses a built-in prompt to ask the LLM for a summary of either the entire note, or the selected text. Opens the resulting summary in a temporary right pane.
  • AI: Test Embedding Generation: Function to test generating embeddings. Just puts the result in the current note, but isn't too helpful for most cases.