Token导航 LogoToken导航

Agent Skill · 开发

ascii-excalidraw(ascii excalidraw 开发)

ascii-excalidraw 用于补充开发相关能力,适合在 OpenClaw 中需要让 Agent 承接开发相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

ascii-excalidraw 是开发类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为需要联网;许可证为 MIT-0,第三方扫描已通过,按安装量在开发类的 21,746 个 Skill 里排第 15,006。

总安装 636周安装 26GitHub Stars 公开资料未说明下载 206核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:ascii-excalidraw(ascii excalidraw 开发)
来源仓库:https://github.com/zhangyanbo2007/ascii-excalidraw
安装命令:
openclaw skills install ascii-excalidraw
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install ascii-excalidraw

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

将 ASCII 艺术图转换为手绘 Excalidraw JSON 文件。首先分析结构,然后逐个模块增量生成。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install ascii-excalidraw;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

ascii-excalidraw 怎么安装?

在终端执行 openclaw skills install ascii-excalidraw。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

ascii-excalidraw 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

ascii-excalidraw 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

ascii-excalidraw 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

ascii-excalidraw 用的人多吗?

公开数据是累计安装 636 次,近一周安装 26 次,下载 206 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

ascii-excalidraw 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
ascii-excalidraw

ascii excalidraw 开发 · 本页

636—需要联网MIT-0通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
ascii-excalidraw
description
Convert ASCII art diagrams to hand-drawn Excalidraw JSON files. Analyzes structure first, then generates incrementally module-by-module.
version
1.0.0
author
Claude Code
license
MIT
dependencies
[]
metadata
hermes
tags
[ASCII, Excalidraw, Diagrams, Converter, Architecture, Flowchart, Visualization]
related_skills
[excalidraw]

<details> <summary>简体中文</summary>

将 ASCII 字符画转换为精美的手绘风格 Excalidraw JSON 文件。该技能专门用于解析 ASCII 图并生成结构化的 .excalidraw 文件,可在 excalidraw.com 打开。核心工作流:先分析结构 → 逐模块生成 JSON → 合并输出。

</details>

Examples / 示例

Example 1: System Architecture / 系统架构

Input:

┌────────────┐      ┌──────────────┐      ┌──────────┐
│   Web App  │─────▶│  API Server  │─────▶│ Database │
└────────────┘      └──────────────┘      ──────────┘
                           │
                     ┌─────▼─────┐
                     │   Cache   │
                     └───────────┘

View in Excalidraw: Open in Excalidraw

Example 2: PPO Training Loop / PPO 训练循环

Input:

────────────┐    ┌────────────┐    ┌────────────┐
│  Collect   │───▶│  Compute   │───▶│   Update   │
│  Traject.  │    │ Advantage  │    │  Policy    │
└────────────┘    ────────────┘    └─────┬──────┘
         ▲                                │
         │         ┌────────────         │
         ─────────│  Evaluate  │◀────────
                   │  & Check   │
                   └────────────┘

View in Excalidraw: Open in Excalidraw


ASCII to Excalidraw Converter

Convert ASCII art diagrams into polished, hand-drawn style Excalidraw JSON files. This skill specializes in parsing ASCII diagrams and producing structured .excalidraw files that can be opened at excalidraw.com.

When to Use

The user provides an ASCII diagram (boxes, arrows, text) and wants a visual Excalidraw file. Typical inputs:

┌────────────┐      ┌──────────────┐
│   Web App  │─────▶│  API Server  │
└────────────┘      └──────────────┘
                           │
                     ┌─────▼─────┐
                     │ Database  │
                     └───────────┘

Conversion Workflow

CRITICAL: Do NOT generate the entire JSON in one shot. Follow this multi-step process to reduce errors.

Step 1: Analyze + Quantitative Layout Planning

Parse the full ASCII diagram and produce a structured analysis plus a quantitative layout plan before generating any JSON.

1a. Qualitative Analysis
  1. Detect all boxes: Find +------+, ┌──┐ corner patterns. Record positions, sizes, and text content.
  2. Detect all arrows: Find --->, -->, ▼, ▲, ◄, ►, │ patterns. Record source, target, direction, label text.
  3. Detect containers: Identify groups of elements enclosed by larger boxes or indentation patterns.
  4. Detect text labels: Titles, standalone text, annotations.
  5. Infer layers: Determine if the diagram has horizontal layers (top-to-bottom) or vertical columns.
  6. Assign colors: Use keyword matching on box labels (see Color Assignment below).
1b. Text Width Estimation (CRITICAL for proportion)

Before computing any coordinates, estimate the rendered width of every text element:

Text TypeApprox char width (px)Example
Shape label (fontFamily 5, fontSize 16-18)~9-10px per char"API Server" (10 chars) → ~95px
Body text / code snippet (fontSize 14-15)~8-9px per char"returns[i] = ones_like(kl[i])" → ~250px
Annotation badge (fontSize 12-14)~7-8px per char"标量奖励广播" → ~75px
Title (fontSize 24-28)~14-16px per char"System Architecture" → ~280px

For monospace/code text, add a 10% buffer. For CJK text, use ~12-14px per char.

1c. Compute Layout Dimensions

Using the text widths from 1b, compute:

  1. Shape widths: max(text_width + 30px padding, min_width). Min widths: 140x70 (single-line), 180x90 (multi-line).
  2. Row height: max(shape_height, line1_text_height, line2_text_height) + 40px buffer.
  3. Total canvas width: left_margin + shape_column_width + gap + description_column_width + right_margin.
  4. Total canvas height: top_margin + num_rows * row_height + bottom_margin.
  5. Background zone: extends 80px beyond the bounding box of all content.
1d. Proportion Check

Before proceeding to Step 2, verify:

  • Width/Height ratio: if ratio > 3 or < 0.5, consider reflowing (e.g., swap horizontal layout for vertical, or split wide rows).
  • No overflow: ensure description text does not exceed its allocated width — if it does, either increase canvas width or split into multiple lines.
  • No overlap: verify that shape_width + gap < column_width for all columns.

If proportion issues are detected, recompute the layout (adjust canvas width, reduce font sizes, or increase spacing) before generating JSON.

1e. Produce Module Plan

Output a structured plan:

Diagram Analysis:
- Title: "compute_advantages_and_returns() dispatch"
- Layout: left-to-right (method column + description column), 7 rows
- Canvas: ~830px wide × ~750px tall (estimated)
- Proportion: width/height = 1.1 ✓

Module 1 (background): Outer zone [gray]
Module 2 (header): Title box [bold]
Module 3 (connector): Vertical dispatch line
Module 4 (branches): 7 horizontal arrows
Module 5 (methods): 7 method boxes [varied colors]
Module 6 (descriptions): 7 description lines + 7 annotation badges

Method list (name → color, estimated shape width):
  GRPO → blue (#1971c2), ~120px
  GSPO → teal (#087f93), ~120px
  PPO → violet (#7048e8), ~110px
  step_wise → green (#2f9e44), ~160px
  reinforce_plus_plus → orange (#f08c00), ~220px
  reinforce_plus_plus_baseline → pink (#e64980), ~260px
  on_policy_distillation → teal (#087f5b), ~220px

Step 2: Generate JSON Module by Module

Generate Excalidraw JSON for each identified module separately. Each module output is a JSON array of element objects.

Module ordering: Follow drawing order — background zones first, then layers top-to-bottom, then connections.

For each module:

  1. Emit background zone rectangles (if any) with opacity: 35 and fillStyle: "solid"
  2. Emit shapes with their bound text elements
  3. Emit arrows and their label text
  4. Use semantic colors (see Color Assignment below)
  5. Apply sketch style (roughness: 1-2, fillStyle: "hachure", fontFamily: 5)

Between modules, maintain consistent coordinate space. Track cursor positions so subsequent modules align properly.

Write each module to a temporary JSON file:

/tmp/excalidraw_modules/module_1.json
/tmp/excalidraw_modules/module_2.json
...

Step 3: Merge All Modules

Use the helper script to assemble all module arrays into the final .excalidraw envelope:

python ~/.skills/ascii-excalidraw/scripts/merge_modules.py \
  -o diagram.excalidraw \
  /tmp/excalidraw_modules/module_1.json \
  /tmp/excalidraw_modules/module_2.json \
  ...

The script handles ID deduplication, binding reference updates, and produces the standard .excalidraw format.


ASCII Pattern Mapping

ASCII PatternExcalidraw TypeStyle
+------+ or ┌──┐ cornersrectangle with roundness: { "type": 3 }Standard components
( oval ) or wavy bordersellipseDatabases, cloud services
< text > or ◇diamondDecision points, gates
═══ double linesrectangle with strokeWidth: 3Emphasized nodes
- - - dashed bordersshape with strokeStyle: "dashed"Optional/proxy components
---> or ──▶arrow with endArrowhead: "arrow"Directional flow
--- plain linearrow with endArrowhead: nullUndirected connection
- -> dashed arrowarrow with strokeStyle: "dashed"Optional/async flow
│ vertical linearrow with vertical pointsVertical flow
Large box enclosing othersrectangle with opacity: 35Background zone
=== Title ===text with fontSize: 24+Section header
Text inside a boxBound text (containerId + boundElements)Shape label
Text above/below arrowBound text on arrow (containerId)Arrow label

Color Assignment

Automatically assign colors based on keyword detection in box label text:

KeywordsFillStrokeUse
web, app, frontend, ui, client, browser, vue, react#a5d8ff#1971c2Frontend/UI
api, server, backend, service, proxy, gateway, nginx#d0bfff#7048e8Backend/Services
db, database, postgres, mysql, redis, mongo, cache, data#b2f2bb#2f9e44Data/Storage
external, third-party, stripe, aws, s3, cdn, webhook#ffc9c9#e03131External services
queue, rabbitmq, kafka, sqs, event, stream, pubsub#fff3bf#f08c00Message/Queue
ai, ml, model, llm, embed, vector, rag, prompt#eebefa#9c36b5AI/ML
auth, login, oauth, token, jwt, permission#c3fae8#087f5bAuthentication
log, monitor, metric, alert, trace, observ#fcc2d7#e64980Monitoring
(no match)#f8f9fa#495057General purpose

Rules:

  • Background zones: same color family with opacity: 35, fillStyle: "solid"
  • Arrow strokeColor: match source shape's stroke color, or #1e1e1e for neutral
  • Arrow labels: same color as the arrow stroke

Sketch Style Rules

Apply these properties to ALL elements:

  • roughness: 1 (default sketch) or 2 (more sketchy)
  • fillStyle: "hachure" for filled shapes; "solid" for background zones
  • fontFamily: 5 (Excalifont) for all text — this is the key to the sketch look
  • strokeWidth: 2 (default), 3 for emphasized elements
  • strokeStyle: "solid" (default), "dashed" for optional/async connections

Sizing and Layout

Font Sizes

  • Titles: 24-28px
  • Shape labels: 16-20px
  • Arrow labels: 14-16px
  • Annotations: 14px minimum — NEVER below 14px

Text Width Estimation

Estimate rendered widths before computing coordinates (see Step 1b):

Text TypeApprox char width (px)Notes
Shape label (fontFamily 5, fontSize 16-18)~9-10px"API Server" → ~95px
Body text / code (fontSize 14-15)~8-9pxAdd 10% for code/monospace
Annotation badge (fontSize 12-14)~7-8px
Title (fontSize 24-28)~14-16px
CJK characters~12-14pxPer character

Element Sizes

  • Shape width: max(text_width + 30px padding, min_width). Min widths: 140x70 (single-line), 180x90 (multi-line).
  • Ellipses: minimum 120x120
  • Diamonds: minimum 140x100
  • Gap between sibling shapes: 50px horizontal, 60px vertical minimum
  • Layer gap (top-to-bottom flow): 120px minimum
  • Column gap (left-to-right flow): 150px minimum
  • Background zones: extend 80px beyond contained elements on all sides

Multi-line Text Handling

When a single text element would be too wide:

  • Split into multiple text elements (each on its own line, same y + fontSize * 1.25 offset)
  • Or reduce font size (but never below 14px)
  • Annotation text: prefer short phrases; split long annotations into separate badges

Proportion Rules

  • Target width/height ratio: 0.8 to 1.5 for best display. If outside this range, consider reflowing the layout.
  • Column alignment: when layout has distinct columns (e.g., shape column + description column), align all rows to the same baseline.
  • No element should extend beyond its column: if description text overflows, either widen canvas or increase row height.

Drawing Order (z-order)

  1. Title text (standalone)
  2. Background zone rectangles
  3. Zone label text
  4. Shapes in reading order (top-left → bottom-right)
  5. Each shape's bound text immediately after the shape
  6. Arrows and their bound labels
  7. Decorative/annotation elements last

Container Binding Pattern (CRITICAL)

For labeled shapes, use bidirectional binding:

{
  "type": "rectangle",
  "id": "box_api",
  "x": 200, "y": 150, "width": 180, "height": 80,
  "backgroundColor": "#d0bfff", "fillStyle": "hachure",
  "strokeColor": "#7048e8", "roughness": 1,
  "roundness": { "type": 3 },
  "boundElements": [
    { "id": "t_box_api", "type": "text" },
    { "id": "arrow_1", "type": "arrow" }
  ]
},
{
  "type": "text",
  "id": "t_box_api",
  "x": 210, "y": 170, "width": 160, "height": 30,
  "text": "API Server",
  "fontSize": 18, "fontFamily": 5,
  "strokeColor": "#1e1e1e",
  "textAlign": "center", "verticalAlign": "middle",
  "containerId": "box_api",
  "originalText": "API Server",
  "autoResize": true
}

The shape's boundElements MUST list the text element ID, and the text MUST have containerId pointing back.


Arrow Binding Pattern

{
  "type": "arrow",
  "id": "arrow_1",
  "x": 380, "y": 190, "width": 150, "height": 0,
  "points": [[0, 0], [150, 0]],
  "endArrowhead": "arrow",
  "strokeColor": "#7048e8", "strokeWidth": 2, "roughness": 1,
  "startBinding": { "elementId": "box_api", "fixedPoint": [1, 0.5] },
  "endBinding": { "elementId": "box_db", "fixedPoint": [0, 0.5] }
}

fixedPoint: [horizontal_ratio, vertical_ratio] where 0=top/left, 1=bottom/right, 0.5=center.


Common Pitfalls

  1. Never use "label" property on shapes — use container binding (containerId + boundElements)
  2. Both sides of binding must exist — shape needs boundElements AND text needs containerId
  3. Always include fontFamily: 5 on text for Excalifont sketch style
  4. Always include originalText and autoResize: true on text elements
  5. Don't generate all at once — break into modules, generate incrementally
  6. ID uniqueness — every element needs a globally unique id across all modules
  7. Coordinate continuity — track positions between modules
  8. No emoji in text — Excalidraw fonts don't render emoji reliably
  9. Text contrast — minimum #757575 on white backgrounds; use dark variants on colored fills
  10. Drawing order matters — emit shape → its text → its arrows in sequence, NOT all rectangles then all texts then all arrows

平台分布

OpenClaw

89.02%
按下载量换算183

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills