AnsiTerminal — Core API
Ajaxray\AnsiKit\AnsiTerminal
provides chainable styling, color, and cursor control.
Basics
use Ajaxray\AnsiKit\AnsiTerminal;
$t = new AnsiTerminal();
$t->write("Plain text\n");
$t->writeStyled("Bold Red\n", [AnsiTerminal::TEXT_BOLD, AnsiTerminal::FG_RED]);
Colors
// 8/16 colors
$t->style(AnsiTerminal::FG_GREEN, AnsiTerminal::BG_BLACK)->write("OK")->reset();
// 256-color
$t->fg256(202)->bg256(235)->write("256-colors")->reset();
// Truecolor (RGB)
$t->fgRGB(255,165,0)->write("Orange")->reset();
Cursor & Screen
$t->clearScreen()->cursorHome();
$t->cursorTo(10, 5)->write("at row 10 col 5");
$t->cursorUp(2)->write("moved up");
$t->hideCursor();
// ... do work ...
$t->showCursor();
Newlines and Output
$t->newline(); // one newline
$t->newline(2); // two newlines
$t->write("Hello"); // no newline
$t->writeStyled("Bold Red\n", [AnsiTerminal::TEXT_BOLD, AnsiTerminal::FG_RED]);
Tip: In tests, pass Writers\MemoryWriter
to capture output.