Skip to content

About

A self-hosted dashboard and organizer for Excalidraw with multi-user collaboration and scoped sharing.

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

333 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExcaliDash

Self-hosted Excalidraw workspaces with collections, real-time collaboration, sharing, history, backups, and local or OpenID Connect authentication.

ExcaliDash dashboard

Self-host Excalidraw with Docker Compose, or read the documentation at excalidash.xyz.

Quick start

git clone https://github.com/ZimengXiong/ExcaliDash.git
cd ExcaliDash
docker compose -f docker-compose.prod.yml up -d

Open http://localhost:6767. Configuration and deployment guidance live in the documentation.

Additions in this fork

Pinned comments on drawings

Drop a comment pin anywhere on a canvas, reply in a thread, and resolve it when it is handled. Pins stay anchored to their spot while you pan and zoom, appear live for everyone in the drawing, and are open to anyone who can view it — including share-link recipients. Drag a pin to re-anchor it if the drawing moved on underneath it. The drawing's owner can moderate any thread; everyone else can remove and move their own comments.

Scroll-to-zoom preference

The canvas uses Excalidraw's wheel behaviour (wheel pans, Cmd/Ctrl+wheel zooms) by default. Turn on Settings → Scroll wheel zooms the canvas to make a plain wheel zoom instead; the choice is stored per user.

MCP server

ExcaliDash serves a remote MCP endpoint at <your ExcaliDash URL>/mcp (Streamable HTTP). It lets AI assistants store .excalidraw files as drawings, optionally in a collection, read drawings back, and replace or edit existing ones.

Claude Desktop / claude.ai: add a custom connector with the URL https://excalidash.example.com/mcp (on Team/Enterprise plans an owner adds it once for everyone). Each person then clicks Connect, signs in to ExcaliDash, and approves access. Behind the scenes this creates a non-expiring API key named "Claude (OAuth)" for them; revoking it under Settings → API Keys disconnects Claude.

Claude Code or other clients: use the same OAuth flow, or pass an API key from Settings → API Keys directly:

claude mcp add --transport http excalidash https://excalidash.example.com/mcp \
  --header "Authorization: Bearer exd_..."

Either way, the tools can do exactly what the key's scopes allow. OAuth only accepts Claude's callback URLs and localhost (loopback) redirects.

Tool What it does
list_collections Collections you own or that are shared with you.
list_drawings Drawings, newest first; filter by collection and/or search.
get_drawing Read a drawing as compact elements (format: "summary", labels folded into their shapes) or full Excalidraw elements (format: "file"); paged with offset/limit.
add_drawing Create a drawing from the file's JSON (content), with optional name, collection and createCollectionIfMissing.
replace_drawing Overwrite a drawing's scene, found by drawingId or exact name (+ optional collection); optional rename.
upsert_elements Add or update elements by id and delete others (deleteIds), leaving the rest of the drawing untouched.

collection accepts an id or a name, and drawingId an id or the drawing's URL. Replacing keeps the drawing's id, link, collection and sharing, and editors that have it open reload; upsert_elements does the same. To upload a drawing too large for one tool call, create it with the first batch of elements and send the rest through upsert_elements. Thumbnails are regenerated by the dashboard. The server is remote, so it cannot read files on your machine; the assistant sends the file contents. Code: backend/src/mcp/.

ExcaliDash is licensed under the GNU Lesser General Public License v3.0.

About

A self-hosted dashboard and organizer for Excalidraw with multi-user collaboration and scoped sharing.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages