PluginBench
Skill
Official
Fail
Audit score 45

plantuml-ascii

github/awesome-copilot

Generate ASCII art diagrams from PlantUML text syntax for terminal-friendly documentation.

What is plantuml-ascii?

Create text-based ASCII diagrams using PlantUML, converting structured diagram definitions into plain-text output suitable for terminals, READMEs, and version control. Use when you need diagrams that work in text-only environments or require terminal-friendly visualization.

  • Convert PlantUML diagram syntax to ASCII art using -txt flag
  • Generate Unicode-enhanced ASCII diagrams with -utxt flag for better visual quality
  • Support sequence, class, activity, state, component, use case, and deployment diagrams
  • Process single files or entire directories of PlantUML definitions
  • Output diagrams as .atxt (ASCII) or .utxt (Unicode) files

How to install plantuml-ascii

npx skills add https://github.com/github/awesome-copilot --skill plantuml-ascii
Prerequisites
  • PlantUML installed (via brew, apt-get, yum, or JAR download)
  • Java runtime if using JAR directly
  • Terminal with fixed-width font support for proper alignment
Claude Code
Cursor
Windsurf
Cline

How to use plantuml-ascii

  1. 1.Create a PlantUML diagram file (.puml) with your diagram definition using @startuml/@enduml syntax
  2. 2.Run plantuml -txt diagram.puml for standard ASCII output or plantuml -utxt diagram.puml for Unicode-enhanced output
  3. 3.View the generated .atxt or .utxt file in your terminal or text editor
  4. 4.For multiple files, run plantuml -txt ./diagrams/ to process an entire directory
  5. 5.Verify output in a fixed-width font terminal and adjust diagram complexity if needed

Use cases

Good for
  • Generate sequence diagrams for API documentation in README files
  • Create architecture diagrams for terminal-based workflows without graphical tools
  • Embed flowcharts and state diagrams in git commits or pull request descriptions
  • Document system components and relationships in plain text for version control
  • Visualize class hierarchies and relationships in terminal environments
Who it's for
  • Documentation writers working in terminal-based environments
  • Developers maintaining text-only documentation systems
  • Teams using version control for all documentation artifacts
  • Engineers in restricted environments without graphical tool support

plantuml-ascii FAQ

What's the difference between -txt and -utxt output?

-txt produces pure ASCII characters suitable for any terminal, while -utxt uses Unicode box-drawing characters for better visual quality. Use -utxt if your terminal supports UTF-8.

Can I use this for complex diagrams?

PlantUML ASCII works best for simpler diagrams. Complex diagrams with many elements may not render well in text format. Keep labels short and structure simple.

Where is the output file saved?

By default, output is saved in the same directory as the input file with .atxt (ASCII) or .utxt (Unicode) extension. Use -o flag to specify a different output directory.

What diagram types are supported?

Sequence, class, activity, state, component, use case, and deployment diagrams are all supported in ASCII format.

How do I fix garbled Unicode characters?

Ensure your terminal supports UTF-8 encoding and uses a proper fixed-width font like Courier, Monaco, or Consolas.

Full instructions (SKILL.md)

Source of truth, from github/awesome-copilot.


name: plantuml-ascii description: "Generate ASCII art diagrams using PlantUML text mode. Use when user asks to create ASCII diagrams, text-based diagrams, terminal-friendly diagrams, or mentions plantuml ascii, text diagram, ascii art diagram. Supports: Converting PlantUML diagrams to ASCII art, Creating sequence diagrams, class diagrams, flowcharts in ASCII format, Generating Unicode-enhanced ASCII art with -utxt flag" license: MIT allowed-tools: Bash, Write, Read

PlantUML ASCII Art Diagram Generator

Overview

Create text-based ASCII art diagrams using PlantUML. Perfect for documentation in terminal environments, README files, emails, or any scenario where graphical diagrams aren't suitable.

What is PlantUML ASCII Art?

PlantUML can generate diagrams as plain text (ASCII art) instead of images. This is useful for:

  • Terminal-based workflows
  • Git commits/PRs without image support
  • Documentation that needs to be version-controlled
  • Environments where graphical tools aren't available

Installation

# macOS
brew install plantuml

# Linux (varies by distro)
sudo apt-get install plantuml  # Ubuntu/Debian
sudo yum install plantuml      # RHEL/CentOS

# Or download JAR directly
wget https://github.com/plantuml/plantuml/releases/download/v1.2024.0/plantuml-1.2024.0.jar

Output Formats

FlagFormatDescription
-txtASCIIPure ASCII characters
-utxtUnicode ASCIIEnhanced with box-drawing characters

