You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
thinktank always emits ANSI color codes and Unicode box-drawing characters regardless of whether stdout is a terminal. When output is piped to a file, CI log aggregator, or grep, the result is unreadable garbage:
\x1b[1m\x1b[36m══ Ensemble Results ══\x1b[0m
Proposed solution
TTY detection: wrap all color calls in a check — if !process.stdout.isTTY, strip colors and replace Unicode box-drawing with ASCII equivalents (already partially done for Windows in Add ANSI color support detection for Windows cmd.exe compatibility #27, but TTY detection is separate)
--no-color flag: explicit opt-out (also honour NO_COLOR=1 env var per https://no-color.org/)
--output-format flag: text (default), json
json mode: emit a single JSON object to stdout containing the full EnsembleResult so scripts can process results programmatically
text mode: current human-readable output
Acceptance criteria
When stdout is not a TTY, colors are stripped automatically
NO_COLOR=1 thinktank list produces plain text
--no-color flag works
--output-format json prints the full result as a JSON object (matches EnsembleResult schema)
--output-format json is consistent for run, list, stats, and compare
Problem
thinktankalways emits ANSI color codes and Unicode box-drawing characters regardless of whether stdout is a terminal. When output is piped to a file, CI log aggregator, orgrep, the result is unreadable garbage:Proposed solution
!process.stdout.isTTY, strip colors and replace Unicode box-drawing with ASCII equivalents (already partially done for Windows in Add ANSI color support detection for Windows cmd.exe compatibility #27, but TTY detection is separate)--no-colorflag: explicit opt-out (also honourNO_COLOR=1env var per https://no-color.org/)--output-formatflag:text(default),jsonjsonmode: emit a single JSON object to stdout containing the fullEnsembleResultso scripts can process results programmaticallytextmode: current human-readable outputAcceptance criteria
stdoutis not a TTY, colors are stripped automaticallyNO_COLOR=1 thinktank listproduces plain text--no-colorflag works--output-format jsonprints the full result as a JSON object (matchesEnsembleResultschema)--output-format jsonis consistent forrun,list,stats, andcompare