Skip to content

kungfusheep/edd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

160 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

edd

Terminal-based diagram editor for sequence diagrams and flowcharts. Uses vim-style keybindings and modal editing.

What it does

edd edits and converts diagrams between formats (Mermaid, PlantUML, Graphviz, D2). It renders ASCII/Unicode diagrams in the terminal or exports to diagram markup languages.

Supported formats:

  • Import: Mermaid, PlantUML, Graphviz DOT, D2, JSON
  • Export: ASCII/Unicode, Mermaid, PlantUML, JSON

Diagram types:

  • Sequence diagrams (participant interactions over time)
  • Flowcharts (box-and-arrow layouts)
image

Key feature: Jump mode

Press an action key (c, d, e) and labels appear on all elements. Press a label key to select that element. This eliminates arrow key navigation.

Keyboard commands

  • c / C - Connect nodes (single/continuous)
  • d / D - Delete elements (single/continuous)
  • e - Edit element text
  • i / I - Insert connections (single/continuous)
  • u - Undo
  • Ctrl+r - Redo
  • t - Toggle diagram type
  • :w - Save
  • :q - Quit
  • :export format [file] - Export to format

Installation

go install github.com/kungfusheep/edd@latest

Usage

Start empty editor:

edd

Edit existing diagram:

edd -i diagram.json
edd -i diagram.mmd     # Auto-detects Mermaid
edd -i diagram.puml    # Auto-detects PlantUML
edd -i diagram.dot     # Auto-detects Graphviz

Render diagram to terminal:

edd diagram.json

Convert between formats:

edd -format mermaid diagram.json > output.mmd
edd -format plantuml diagram.mmd > output.puml
edd -format ascii diagram.puml    # Print to terminal

Batch conversion:

for file in *.puml; do
  edd -format mermaid "$file" > "${file%.puml}.mmd"
done

File format

Diagrams are stored as JSON:

{
  "type": "sequence",
  "nodes": [
    {"id": 0, "text": ["Client"]},
    {"id": 1, "text": ["Server"]}
  ],
  "connections": [
    {"from": 0, "to": 1, "arrow": true, "label": "Request"},
    {"from": 1, "to": 0, "arrow": true, "label": "Response"}
  ]
}

Limitations

  • Import support covers basic features only (~20-30% of each format's syntax)
  • Keyboard-only (no mouse support)
  • No image export (terminal rendering only)
  • Sequence diagrams support simple message flows only
  • Flowcharts support basic box-and-arrow layouts only

Requirements

  • Go 1.19+
  • Terminal with Unicode support
  • 80+ column width recommended

About

make diagrams in the terminal

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages