Skip to content

PowerShell.MCP v1.3.6 - Enhanced CLI Tool Color Support

Choose a tag to compare

@yotsuda yotsuda released this 13 Nov 12:31
· 421 commits to main since this release

Enhanced CLI Tool Color Support

This release extends automatic color output support to additional CLI tools, improving the visual experience when working with modern development tools like GitHub CLI, .NET tools, and 24-bit color terminals.

✨ What's New

🌈 Extended Color Output Support

Added automatic color output for additional CLI tools commonly used in development workflows:

  • GitHub CLI (gh): Now displays colored output via CLICOLOR_FORCE
  • .NET Tools: Console applications now support ANSI color redirection
  • 24-bit Color Terminals: Modern terminals with truecolor support are automatically detected via COLORTERM

These additions complement existing color support for Git, npm, yarn, cargo, and pytest, providing a consistent colorful experience across your entire toolchain.


📊 What's Changed Since v1.3.5

Core Enhancements

Environment Variables:

  • Added CLICOLOR_FORCE='1' for GitHub CLI and standard CLI tools
  • Added COLORTERM='truecolor' for 24-bit color terminal support
  • Added DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION='1' for .NET tools

Behavior:

  • All color environment variables are set conditionally (only if not already defined)
  • Respects user's existing color configuration
  • Maintains backward compatibility with v1.3.5

🔧 Technical Details: Color Environment Variables

PowerShell.MCP automatically configures the following environment variables to enable ANSI color output in MCP environments where stdout is redirected (not a TTY):

Environment Variable Value Target Tools Version Added Description
GIT_CONFIG_PARAMETERS 'color.ui=always' Git v1.3.5 Forces Git to output colors even when stdout is not a terminal. Preserves existing user configurations.
FORCE_COLOR 1 Node.js tools (yarn, chalk, etc.) v1.3.5 Standard variable for Node.js ecosystem to force color output.
NPM_CONFIG_COLOR always npm v1.3.5 npm-specific configuration to always show colors.
CARGO_TERM_COLOR always Rust cargo v1.3.5 Enables colored output for Rust's package manager.
PY_COLORS 1 pytest, Python tools v1.3.5 Standard Python variable to enable ANSI colors.
CLICOLOR_FORCE 1 GitHub CLI (gh), standard CLI tools v1.3.6 Industry-standard variable for forcing color output in POSIX-style tools.
COLORTERM truecolor Modern terminals v1.3.6 Indicates 24-bit color (16 million colors) support to applications.
DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION 1 .NET console apps v1.3.6 Enables ANSI color codes in .NET applications when output is redirected.

Configuration Behavior

  • Non-Destructive: All variables are set conditionally using if (-not $env:VARIABLE), respecting existing user configurations.
  • Persistent: Environment variables remain active throughout the PowerShell session.
  • Automatic: Configuration happens transparently when the MCP server starts—no user action required.

Why These Variables Are Needed

When PowerShell captures output from external CLI tools (e.g., via pipes or variable assignment), those tools detect that their output is being redirected rather than displayed directly to a terminal. Most CLI tools disable ANSI color codes in this "non-interactive" mode to avoid cluttering logs with escape sequences. These environment variables override that detection, forcing tools to output color codes even when their stdout is redirected, ensuring colorful output is preserved for better readability and user experience.


Full Documentation: https://github.com/yotsuda/PowerShell.MCP

Questions? GitHub Discussions

Report Issues: GitHub Issues


Security Notice: Provides complete PowerShell access. Use in trusted environments only.