{"_id":"@agent-ix/ix-ui-cli","_rev":"2-38acfdd550e96e0c43e60733469a3331","name":"@agent-ix/ix-ui-cli","dist-tags":{"latest":"0.4.10"},"versions":{"0.4.7":{"name":"@agent-ix/ix-ui-cli","version":"0.4.7","license":"MIT","_id":"@agent-ix/ix-ui-cli@0.4.7","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"homepage":"https://github.com/agent-ix/ix-ui#readme","bugs":{"url":"https://github.com/agent-ix/ix-ui/issues"},"dist":{"shasum":"f96c911ad0cc543ce2e991c2d914479437a45156","tarball":"https://registry.npmjs.org/@agent-ix/ix-ui-cli/-/ix-ui-cli-0.4.7.tgz","fileCount":42,"integrity":"sha512-U358PkfPT22mQZ1wArmCDfvbABoqIy0IgY9+/Yv4ggPqqPFDFatQa90+PkpDxXJhrw3vDO9VPheGz2B8yUlBQw==","signatures":[{"sig":"MEYCIQCoPj/TlIMv24TrlEfIaB7yHkBlGefJZqxWBSlUll9R0QIhAJ6XZVLuV2DOgSmXdNNSiQOPjQloPg2nGQCv4wwynuJo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88386},"main":"dist/index.js","type":"module","_from":"file:agent-ix-ix-ui-cli-0.4.7.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\" \"tests/**/*.{ts,tsx}\" && pnpm run format:check","test":"vitest run","build":"vite build","clean":"rm -rf dist coverage","format":"prettier --write .","test:json":"vitest run --reporter=json --outputFile=report.json || true","format:check":"prettier --check ."},"_npmUser":{"name":"agent-ix","email":"peter@agent-ix.ai"},"_resolved":"/tmp/35b9c57363bc988cb2c0689e64416729/agent-ix-ix-ui-cli-0.4.7.tgz","_integrity":"sha512-U358PkfPT22mQZ1wArmCDfvbABoqIy0IgY9+/Yv4ggPqqPFDFatQa90+PkpDxXJhrw3vDO9VPheGz2B8yUlBQw==","repository":{"url":"git+https://github.com/agent-ix/ix-ui.git","type":"git"},"_npmVersion":"10.9.2","description":"Terminal UI components for the Agent IX CLI ecosystem.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ink":">=5.0.1","execa":">=9.5.1","react":">=18.3.1","picocolors":">=1.1.1","ink-spinner":">=5.0.0","ink-text-input":">=6.0.0","ink-select-input":">=6.0.0","@agent-ix/ix-ui-semantic":"0.4.7"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":">=6.3.4","vitest":">=3.1.2","@types/react":">=18.3.12","vite-plugin-dts":">=4.5.3","ink-testing-library":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ix-ui-cli_0.4.7_1781880838604_0.5072304135540568","host":"s3://npm-registry-packages-npm-production"}},"0.4.10":{"name":"@agent-ix/ix-ui-cli","description":"Terminal UI components for the Agent IX CLI ecosystem.","version":"0.4.10","license":"MIT","type":"module","main":"dist/index.js","types":"dist/index.d.ts","publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"packageManager":"pnpm@10.10.0","scripts":{"test":"vitest run","test:json":"vitest run --reporter=json --outputFile=report.json || true","lint":"eslint \"src/**/*.{ts,tsx}\" \"tests/**/*.{ts,tsx}\" && pnpm run format:check","format":"prettier --write .","format:check":"prettier --check .","build":"vite build","clean":"rm -rf dist coverage"},"repository":{"type":"git","url":"git+https://github.com/agent-ix/ix-ui.git"},"dependencies":{"@agent-ix/ix-ui-semantic":"0.4.10","execa":">=9.5.1","ink":">=5.0.1","ink-select-input":">=6.0.0","ink-spinner":">=5.0.0","ink-text-input":">=6.0.0","picocolors":">=1.1.1","react":">=18.3.1"},"devDependencies":{"@types/react":">=18.3.12","ink-testing-library":">=4.0.0","vite":">=6.3.4","vite-plugin-dts":">=4.5.3","vitest":">=3.1.2"},"gitHead":"f19dbdfb2e3b131c999d885434f14eb4c13b4b48","_id":"@agent-ix/ix-ui-cli@0.4.10","bugs":{"url":"https://github.com/agent-ix/ix-ui/issues"},"homepage":"https://github.com/agent-ix/ix-ui#readme","_nodeVersion":"22.22.3","_npmVersion":"11.17.0","dist":{"integrity":"sha512-03CRd4KdX7IpcH7WOlQPjpPFzu4d+wW12IYKp1Q+kkakzjqveFJtSh6flP2Kez8QkFZQKI7aDdDTl8ewII3u/Q==","shasum":"4dfa30d39d48e9044a3c0e329ff41a3e896eae6d","tarball":"https://registry.npmjs.org/@agent-ix/ix-ui-cli/-/ix-ui-cli-0.4.10.tgz","fileCount":42,"unpackedSize":90267,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agent-ix%2fix-ui-cli@0.4.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHCNkmewJqD9acROX8YEWztPa2acVrbk8ukqTSvLCK5uAiBgQJTwVf+aOdHhtrz+o+vhabxIrXzfKzxNv6LN0XdfGA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:56ba9c7d-19a5-4217-a011-6b5cedf23583"}},"directories":{},"maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ix-ui-cli_0.4.10_1781912340866_0.0033768535171205816"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-19T14:53:58.464Z","modified":"2026-06-19T23:39:01.306Z","0.4.7":"2026-06-19T14:53:58.734Z","0.4.10":"2026-06-19T23:39:01.015Z"},"bugs":{"url":"https://github.com/agent-ix/ix-ui/issues"},"license":"MIT","homepage":"https://github.com/agent-ix/ix-ui#readme","repository":{"type":"git","url":"git+https://github.com/agent-ix/ix-ui.git"},"description":"Terminal UI components for the Agent IX CLI ecosystem.","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"readme":"# @agent-ix/ix-ui-cli\n\n> Terminal UI components for the Agent IX CLI ecosystem.\n\n## What this is\n\n`@agent-ix/ix-ui-cli` is a terminal/CLI UI component library for the\n[Agent IX](https://github.com/agent-ix) ecosystem. It is built on\n[Ink](https://github.com/vadimdemedes/ink) (React for the terminal) and ships a\nset of opinionated components — framed listings, animated progress tables, task\nrunners, and interactive prompts — plus the design tokens (glyphs, colors,\nindents) and async hooks used to build them.\n\nIt is paired with\n[`@agent-ix/ix-ui-semantic`](https://github.com/agent-ix/ix-ui) for shared\nstate types (`PhaseState`, `OrbitFrame`, `OrbitTone`) and glyph/spinner data,\nkeeping presentation-agnostic semantics in one place and the Ink rendering layer\nhere.\n\n## Install\n\nThis package is published on the public npm registry under the `@agent-ix` scope:\n\n```bash\nnpm install @agent-ix/ix-ui-cli\n```\n\n`react` and `ink` are runtime dependencies and are installed automatically.\n\n## Usage\n\nThe `render()` helper mounts an Ink tree and returns a promise that resolves\nwhen the tree unmounts, handling `SIGTERM`, Ctrl-C, and `EPIPE` for you.\n\n### Rendering a component\n\n```tsx\nimport { render, Listing, Item, Note } from \"@agent-ix/ix-ui-cli\";\n\nawait render(\n  <Listing header=\"Deploying · cluster\" status=\"passed\">\n    <Item>api-gateway</Item>\n    <Item>worker-pool</Item>\n    <Note>3 services reconciled</Note>\n  </Listing>,\n);\n```\n\nFor a static, non-interactive final-state view that paints once and exits, use\n`renderStatic()`:\n\n```tsx\nimport { renderStatic, Listing, Item } from \"@agent-ix/ix-ui-cli\";\n\nawait renderStatic(\n  <Listing header=\"Status\" status=\"passed\">\n    <Item>everything is up</Item>\n  </Listing>,\n);\n```\n\n### Running tasks with progress\n\n```tsx\nimport { render, TaskList } from \"@agent-ix/ix-ui-cli\";\n\nawait render(\n  <TaskList\n    header=\"Building\"\n    tasks={[\n      {\n        title: \"compile\",\n        task: async ({ setStatus }) => {\n          setStatus(\"running tsc…\");\n          await build();\n        },\n      },\n      { title: \"bundle\", task: async () => bundle() },\n    ]}\n    onComplete={(r) => console.log(`${r.passed} passed in ${r.durationMs}ms`)}\n  />,\n);\n```\n\n### Interactive prompts\n\nPrompts report their answer through `onSubmit`. Combine with `render()` and\n`useRenderResult()` to resolve a value from the mounted tree:\n\n```tsx\nimport { render, ConfirmPrompt, useRenderResult } from \"@agent-ix/ix-ui-cli\";\n\nfunction Confirm() {\n  const { setResult, exit } = useRenderResult<boolean>();\n  return (\n    <ConfirmPrompt\n      message=\"Apply changes?\"\n      onSubmit={(r) => {\n        if (!r.cancelled) setResult(r.value);\n        exit();\n      }}\n    />\n  );\n}\n\nconst { result, cancelled } = await render<boolean>(<Confirm />);\n```\n\n### Style tokens\n\nGlyphs, color helpers, and layout constants are exported for building custom\nviews consistent with the IX design system:\n\n```ts\nimport { colors, blue, GLYPH_DONE, renderHeader } from \"@agent-ix/ix-ui-cli\";\n\nconsole.log(renderHeader(\"build · ok\"));\nconsole.log(`${GLYPH_DONE} ${colors.green(\"done\")}`);\n```\n\n## Exports\n\n### Components\n\n| Export                                      | Description                                                                        |\n| ------------------------------------------- | ---------------------------------------------------------------------------------- |\n| `Frame`                                     | Base header/body/tail frame with `running` / `passed` / `failed` status.           |\n| `HeaderSpinner`                             | Animated orbit-glyph spinner used as a running-frame indicator.                    |\n| `Listing`                                   | Frame for static listings, status views, and mixed flows.                          |\n| `FlowLine`, `Group`, `Item`, `Info`, `Note` | Row/section primitives for composing `Listing` bodies.                             |\n| `PhaseTable`                                | Multi-phase service progress table with per-row state and elapsed time.            |\n| `TaskList`                                  | Sequential or concurrent task runner with live status, logs, and a result summary. |\n| `TextPrompt`                                | Single-line text input prompt with optional validation.                            |\n| `PasswordPrompt`                            | Masked text input prompt.                                                          |\n| `ConfirmPrompt`                             | Yes/no confirmation prompt.                                                        |\n| `SelectPrompt`                              | Single-choice selection prompt.                                                    |\n| `MultiSelectPrompt`                         | Multiple-choice selection prompt.                                                  |\n\n### Hooks\n\n| Export               | Description                                                                       |\n| -------------------- | --------------------------------------------------------------------------------- |\n| `useInterval`        | Fire a callback every `delay` ms while mounted; pass `null` to pause.             |\n| `useExecaPhase`      | Run a command via `execa` and report its phase state; SIGTERM/SIGKILL on unmount. |\n| `useKubectlRollout`  | Poll a kubectl rollout and report ready/total pod counts.                         |\n| `useHelmHookWatcher` | Watch Helm hook jobs and report per-job phase.                                    |\n| `useRenderResult`    | Set the resolved value and exit from inside a `render()`-mounted tree.            |\n\n### Render & utilities\n\n| Export                                                                                                                                  | Description                                                     |\n| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |\n| `render`                                                                                                                                | Mount an Ink tree; resolves `{ cancelled, result }` on unmount. |\n| `renderStatic`                                                                                                                          | Render a final-state tree once and exit after the first paint.  |\n| `colors`, `blue`                                                                                                                        | Picocolors-based color helpers and the IX accent color.         |\n| `renderHeader`, `colorOrbitFrame`, `colorPods`                                                                                          | Header/orbit/pod-status string colorizers.                      |\n| `GLYPH_*`, `PHASE_PASS`, `PHASE_FAIL`, `ORBIT_SPINNER`, `orbitFrameGlyphs`                                                              | Glyph and spinner tokens.                                       |\n| `PLANET_COL`, `ROW_INDENT`, `NOTE_INDENT`, `ERROR_INDENT`, `FLOW_INDENT`, `ROUTE_INDENT`, `ROUTE_URL`, `PHASE_WIDTH`, `HEADER_TICK_DIV` | Layout / indent constants.                                      |\n\nInk's `Box` and `Text`, and React's `useState` / `useEffect`, are re-exported\nfor convenience so consumers can do ad-hoc layout without adding `ink` or\n`react` as direct dependencies.\n\n## Development\n\nThis package lives in the [`ix-ui`](https://github.com/agent-ix/ix-ui) pnpm\nworkspace monorepo and is built with [Vite](https://vitejs.dev/). From the repo\nroot:\n\n```bash\nmake build   # build all packages\nmake test    # run tests (vitest)\nmake lint    # eslint + prettier check\n```\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n","readmeFilename":"README.md"}