We are all used to interacting with Large Language Models (LLMs) through traditional chat interfaces.
Let me introduce an alternative: a canvas-like UI.

As you can see in the screenshot above, you can type prompts into Input cards and trigger LLM responses in Generate cards. This example graph shows two separate chat branches:
User:
What is LLM?
User:
Explain to a 5-year-old
Model:
Okay! 😊 LLM stands for "Large Language Model." That's a big computer brain that has read lots and lots of books, stories, and words, kind of like how you read books to learn new things.
User:
What is LLM?
User:
Respond with a joke
Model:
Why did the LLM cross the road? To get to the other side… and then write a 5,000-word essay about its motivations for doing so, citing every philosopher who ever pondered the nature of crossing roads and incorporating a sonnet about the existential dread of sidewalks.
As you can see, Canvas LLM provides a visual, non-linear way to interact with LLMs using branching conversations. This is especially useful for complex research projects, where navigating through a traditional chat UI becomes inefficient and overwhelming.
Node for basic text prompts.
Node for file attachment.
Currently supported file types: .md, .canvas, .docx, .fountain.
Embedded browser to extract and use web content in your prompt flow.
Node to actually call LLM.
You can choose different model for each node.
You'll need your own API keys to use them. But don't worry — some providers, like Google, OpenRouter and SambaNova, offer free models.
Supported providers:
Alibaba, Anthropic, DeepSeek, Google, Groq, Ollama, OpenAI, OpenRouter, SambaNova, xAI.
Use {{ input }} placeholders in Text input and File input nodes to create dynamic input handles.
Example of use File input node and Template mode:

Settings → Community Plugins → Browse."Canvas LLM".main.js, styles.css, manifest.json).vault/.obsidian/plugins/canvas-llm.Settings → Community Plugins → Canvas LLM.Canvas LLM is powered by Svelte Flow from xyflow.
This project is licensed under the GPL-3.0 license - see the LICENSE file for details.