Transform your Obsidian canvas into an intelligent workspace with AI-powered blocks that can process, analyze, and generate content.
- Text Summarizer: Summarize long texts into concise bullet points or paragraphs
- Quiz Generator: Create quiz questions from educational content
- AI Grader: Grade essays and assignments with detailed feedback
- Translator: Translate text between different languages
- Clarification Tool: Ask AI to clarify any selected text -. Custom Prompt: Write any prompt and run it against connected text, with reusable saved prompts
- Seamlessly integrates with Obsidian's native canvas
- All data stored directly in canvas JSON files
- Portable and shareable workflows
- Visual connections between input and output
- Each block type has customizable settings
- Easy-to-use configuration panels
- Support for different AI models (GPT, Claude)
- Extensible block system for community contributions
- Download the plugin files to your Obsidian plugins directory
- Enable the plugin in Obsidian's Community Plugins settings
- Configure your AI API keys in the plugin settings
- Open Obsidian Settings
- Go to Community Plugins → Living Canvas
- Add your API keys:
- OpenAI API Key: For GPT models (gpt-3.5-turbo, gpt-4)
- Anthropic API Key: For Claude models (claude-3-sonnet, claude-3-haiku)
- Select your default AI model
- Enable debug mode if needed for troubleshooting
- OpenAI: Visit OpenAI API to get your key
- Anthropic: Visit Anthropic Console to get your key
- Open a canvas in Obsidian
- Use the command palette (
Ctrl/Cmd + P) - Search for "Living Canvas: Insert Block"
- Select the block type you want to insert
- The block will appear on your canvas
- Click a Living Canvas block (double‑click also opens configuration)
- Use the command palette to "Configure Selected Block"
- The command is always available. If nothing is selected, you’ll be prompted to choose a block from the current canvas.
- Adjust the settings in the configuration panel
- Save your changes
- Connect text nodes to your Living Canvas block (draw edges between them)
- Use the command palette to "Run Selected Block"
- The command is always available. If nothing is selected, you’ll be prompted to choose a block from the current canvas.
- The AI will process the connected text and create an output node
- Select text in any editor
- Right-click and choose "Ask AI to Clarify"
- Enter your question in the modal
- The AI will provide an answer in a new canvas node
- "Living Canvas: Insert Block" — insert any available block
- "Living Canvas: Configure Selected Block" — configure the chosen block (prompts to pick if none is selected)
- "Living Canvas: Run Selected Block" — execute the chosen block (prompts to pick if none is selected)
- Right‑click on selected editor text → "Ask AI to Clarify" — answer appears on the canvas
- Purpose: Summarize long texts into concise formats
- Settings:
- System prompt customization
- Tone selection (concise, academic, casual, technical)
- Output format (bullet points, paragraph, numbered list)
- Maximum length control
- Reference citation options
- Purpose: Create quiz questions from educational content
- Settings:
- Question type (multiple choice, true/false, short answer, mixed)
- Number of questions
- Difficulty level (easy, medium, hard)
- Purpose: Grade essays and assignments with detailed feedback
- Settings:
- Grading criteria specification
- Grade scale (0-100 points, letter grades, detailed rubric)
- Improvement suggestions toggle
- Purpose: Translate text between different languages
- Settings:
- Target language selection
- Formatting preservation options
- Purpose: Run any prompt you define against the connected text
- How it works:
- In the prompt field, use
{{ input }}where the connected text should be inserted. - Optionally set a temperature value to hint creativity.
- Save prompts for reuse from the configuration panel; saved prompts can be applied or deleted.
- In the prompt field, use
- Settings:
- Prompt (textarea)
- Temperature (number, optional)
The plugin follows a modular architecture:
- BlockManager: Discovers and manages block definitions
- CanvasManager: Handles canvas file operations
- UIManager: Manages user interface and commands
- ActionHandler: Orchestrates block execution
- BlockExecutor: Handles AI API calls
You can create custom blocks by adding them to the blocks/ directory:
- Create a new directory:
blocks/community/my-block/ - Add
block.jsonwith block metadata and settings - Add
executor.jswith the execution logic - Reload blocks using the plugin settings
{
"id": "community/my-block",
"name": "My Custom Block",
"description": "Description of what this block does",
"author": "Your Name",
"version": "1.0.0",
"category": "community",
"settings": [
{
"name": "mySetting",
"description": "Description of the setting",
"type": "text",
"required": true,
"default": "default value"
}
]
}async function execute(inputText, config) {
const { mySetting } = config;
// Construct your prompt
const prompt = `Process this text with setting: ${mySetting}\n\nText: ${inputText}`;
// Return the prompt - the BlockExecutor will handle the AI API call
return prompt;
}
module.exports = { execute };-
"No canvas file is currently open"
- Make sure you have a canvas file open in Obsidian
- The plugin only works with canvas files (.canvas)
-
"API key not configured"
- Add your API keys in the plugin settings
- Make sure the keys are valid and have sufficient credits
-
"Block execution failed"
- Check your internet connection
- Verify your API keys are correct
- Enable debug mode to see detailed error messages
-
"No input text found"
- Connect text nodes to your Living Canvas block
- Make sure the text nodes contain actual text content
-
"Commands not visible"
- The Run/Configure commands always show in the palette; if nothing is selected you’ll be prompted to choose a block from the current canvas.
Enable debug mode in the plugin settings to see detailed logging in the browser console. This helps troubleshoot issues with block execution and API calls.
We welcome contributions! Here's how you can help:
- Report Issues: Use GitHub Issues to report bugs or request features
- Create Blocks: Develop new block types for the community
- Improve Documentation: Help improve this README and other docs
- Code Contributions: Submit pull requests for bug fixes and features
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub Issues: Report bugs and request features
- Discussions: Join community discussions about the plugin
- Documentation: Check the wiki for detailed guides
- Added Custom Prompt block with saved prompts
- Added right‑click "Ask AI to Clarify" on selected text
- Run/Configure commands always visible and prompt for target if none selected
- Initial release
- Core block types (Summarizer, Quiz Generator, AI Grader, Translator)
- Canvas integration
- AI API support (OpenAI, Anthropic)
- Configuration system
- Text clarification feature
Happy Canvas Building! 🎨✨