plantuml-ascii

por github

Gere diagramas em arte ASCII a partir da sintaxe de texto PlantUML para uso em terminal e documentação. Suporta seis tipos de diagramas: sequência, classe, atividade, estado, componente, caso de uso e implantação. Dois formatos de saída: ASCII puro (-txt) e ASCII aprimorado com Unicode (-utxt) com caracteres de desenho de caixas para melhor legibilidade. Funciona com instalação do PlantUML ou JAR independente; gera arquivos .atxt ou .utxt prontos para terminais, READMEs e controle de versão. Opções de linha de comando incluem lote...

npx skills add https://github.com/github/awesome-copilot --skill plantuml-ascii

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

Mais skills de github

console-rendering
github
Instruções para usar o sistema de renderização de console baseado em tags de struct em Go
official
acquire-codebase-knowledge
github
Use esta habilidade quando o usuário solicitar explicitamente mapear, documentar ou integrar-se a uma base de código existente. Ative para comandos como "mapeie esta base de código", "documente…
official
acreadiness-assess
github
Run the AgentRC readiness assessment on the current repository and produce a static HTML dashboard at reports/index.html. Wraps `npx github:microsoft/agentrc…
official
acreadiness-generate-instructions
github
Gera arquivos de instrução de agente de IA personalizados através do comando de instruções do AgentRC. Produz .github/copilot-instructions.md (padrão, recomendado para o Copilot no VS…
official
acreadiness-policy
github
Ajude o usuário a escolher, escrever ou aplicar uma política AgentRC. Políticas personalizam a pontuação de prontidão desabilitando verificações irrelevantes, substituindo impacto/nível, definindo…
official
add-educational-comments
github
Adiciona comentários educacionais a arquivos de código para transformá-los em recursos de aprendizado eficazes. Adapta a profundidade e o tom das explicações para três níveis de conhecimento configuráveis: iniciante, intermediário e avançado. Solicita automaticamente um arquivo caso nenhum seja fornecido, com correspondência de lista numerada para seleção rápida. Expande arquivos em até 125% usando apenas comentários educacionais (limite máximo: 400 novas linhas; 300 para arquivos com mais de 1.000 linhas). Preserva a codificação do arquivo, o estilo de indentação, a correção sintática e...
official
adobe-illustrator-scripting
github
Escreva, depure e otimize scripts de automação do Adobe Illustrator usando ExtendScript (JavaScript/JSX). Use ao criar ou modificar scripts que manipulam…
official
agent-governance
github
Políticas declarativas, classificação de intenção e trilhas de auditoria para controlar o acesso e comportamento de ferramentas de agentes de IA. Políticas de governança componíveis definem ferramentas permitidas/bloqueadas, filtros de conteúdo, limites de taxa e requisitos de aprovação — armazenados como configuração, não código. A classificação semântica de intenção detecta prompts perigosos (exfiltração de dados, escalada de privilégio, injeção de prompt) antes da execução da ferramenta usando sinais baseados em padrões. O decorador de governança em nível de ferramenta aplica políticas em funções...
official