Basic Workflow

1. Create PlantUML Diagram File

@startuml
participant Bob
actor Alice

Bob -> Alice : hello
Alice -> Bob : Is it ok?
@enduml

2. Generate ASCII Art

# Standard ASCII output
plantuml -txt diagram.puml

# Unicode-enhanced output (better looking)
plantuml -utxt diagram.puml

# Using JAR directly
java -jar plantuml.jar -txt diagram.puml
java -jar plantuml.jar -utxt diagram.puml

3. View Output

Output is saved as diagram.atxt (ASCII) or diagram.utxt (Unicode).

Diagram Types Supported

Sequence Diagram

@startuml
actor User
participant "Web App" as App
database "Database" as DB

User -> App : Login Request
App -> DB : Validate Credentials
DB --> App : User Data
App --> User : Auth Token
@enduml

Class Diagram

@startuml
class User {
  +id: int
  +name: string
  +email: string
  +login(): bool
}

class Order {
  +id: int
  +total: float
  +items: List
  +calculateTotal(): float
}

User "1" -- "*" Order : places
@enduml

Activity Diagram

@startuml
start
:Initialize;
if (Is Valid?) then (yes)
  :Process Data;
  :Save Result;
else (no)
  :Log Error;
  stop
endif
:Complete;
stop
@enduml

State Diagram

@startuml
[*] --> Idle
Idle --> Processing : start
Processing --> Success : complete
Processing --> Error : fail
Success --> [*]
Error --> Idle : retry
@enduml

Component Diagram

@startuml
[Client] as client
[API Gateway] as gateway
[Service A] as svcA
[Service B] as svcB
[Database] as db

client --> gateway
gateway --> svcA
gateway --> svcB
svcA --> db
svcB --> db
@enduml

Use Case Diagram

@startuml
actor "User" as user
actor "Admin" as admin

rectangle "System" {
  user -- (Login)
  user -- (View Profile)
  user -- (Update Settings)
  admin -- (Manage Users)
  admin -- (Configure System)
}
@enduml

Deployment Diagram

@startuml
actor "User" as user
node "Load Balancer" as lb
node "Web Server 1" as ws1
node "Web Server 2" as ws2
database "Primary DB" as db1
database "Replica DB" as db2

user --> lb
lb --> ws1
lb --> ws2
ws1 --> db1
ws2 --> db1
db1 --> db2 : replicate
@enduml

Command-Line Options

# Specify output directory
plantuml -txt -o ./output diagram.puml

# Process all files in directory
plantuml -txt ./diagrams/

# Include dot files (hidden files)
plantuml -txt -includeDot diagrams/

# Verbose output
plantuml -txt -v diagram.puml

# Specify charset
plantuml -txt -charset UTF-8 diagram.puml

Ant Task Integration

<target name="generate-ascii">
  <plantuml dir="./src" format="txt" />
</target>

<target name="generate-unicode-ascii">
  <plantuml dir="./src" format="utxt" />
</target>

Tips for Better ASCII Diagrams

  1. Keep it simple: Complex diagrams don't render well in ASCII
  2. Short labels: Long text breaks ASCII alignment
  3. Use Unicode (-utxt): Better visual quality with box-drawing chars
  4. Test before sharing: Verify in terminal with fixed-width font
  5. Consider alternatives: For complex diagrams, use Mermaid.js or graphviz

Example Output Comparison

Standard ASCII (-txt):

     ,---.          ,---.
     |Bob|          |Alice|
     `---'          `---'
      |   hello      |
      |------------->|
      |              |
      |  Is it ok?   |
      |<-------------|
      |              |

Unicode ASCII (-utxt):

┌─────┐        ┌─────┐
│ Bob │        │Alice│
└─────┘        └─────┘
  │   hello      │
  │─────────────>│
  │              │
  │  Is it ok?   │
  │<─────────────│
  │              │

Quick Reference

# Create sequence diagram in ASCII
cat > seq.puml << 'EOF'
@startuml
Alice -> Bob: Request
Bob --> Alice: Response
@enduml
EOF

plantuml -txt seq.puml
cat seq.atxt

# Create with Unicode
plantuml -utxt seq.puml
cat seq.utxt

Troubleshooting

Problem: Garbled Unicode characters

  • Solution: Ensure terminal supports UTF-8 and has proper font

Problem: Diagram looks misaligned

  • Solution: Use fixed-width font (Courier, Monaco, Consolas)

Problem: Command not found

  • Solution: Install PlantUML or use Java JAR directly

Problem: Output file not created

  • Solution: Check file permissions, ensure PlantUML has write access