Charta Logo

Charta - Terminal Graph Generator

Colorful Terminal Graphs

Summary

Charta is a command-line tool written in Go for generating colorful terminal graphs. It supports multiple graph types and various input formats including JSON, YAML, and plain text. Charta provides flexible input options, colorful output with customizable colors, grouping capabilities for data analysis, and threshold support with warning and alert levels. Perfect for data visualization in terminal environments and shell scripting workflows.

Features

Multiple Graph Types

Simple value graphs and Min/Max/Average graphs for comprehensive data visualization.

Flexible Input

Support for JSON, YAML, TXT files, or stdin input for maximum flexibility.

Colorful Output

Terminal-based graphs with customizable colors (red, green, yellow, blue, magenta, cyan, grey, orange*, purple*).

*: only for Truecolor Terminals

Data Grouping

Group multiple values for averaging or analysis with configurable grouping options.

Threshold Support

Warning and alert thresholds with color coding for monitoring and alerting.

Customizable Display

Adjustable width, min/max values, labels, and colors for personalized visualization.

Easy Integration

Perfect for shell scripts, monitoring systems, and data analysis pipelines.

Installation Charta

Installation
$ # Build from source:
$ git clone https://codeberg.org/spn109/charta.git
$ go build -o charta

$ # Make executable and install:
$ chmod +x charta
$ sudo mv charta /usr/local/bin/

$ # Or install directly with go:
$ go install codeberg.org/spn109/charta@latest

Usage - Charta

Basic Command Structure

Basic Usage
$ charta <graph-type> [graph-options] [values...]

Graph Types

Simple Graph

Displays a single value as a horizontal bar graph:

Simple Graph Example
$ charta simple 75
$ charta simple --min 0 --max 100 --label "Utilisation CPU" 85
Graphique simple

MinMax Graph

Displays minimum, average, and maximum values from a dataset:

MinMax Graph Example
$ ./charta minmax 10 20 30 40 50
$ ./charta minmax --label "Temps de Réponse" 120 150 180 200 175
Graphique Min/Avg/Max

Global Options

  • -f, --file <file>: Input file (JSON, YAML, TXT) or "stdin"
  • -g, --groupby <n>: Group N values together (default: 1)
  • -m, --min <value>: Minimum scale value (default: 0)
  • -M, --max <value>: Maximum scale value (default: 100)
  • -w, --width <value>: Graph width in characters (default: 100)
  • -l, --label <text>: Label for the graph (default: "Label")
  • -c, --color <color>: Graph color (red, green, yellow, blue, magenta, cyan, grey, orange*, purple*)
  • -W, --warning <value>: Warning threshold (default: 50)
  • -A, --alert <value>: Alert threshold (default: 80)

*orange and purple require truecolor terminal support

Input File Formats

JSON Format

JSON Example
{
        "type": "minmax",
        "values": [10, 20, 30, 40, 50]
}

Examples

Display CPU usage with custom colors and thresholds
CPU Usage Example
$ charta simple --label "Utilisation CPU" --warning 70 --alert 90 85
Graphique Simple with Treshold
Analyze response times from JSON file
Response Times Example
$ charta minmax --file response_times.json --label "Temps de Réponse API"
Graphique Min/Avg/Max from JSON File
Monitor system metrics with stdin input
Stdin Input Example
$ {for i in 45 67 23 89 12; do echo $i; done} | charta minmax --file stdin --color blue
Graphique Min/Avg/Max from STDIN

Charta - Générateur de Graphiques pour le Terminal

Graphiques Terminaux Colorés

Résumé

Charta est un outil en ligne de commande écrit en Go pour générer des graphiques colorés dans un terminal. Il prend en charge plusieurs types de graphiques et divers formats d'entrée, notamment JSON, YAML et texte brut. Charta offre des options d'entrée flexibles, une sortie colorée avec des couleurs personnalisables, des capacités de regroupement pour l'analyse de données, et un support de seuils avec des niveaux d'avertissement et d'alerte. Parfait pour la visualisation de données dans les environnements terminaux et les workflows de scripts shell.

