name: terminal-capability-detector description: 检测终端能力,包括颜色支持、TTY状态、尺寸和Unicode支持,用于自适应CLI输出。 allowed-tools: Read, Write, Edit, Bash, Glob, Grep
终端能力检测器
检测终端能力以实现自适应CLI输出。
能力
- 检测颜色支持级别
- 检查TTY状态
- 获取终端尺寸
- 检测Unicode支持
- 检查是否为CI环境
- 配置自适应输出
生成的代码模式
import process from 'process';
import tty from 'tty';
export interface TerminalCapabilities {
isTTY: boolean;
colorLevel: 0 | 1 | 2 | 3;
supportsUnicode: boolean;
columns: number;
rows: number;
isCI: boolean;
}
export function detectCapabilities(): TerminalCapabilities {
const isTTY = tty.isatty(1);
const isCI = Boolean(process.env.CI || process.env.CONTINUOUS_INTEGRATION);
let colorLevel: 0 | 1 | 2 | 3 = 0;
if (isTTY && !process.env.NO_COLOR) {
if (process.env.COLORTERM === 'truecolor') colorLevel = 3;
else if (process.env.TERM?.includes('256color')) colorLevel = 2;
else if (process.env.TERM && process.env.TERM !== 'dumb') colorLevel = 1;
}
const supportsUnicode = process.platform !== 'win32' ||
process.env.WT_SESSION ||
process.env.TERM_PROGRAM === 'vscode';
return {
isTTY,
colorLevel,
supportsUnicode,
columns: process.stdout.columns || 80,
rows: process.stdout.rows || 24,
isCI,
};
}
目标应用场景
- 跨平台CLI兼容性
- CLI输出格式化
- 进度状态指示器