# Honor the NO_COLOR environment variable The user pastes the specification of the NO_COLOR environment variable protocol from [no-color.org](https://no-color.org) into the chat with GPT-4. GPT figures out which files need to be edited, and asks permission to make changes. It then disables all the color and pretty-printing functions if NO_COLOR is set, so the tool conforms to the specification. ## Chat transcript > $ aider > Using git repo: .git > Use /help to see in-chat commands. #### Command-line software which adds ANSI color to its output by default should check for a NO_COLOR environment variable that, when present and not an empty string (regardless of its value), prevents the addition of ANSI color. To implement this feature, we need to modify the `aider/io.py` file. Please make it *read-write* so I can provide the necessary changes. > aider/io.py > Add these files to the chat? y Great! Now, I will make the necessary changes to check for the `NO_COLOR` environment variable and disable ANSI color when it is present and not an empty string. ```python aider/io.py <<<<<<< ORIGINAL import os ======= import os import os.path >>>>>>> UPDATED ``` ```python aider/io.py <<<<<<< ORIGINAL def __init__( self, pretty=True, yes=False, input_history_file=None, chat_history_file=None, input=None, output=None, user_input_color="blue", tool_output_color=None, tool_error_color="red", ): self.user_input_color = user_input_color self.tool_output_color = tool_output_color self.tool_error_color = tool_error_color self.input = input self.output = output self.pretty = pretty self.yes = yes self.input_history_file = input_history_file if chat_history_file is not None: self.chat_history_file = Path(chat_history_file) else: self.chat_history_file = None if pretty: self.console = Console() else: self.console = Console(force_terminal=True, no_color=True) ======= def __init__( self, pretty=True, yes=False, input_history_file=None, chat_history_file=None, input=None, output=None, user_input_color="blue", tool_output_color=None, tool_error_color="red", ): no_color = os.environ.get("NO_COLOR") if no_color is not None and no_color != "": pretty = False self.user_input_color = user_input_color if pretty else None self.tool_output_color = tool_output_color if pretty else None self.tool_error_color = tool_error_color if pretty else None self.input = input self.output = output self.pretty = pretty self.yes = yes self.input_history_file = input_history_file if chat_history_file is not None: self.chat_history_file = Path(chat_history_file) else: self.chat_history_file = None self.console = Console(force_terminal=not pretty, no_color=not pretty) >>>>>>> UPDATED ``` These changes will make the software check for the `NO_COLOR` environment variable and disable ANSI color when it is present and not an empty string. > Applied edit to aider/io.py > Applied edit to aider/io.py > Commit 3218242 aider: Added check for NO_COLOR environment variable to disable ANSI color.