Manage Elenweave project-scoped boards and assets through the local REST API and build rich visual explanations. Use when asked to create/reuse projects, create or update boards from node/edge data, append nodes and edges, upload or reference media assets, inspect API responses, explain code visually, summarize commits as diagrams, or present implementation plans as explorable boards.
Resources
2Install
npx skillscat add the-code-rider/elenweave-skill/elenweave Install via the SkillsCat registry.
Elenweave
Overview
Use this skill to perform project-scoped board and asset operations against the local Elenweave server (server/index.js).
URL Resolution
Resolve the API base URL in this order:
- Use an explicit base URL provided by the user or task context.
- Otherwise use
ELENWEAVE_BASE_URLfrom environment. - Otherwise default to
http://127.0.0.1:8787.
When reporting commands, include the resolved base URL explicitly.
Quick Start
- Ensure the server is running (
npm run server). - Resolve base URL using the URL Resolution order above.
- Ensure a project exists for the current repo and broad scenario (see Project Strategy).
- Send JSON with
Content-Type: application/json. - Load
references/endpoints.mdfor request and response examples. - Load
references/rich-diagram.mdwhen building explanatory diagram boards.
Endpoints
GET /api/projectsPOST /api/projectsGET /api/projects/:projectIdPATCH /api/projects/:projectIdDELETE /api/projects/:projectIdGET /api/projects/:projectId/boardsPOST /api/projects/:projectId/boardsGET /api/projects/:projectId/boards/:boardIdPATCH /api/projects/:projectId/boards/:boardIdPUT /api/projects/:projectId/boards/:boardIdDELETE /api/projects/:projectId/boards/:boardIdPOST /api/projects/:projectId/boards/:boardId/nodesPOST /api/projects/:projectId/assetsGET /api/projects/:projectId/assets/:assetIdDELETE /api/projects/:projectId/assets/:assetId
Project Strategy (Repo + Scenario)
Create or reuse one project per repository per broad scenario.
- Determine repo key from current workspace folder name unless user explicitly provides one.
- Determine scenario key from user intent (examples:
architecture,debugging,onboarding,integration,release-plan). - Use project name pattern:
<repoKey> - <Scenario Title>. - Call
GET /api/projectsand match by case-insensitive name first. - If missing, create via
POST /api/projectswith{ "name": "<repoKey> - <Scenario Title>" }. - Create multiple boards inside that project for focused subtopics.
Workflows
Ensure or create project
- Call
GET /api/projects. - Reuse matching project or create one with
POST /api/projects. - Return
project.id,project.name, and timestamps.
Create a board with data
- Create board:
POST /api/projects/:projectId/boardswith{ "name": "Board Name" }. - Optionally include initial graph payload (
nodes,edges,nodeOrder,meta,notifications) when creating. - For full deterministic update, use
PUT /api/projects/:projectId/boards/:boardId.
Update an existing board
- Rename only:
PATCH /api/projects/:projectId/boards/:boardIdwith{ "name": "New Name" }. - Replace board state:
PUT /api/projects/:projectId/boards/:boardIdwith full payload. - Append incrementally:
POST /api/projects/:projectId/boards/:boardId/nodeswithnodesandedgesarrays.
Attach media assets (server mode)
- Upload asset bytes with
POST /api/projects/:projectId/assetsusing{ filename, mimeType, base64, category? }. - Use returned
asset.id/asset.urlfor media node references. - Delete unused assets via
DELETE /api/projects/:projectId/assets/:assetIdwhen asked.
Rich Diagram Composition
Use component combinations to make explanations scannable, visual, and decision-ready.
Code explanation pattern
- Add one
html-textnode for intent or problem statement. - Add one
CodeSnippetnode for the concrete excerpt. - Add one
MermaidBlocknode to show flow/state at a glance. - Add one
MarkdownBlocknode for edge cases plus pros and cons. - Connect with directional edges: intent -> code -> diagram -> analysis.
Data-flow or logic sequence pattern
- Create one stage node per step left-to-right (
html-textorMarkdownBlock). - Use
MermaidBlockfor canonical sequence or branching behavior. - For stages that transform data, attach nearby
CodeSnippetnodes. - Use
SvgBlockwhen Mermaid cannot express custom infographic needs (legends, domain icons, custom callouts). - Use short edge labels (
input,transform,error,fallback,tradeoff).
Media-augmented pattern
- Use
ImageViewerfor architecture screenshots or diagrams when an external visual source adds context. - Place image beside the related stage and connect with edge label
reference.
Guardrails
- Expect
404(ProjectNotFoundorBoardNotFound) for unknown ids. - Expect
400(InvalidRequest) for invalid ids or malformed JSON bodies. - Expect
403(ReadOnlySeed) for mutating calls when seeded read-only mode is active. - Prefer
PUTwhen deterministic full-state updates are required. - Prefer
POST /nodeswhen only adding graph elements. PUT /api/projects/:projectId/boards/:boardIdaccepts either raw board payload or{ "board": { ... } }.- Keep node IDs unique and stable during append operations.
- For API-created media nodes, prefer server asset URLs (
/api/projects/:projectId/assets/:assetId) over browser-local blob URLs.