Fonctionnalités

Types de Graphiques Multiples

Graphiques de valeurs simples et graphiques Min/Max/Moyenne pour une visualisation complète des données.

Entrée Flexible

Support des fichiers JSON, YAML, TXT, ou entrée stdin pour une flexibilité maximale.

Sortie Colorée

Graphiques basés sur le terminal avec couleurs personnalisables (rouge, vert, jaune, bleu, magenta, cyan, gris, orange*, violet*).

* : uniquement pour les terminaux TrueColor

Regroupement de Données

Regrouper plusieurs valeurs pour la moyenne ou l'analyse avec des options de regroupement configurables.

Support de Seuils

Seuils d'avertissement et d'alerte avec codage couleur pour la surveillance et les alertes.

Affichage Personnalisable

Largeur ajustable, valeurs min/max, étiquettes et couleurs pour une visualisation personnalisée.

Intégration Facile

Parfait pour les scripts shell, les systèmes de surveillance et les pipelines d'analyse de données.

Installation de Charta

Installation
$ # Compiler depuis les sources :
$ git clone https://codeberg.org/spn109/charta.git
$ go build -o charta

$ # Rendre exécutable et installer :
$ chmod +x charta
$ sudo mv charta /usr/local/bin/

$ # Ou installer directement avec go :
$ go install codeberg.org/spn109/charta@latest

Guide Utilisation Charta

Structure de Commande de Base

Utilisation de Base
$ charta <type-graphique> [options-graphique] [valeurs...]

Types de Graphiques

Graphique Simple

Affiche une valeur unique sous forme de graphique à barres horizontales :

Exemple Graphique Simple
$ charta simple 75
$ charta simple --min 0 --max 100 --label "Utilisation CPU" 85
Graphique simple

Graphique MinMax

Affiche les valeurs minimum, moyenne et maximum d'un jeu de données :

Exemple Graphique MinMax
$ charta minmax 10 20 30 40 50
$ charta minmax --label "Temps de Réponse" 120 150 180 200 175
Graphique Min/Moy/Max

Options Globales

  • -f, --file <fichier>: Fichier d'entrée (JSON, YAML, TXT) ou "stdin"
  • -g, --groupby <n>: Regrouper N valeurs ensemble (défaut : 1)
  • -m, --min <valeur>: Valeur d'échelle minimum (défaut : 0)
  • -M, --max <valeur>: Valeur d'échelle maximum (défaut : 100)
  • -w, --width <valeur>: Largeur du graphique en caractères (défaut : 100)
  • -l, --label <texte>: Étiquette pour le graphique (défaut : "Label")
  • -c, --color <couleur>: Couleur du graphique (red, green, yellow, blue, magenta, cyan, grey, orange*, purple*)
  • -W, --warning <valeur>: Seuil d'avertissement (défaut : 50)
  • -A, --alert <valeur>: Seuil d'alerte (défaut : 80)

*orange et purple nécessitent un support terminal truecolor

Formats de Fichiers d'Entrée

Format JSON

Exemple JSON
{
        "type": "minmax",
        "values": [10, 20, 30, 40, 50]
}

Exemples

Afficher l'utilisation CPU avec couleurs et seuils personnalisés
Exemple Utilisation CPU
$ charta simple --label "Utilisation CPU" --warning 70 --alert 90 85
Graphique Simple avec Seuils
Analyser les temps de réponse depuis un fichier JSON
Exemple Temps de Réponse depuis un fichier JSON
$ charta --file temps_reponse.json --label "Temps de Réponse API"
Graphique Min/Moy/Max depuis JSON
Surveiller les métriques système avec entrée stdin
Exemple Entrée STDIN
$ {for i in 45 67 23 89 12; do echo $i; done} | charta minmax --file stdin --color blue
Graphique Min/Moy/Max depuis STDIN