Cairn / Docs / AI Chat

AI Chat

A persistent side panel that gives your AI model direct access to your workspace. Read notes, create tasks, move cards, generate PRDs — all through natural conversation.

Opening the chat panel

Press ⌘/ on macOS or Ctrl+/ on Windows and Linux. The chat panel slides open on the right side of the window. It stays open across navigation — switching between Notes and Board views doesn't close it.

How the agentic loop works

When you send a message, Cairn sends your message and the conversation history to your configured AI endpoint. The model may respond with plain text, or it may issue tool calls — requests to perform actions inside your workspace.

Cairn executes each tool call, feeds the result back to the model, and repeats until the model produces a final text response with no pending tool calls. This is the agentic loop: the model can chain multiple actions to complete complex requests without needing you to prompt it at each step.

Example: "Move all urgent tasks to In Progress" — the model calls search_tasks to find urgent cards, then calls update_task_status for each one, then responds with a summary.

AI chat panel open alongside the board view
The AI chat panel open alongside the Board view, showing a conversation with tool call activity.

Live tool call activity feed

Every tool call is shown in real time in the chat panel as it executes. You see:

This makes the AI's behaviour transparent — you always know what it did and why.

Streaming responses

The AI streams its reply word-by-word as it's generated — you see the response building in real time rather than waiting for the full reply. A live cursor shows while tokens arrive. Tool calls still run before streaming begins.

Thread history

A History button in the chat header lists up to 15 recent threads per project, each titled from its first message. Select any thread to resume it. Threads can be renamed, deleted individually, or cleared in bulk. Deleting the active thread starts a fresh one automatically.

Supported endpoints

Any OpenAI-compatible API endpoint works. Configure your endpoint in Settings → AI & Chat.

Provider Endpoint URL API key required
OpenAI https://api.openai.com Yes
Groq https://api.groq.com/openai Yes
Together AI https://api.together.xyz Yes
Ollama (local) http://localhost:11434 No
LM Studio (local) http://localhost:1234 No
Any compatible proxy Your proxy URL Depends on proxy
Anthropic Claude

Anthropic's API is not natively OpenAI-compatible. Use a compatible proxy (e.g. LiteLLM) to connect Claude models to Cairn.

Model recommendation

For best tool-calling performance, use a model with strong function-calling support. Frontier models from OpenAI or Anthropic (via proxy) work well, as do locally fine-tuned coding models via Ollama.

What the AI can do

The AI has access to 42 tools inside the chat panel. Tools marked * are chat-only and not available via MCP.

Tool Description
get_active_context *Returns the active workspace and currently open project with column IDs
get_cairn_contextFull orientation: all workspaces, projects, column IDs, tool list, conventions
get_project_context_packSingle-call bundle: project metadata + pinned notes + open tasks + recent activity
resolve_projectFind a project by name (fuzzy) and return its ID and column IDs
get_project_summaryColumn breakdown, card counts, pinned notes, recent activity
list_recent_activityRecently created or updated notes and tasks
search_notesFull-text search across notes
get_noteFull markdown content, linked IDs, and metadata of a note by ID
list_notesList all notes in a project
create_noteCreate a markdown note
import_note_from_fileImport a local file as a note
ensure_noteIdempotent create-or-update by title — prevents duplicate notes
append_to_noteAppend content to a note without re-sending the full body
patch_noteSurgically replace a string inside a note
update_noteUpdate a note's title, content, or pinned state
move_noteMove a note to a different project
delete_notePermanently delete a note
search_tasksFull-text search across task cards
get_taskFull detail of a task card including linked notes
list_tasksList all tasks grouped by column
create_taskCreate a task card in a column
update_taskUpdate a task's title, description, priority, due date, or column
update_task_statusMove a single task to a different column
bulk_update_task_statusMove multiple tasks to the same column in one call
delete_taskPermanently delete a task card
link_note_to_taskBidirectionally link a note and a task card
create_dashboardCreate a live HTML dashboard in a project
update_dashboardUpdate an existing dashboard's title or HTML
get_idea_flowFull canvas graph — all nodes and edges — with note and task content resolved inline
create_idea_flow_nodeAdd a node to the Idea Flow canvas
update_idea_flow_nodeUpdate a node's data or position
delete_idea_flow_nodeRemove a node and all its connected edges
create_idea_flow_edgeConnect two nodes with an optional label
delete_idea_flow_edgeRemove a connection between two nodes
layout_idea_flowAuto-arrange all nodes in the canvas
get_knowledge_graphFull workspace relationship graph; scope by project, node type, or edge type
get_neighborsN-hop BFS traversal from any node (depth 1–3)
create_projectCreate a project with default board columns
update_projectUpdate a project's name, description, status, or priority
delete_projectPermanently delete a project and all its contents
generate_prd *Generate a structured PRD note from a plain-language description
spawn_tasks_from_note *Read a PRD note and create structured task cards on the board

Message controls

Context & conversation history

The chat panel maintains the full conversation history for the current thread. Threads persist across app restarts — you can close and reopen Cairn and resume any thread from the history list. If you want the AI to have specific context beyond the current thread, paste it into the chat or ask it to read a note.

Keyboard shortcuts