# Canvas Chat

Untitled Session
Context:
0 / 128k
0
👆 Double-click to zoom out and see all nodes
📎 Drop file here

### Tags

Responding to 0 node(s)

## Settings

### API Keys

Keys are stored locally in your browser and sent directly to providers.

OpenAI API Key
Anthropic API Key
Google AI API Key
Groq API Key
GitHub Models PAT PAT with `models:read` scope. Create token
GitHub Copilot authentication Not authenticated
Uses device flow and stores tokens in this browser. Models look like `github_copilot/gpt-4`.
Exa API Key (for web search) Use `/search query` to search the web. Get API key

### LLM Proxy

Configure a custom base URL to use your own LLM proxy (e.g., LiteLLM proxy, OpenRouter).

Base URL (optional) Leave empty to use default provider endpoints. Supports OpenAI-compatible APIs.

### Custom Models

Add LiteLLM-compatible models for self-hosted or proxy endpoints.

Model ID * Format: provider/model-name (e.g., openai/my-model, ollama_chat/llama3.1)
Display Name Optional. Defaults to model ID if not specified.
Context Window
Base URL

### Flashcard Settings

Configure how flashcard answers are graded during review.

Grading Strictness
Controls how strictly the AI grades your flashcard answers

## GitHub Copilot Authentication

Open GitHub and enter the code to link your Copilot subscription.

Verification URL
-
Device code

## Sessions

🔍 `esc`
Type to search through your nodes

## Help

### Getting Started

- Type a message and press `Enter` to start a conversation
- Click on a node to select it, then type to reply
- `Ctrl`/`Cmd` + click to select multiple nodes
- Drag the canvas to pan, scroll to zoom
- Double-click empty space to fit all nodes in view

### Keyboard Shortcuts

`Ctrl`/`Cmd` + `K` | Search nodes
`Ctrl`/`Cmd` + `Z` | Undo
`Ctrl`/`Cmd` + `Shift` + `Z` | Redo
`Delete` / `Backspace` | Delete selected nodes
`R` | Focus reply input (when node selected)
`C` | Copy node content (when node selected)
`F` | Fit node to viewport (when node selected)
`-` | Collapse children (when node selected)
`=` | Expand children (when node selected)
`Z` | Zoom to selection (when node(s) selected)
`Shift` + `Z` | Zoom out to fit all content
`↑` / `↓` or `j` / `k` | Navigate to parent/child nodes
`Escape` | Clear selection / Close dialogs
`Enter` | Send message
`Shift` + `Enter` | New line in message
`?` | Show this help

### Slash Commands

`/note` text or URL | Create a note (supports PDF URLs)
`/search` query | Search the web with Exa AI
`/research` topic | Deep research with multiple sources
`/matrix` context | Create a comparison matrix
`/committee` question | Consult multiple LLMs and synthesize
`/factcheck` claims | Verify claims with web search
`/code` | Create Python code node (select CSV first)

### Tips

- Branching: Select text in a node to create a branch from that specific point
- Semantic zoom: Zoom out to see node summaries instead of full content
- Collapse nodes: Click the − button or press `-` to hide a node's children and reduce clutter
- Context: The context budget bar shows how much of the model's context window is used
- Tags: Use the 🏷️ button to organize nodes with colored tags
- Stop generation: Click "⏹ Stop" on an AI response to stop and optionally continue later
- PDF import: Click 📎 to upload a PDF, or drag & drop onto the canvas

## Edit Content

Markdown
Preview

## Edit Title

## Edit Code

Python Code
Preview

## Add Poll Option

## Reset Poll Votes

Are you sure you want to reset all votes for this poll? This action cannot be undone.