chalk ^5.0.0 Details
Terminal string styling done right.
Why ansi-tui uses it
Used for color and emphasis in terminal output outside the main Ink-rendered views.
Everything ansi-tui can do, in detail.
Sessions are named, persistent workspaces. Create one per project, environment, or customer and let ansi-tui carry the context forward into every tool form automatically.
Name Human-readable workspace identifier Working directory Base path for operations Inventory File, directory, or host list Vault file Password file path Vault ID Vault identity label Extra vars Additional -e variables Environment vars Proxy, tokens, API keys ansible.cfg Custom config path Tags Default tag filters Notes Operator guidance text The Jobs screen records every execution with full fidelity: status badges, exact argv, exit codes, duration, timestamps, session context, and scrollable output.
ANSI-aware streaming with scroll, pause, resume, and elapsed timers.
Colors, bold, and dim preserved from Ansible output.
Space pauses auto-scroll and resumes when you want.
Live timer from the first byte to process exit.
Arrow keys scroll while auto-follow stays available.
Output is clipped to fit terminal constraints cleanly.
Hyperlinks are stripped before display for safety.
Color-friendly env vars are pre-set automatically.
Wrap or plain-text mode based on tool output needs.
# On a connected machine:
$ npm pack @3a2dev/ansi-tui
$ curl -fsSL https://raw.githubusercontent.com/3A2DEV/ansi-tui/main/install.sh -o install.sh
# Copy install.sh and 3a2dev-ansi-tui-0.1.0.tgz to target
# Then on the air-gapped host:
$ chmod +x install.sh
$ ./install.sh --local ./3a2dev-ansi-tui-0.1.0.tgz
# Session env vars (highest priority)
HTTPS_PROXY=http://proxy.corp:8080
NO_PROXY=localhost,10.0.0.0/8
The `ansi-tui` repository runs a dedicated `npm-tests.yml` workflow on every pull request and layers security monitoring on top with Dependabot and CodeQL.
Triggered on `opened`, `synchronize`, `reopened`, and `ready_for_review`.
npm ci npm run typecheck npm run lint npm test npm run build npm run pack:check Node versions
Suites
Each matrix job runs npm run test:<suite> on the selected Node version.
Automated dependency monitoring plus repository-level static analysis.
The repository uses Dependabot to surface dependency vulnerabilities and keep the Node package graph current.
GitHub CodeQL scans the codebase for security issues and code quality risks, including maintainability and reliability signals.
# PR validation snapshot
workflow: npm-tests.yml
checks: typecheck, lint, full tests, build, pack check
security: Dependabot + CodeQL
A direct dependency snapshot for @3a2dev/ansi-tui,
including what each package provides and why it exists in the CLI.
Dependency Surface
23
direct packages
12
runtime
11
development
Scope
This section documents only the direct dependencies declared by the published npm package. Transitive dependencies are intentionally omitted so the stack stays easy to audit.
Packages shipped with the CLI and required when ansi-tui is actually running.
chalk ^5.0.0 Details
Terminal string styling done right.
Why ansi-tui uses it
Used for color and emphasis in terminal output outside the main Ink-rendered views.
env-paths ^3.0.0 Details
Get paths for storing things like data, config, cache, etc.
Why ansi-tui uses it
Provides OS-correct locations for persisted sessions, config, cache, and job history files.
execa ^8.0.0 Details
Process execution for humans.
Why ansi-tui uses it
Runs ansible-* commands with explicit argv handling, streamed output, and reliable exit-code capture.
ink ^5.0.0 Details
React for CLI.
Why ansi-tui uses it
Forms the terminal UI runtime that renders screens, layout, focus flow, and updates in the terminal.
ink-select-input ^6.0.0 Details
Select input component for Ink.
Why ansi-tui uses it
Powers keyboard-driven selection lists for tools, actions, and guided choices.
ink-spinner ^5.0.0 Details
Spinner component for Ink.
Why ansi-tui uses it
Shows visible progress while long-running playbooks and other commands execute.
ink-table ^3.0.0 Details
A table component for Ink.
Why ansi-tui uses it
Renders structured terminal tables for environment summaries, tool health, and other matrix views.
ink-text-input ^6.0.0 Details
Text input component for Ink.
Why ansi-tui uses it
Backs text fields across the guided forms for paths, tags, extra vars, and other command inputs.
react ^18.0.0 Details
React is a JavaScript library for building user interfaces.
Why ansi-tui uses it
Ink is React-based, so ansi-tui uses React state, components, and hooks for the terminal app itself.
strip-ansi ^7.0.0 Details
Strip ANSI escape codes from a string.
Why ansi-tui uses it
Normalizes captured job logs and plain-text views when raw ANSI sequences should not be preserved.
uuid ^10.0.0 Details
RFC9562 UUIDs.
Why ansi-tui uses it
Generates stable IDs for sessions, jobs, and other persisted records.
which ^4.0.0 Details
Like which(1) unix command. Find the first instance of an executable in the PATH.
Why ansi-tui uses it
Locates installed ansible-* executables and supports runtime environment validation before execution.
| Package | Version | Details | Why ansi-tui uses it |
|---|---|---|---|
chalk | ^5.0.0 | Terminal string styling done right. | Used for color and emphasis in terminal output outside the main Ink-rendered views. |
env-paths | ^3.0.0 | Get paths for storing things like data, config, cache, etc. | Provides OS-correct locations for persisted sessions, config, cache, and job history files. |
execa | ^8.0.0 | Process execution for humans. | Runs ansible-* commands with explicit argv handling, streamed output, and reliable exit-code capture. |
ink | ^5.0.0 | React for CLI. | Forms the terminal UI runtime that renders screens, layout, focus flow, and updates in the terminal. |
ink-select-input | ^6.0.0 | Select input component for Ink. | Powers keyboard-driven selection lists for tools, actions, and guided choices. |
ink-spinner | ^5.0.0 | Spinner component for Ink. | Shows visible progress while long-running playbooks and other commands execute. |
ink-table | ^3.0.0 | A table component for Ink. | Renders structured terminal tables for environment summaries, tool health, and other matrix views. |
ink-text-input | ^6.0.0 | Text input component for Ink. | Backs text fields across the guided forms for paths, tags, extra vars, and other command inputs. |
react | ^18.0.0 | React is a JavaScript library for building user interfaces. | Ink is React-based, so ansi-tui uses React state, components, and hooks for the terminal app itself. |
strip-ansi | ^7.0.0 | Strip ANSI escape codes from a string. | Normalizes captured job logs and plain-text views when raw ANSI sequences should not be preserved. |
uuid | ^10.0.0 | RFC9562 UUIDs. | Generates stable IDs for sessions, jobs, and other persisted records. |
which | ^4.0.0 | Like which(1) unix command. Find the first instance of an executable in the PATH. | Locates installed ansible-* executables and supports runtime environment validation before execution. |
Packages used to build, typecheck, lint, and test ansi-tui before release.
@types/node ^25.5.0 Details
TypeScript definitions for node.
Why ansi-tui uses it
Types Node.js APIs used for process management, filesystem access, and CLI runtime behavior.
@types/react ^18.0.0 Details
TypeScript definitions for react.
Why ansi-tui uses it
Provides static typing for the React components and hooks used through Ink.
@types/uuid ^10.0.0 Details
Stub TypeScript definitions entry for uuid, which provides its own types definitions.
Why ansi-tui uses it
Included in the published toolchain metadata to keep TypeScript resolution friction-free around UUID usage.
@types/which ^3.0.0 Details
TypeScript definitions for which.
Why ansi-tui uses it
Adds static types for executable lookup and PATH validation helpers.
@typescript-eslint/eslint-plugin ^7.0.0 Details
TypeScript plugin for ESLint.
Why ansi-tui uses it
Enforces TypeScript-specific lint rules across the TUI screens, hooks, and support code.
@typescript-eslint/parser ^7.0.0 Details
An ESLint custom parser which leverages TypeScript ESTree.
Why ansi-tui uses it
Lets ESLint parse the TypeScript and TSX source used by the Ink application.
eslint ^8.0.0 Details
An AST-based pattern checker for JavaScript.
Why ansi-tui uses it
Runs static analysis before publish and in CI to catch maintainability and correctness issues early.
ink-testing-library ^3.0.0 Details
Utilities for testing Ink apps.
Why ansi-tui uses it
Supports screen and component tests without requiring a real interactive terminal session.
tsup ^8.0.0 Details
Bundle your TypeScript library with no config, powered by esbuild.
Why ansi-tui uses it
Builds the publishable npm package output in dist/ for installation and execution.
typescript ^5.0.0 Details
TypeScript is a language for application scale JavaScript development.
Why ansi-tui uses it
Provides the type system and compile-time checks used across the ansi-tui codebase.
vitest ^4.1.4 Details
Next generation testing framework powered by Vite.
Why ansi-tui uses it
Runs the package test suite covering core logic, tools, components, screens, hooks, and packaging.
| Package | Version | Details | Why ansi-tui uses it |
|---|---|---|---|
@types/node | ^25.5.0 | TypeScript definitions for node. | Types Node.js APIs used for process management, filesystem access, and CLI runtime behavior. |
@types/react | ^18.0.0 | TypeScript definitions for react. | Provides static typing for the React components and hooks used through Ink. |
@types/uuid | ^10.0.0 | Stub TypeScript definitions entry for uuid, which provides its own types definitions. | Included in the published toolchain metadata to keep TypeScript resolution friction-free around UUID usage. |
@types/which | ^3.0.0 | TypeScript definitions for which. | Adds static types for executable lookup and PATH validation helpers. |
@typescript-eslint/eslint-plugin | ^7.0.0 | TypeScript plugin for ESLint. | Enforces TypeScript-specific lint rules across the TUI screens, hooks, and support code. |
@typescript-eslint/parser | ^7.0.0 | An ESLint custom parser which leverages TypeScript ESTree. | Lets ESLint parse the TypeScript and TSX source used by the Ink application. |
eslint | ^8.0.0 | An AST-based pattern checker for JavaScript. | Runs static analysis before publish and in CI to catch maintainability and correctness issues early. |
ink-testing-library | ^3.0.0 | Utilities for testing Ink apps. | Supports screen and component tests without requiring a real interactive terminal session. |
tsup | ^8.0.0 | Bundle your TypeScript library with no config, powered by esbuild. | Builds the publishable npm package output in dist/ for installation and execution. |
typescript | ^5.0.0 | TypeScript is a language for application scale JavaScript development. | Provides the type system and compile-time checks used across the ansi-tui codebase. |
vitest | ^4.1.4 | Next generation testing framework powered by Vite. | Runs the package test suite covering core logic, tools, components, screens, hooks, and packaging. |