Skip to content

entire status outputs literal ←[ instead of ANSI escape codes under TERM=cygwin #1267

Description

@eratolekov

What happened?

Summary

When TERM=cygwin, entire status (and likely other commands) writes the Unicode character U+2190 LEFTWARDS ARROW (UTF-8 e2 86 90) instead of the real ESC byte (0x1B) when emitting ANSI escape sequences. As a result, the terminal shows literals like ←[32m●←[m instead of colored output.

Environment

  • OS: Windows 11
  • Shell: Cygwin bash (/usr/bin/bash)
  • Terminal: WezTerm
  • TERM=cygwin
  • TERM_PROGRAM=WezTerm
  • entire version:
$ entire version
Entire CLI 0.6.2 (1802c9df)
Go version: go1.26.2
OS/Arch: windows/amd64

Steps to reproduce

entire status

Actual output

←[32m●←[m ←[1mEnabled←[m←[2m · ←[mmanual-commit←[2m · ←[mbranch ←[36mmaster←[m
←[2m  Agents · ←[mClaude Code

Expected output

Colored text.

Entire CLI version

0.6.2 (1802c9d)

OS and architecture

Windows 11

Agent

Claude Code

Terminal

WezTerm

Logs / debug output

Diagnostics

The same environment renders ANSI from other tools correctly, so the
terminal/ANSI pipeline is fine:

$ ls --color=always | head -3 | xxd | head -2
00000000: 1b5b 306d 1b5b 3031 3b33 346d 646f 636b  .[0m.[01;34mdock
00000010: 6572 2d63 6f6d 706f 7365 2d64 6576 1b5b  er-compose-dev.[

ls emits proper ESC 0x1b. WezTerm interprets it as expected.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions