Skip to content
Projects

dalance/pipecolor has 84 GitHub stars and 4 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 04:16 UTC. Last push 2026-11-09.

How these counts are measured

Measured star growth

in 24h
0
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

About

A terminal filter to colorize output

Developer Tools

README.md

Original

pipecolor

A terminal filter to colorize output

Actions Status Crates.io

Description

pipecolor is a terminal filter to colorize output. You can customize the colorize rule by regular expression.

Demo

demo

This demonstration uses ./sample/demo.toml configuration.

Install

Download from release page, and extract to the directory in PATH.

Alternatively you can install by cargo.

cargo install pipecolor

Put the colorize rule file to ~/.pipecolor.toml.

sample/pipecolor.toml in this repository is an example.

Usage

pipecolor can receive input through pipe, and colorize the output.

$ cat sample/access_log | pipecolor -c ./sample/pipecolor.toml

Filenames can be specified.

$ pipecolor -c ./sample/pipecolor.toml sample/maillog

If output is redirected to a file, colorization is disabled automatically. You can force to colorize by pipecolor --mode always.

Colorize rule

See the example rule sample/pipecolor.toml.

[[lines]]
    pat  = "^(.*?) .*? .*? \\[(.*?)\\] \".*?\" .*? .*? \".*?\" \"(.*?)\""
    colors = ["White", "LightGreen", "LightBlue", "Green"]
    [[lines.tokens]]
        pat   = "GET"
        colors = ["LightCyan"]
    [[lines.tokens]]
        pat   = "POST"
        colors = ["LightYellow"]
    [[lines.tokens]]
        pat   = "HEAD"
        colors = ["LightMagenta"]

lines.pat is a regular expression to specify colorize lines. If the expression is matched, the matched line is colorize to colors specified by lines.colors.

lines.colors is an array of colors, the first color is used to colorize the whole line. The rest colors are used to colorize the captured group in the expression. In the example, the whole line is colorized to White, the first group captured by (.*?) is colorized to LightGreen.

lines.tokens specifies the special tokens to be colorized in the matched line.

If no token is required, tokens can be omitted.

[[lines]]
    pat  = "^(.*?) .*? .*? \\[(.*?)\\] \".*?\" .*? .*? \".*?\" \"(.*?)\""
    colors = ["White", "LightGreen", "LightBlue", "Green"]

Available colors

The available colors are below.

  • Black
  • Blue
  • Cyan
  • Default
  • Green
  • LightBlack
  • LightBlue
  • LightCyan
  • LightGreen
  • LightMagenta
  • LightRed
  • LightWhite
  • LightYellow
  • Magenta
  • Red
  • White
  • Yellow