Turns JSON specs into interactive terminal UIs using Ink's React renderer. You define components in a flat element map with a root key, bind data with expressions like "$bindState" and "$state", and wire up events to actions. Ships with a solid standard library (boxes, inputs, selects, tables, markdown) plus streaming support for progressive rendering from JSONL patches. The catalog-driven approach means you can generate AI system prompts directly from your component definitions, which is handy if you're building tools that let LLMs construct terminal interfaces. Works standalone or with external state stores for tighter integration.

skills.sh installs
1.3K
GitHub stars
19.5K
last updated
Aug 21, 2026

Install

$ npx -y skills add vercel-labs/json-render --skill ink --agent claude-code

Installs into .claude/skills of the current project.

Files

@json-render/ink

Ink terminal renderer that converts JSON specs into interactive terminal component trees with standard components, data binding, visibility, actions, and dynamic props.

Quick Start

import { defineCatalog } from "@json-render/core";
import { schema } from "@json-render/ink/schema";
import {
  standardComponentDefinitions,
  standardActionDefinitions,
} from "@json-render/ink/catalog";
import { defineRegistry, Renderer, type Components } from "@json-render/ink";
import { z } from "zod";

// Create catalog with standard + custom components
const catalog = defineCatalog(schema, {
  components: {
    ...standardComponentDefinitions,
    CustomWidget: {
      props: z.object({ title: z.string() }),
      slots: [],
      description: "Custom widget",
    },
  },
  actions: standardActionDefinitions,
});

// Register only custom components (standard ones are built-in)
const { registry } = defineRegistry(catalog, {
  components: {
    CustomWidget: ({ props }) => <Text>{props.title}</Text>,
  } as Components<typeof catalog>,
});

Sponsors

Details

Repository
github.com/vercel-labs/json-render
Categories
Frontend Development, AI & Agent Building, Cloud & Infrastructure, CLI & Terminal
First seen
May 16, 2026

More from vercel-labs/json-render

All 31
1charleswiltgen avataraxiom-uikitcharleswiltgen/axiomUse when bridging UIKit and SwiftUI, modernizing UIKit apps (scene lifecycle, resizability), debugging Auto Layout, Combine, TextKit, PencilKit, or UIKit animat1.3Kskills.sh installs
2github avatarreact19-test-patternsgithub/awesome-copilotProvides before/after patterns for migrating test files to React 19 compatibility, including act() imports, Simulate removal, and StrictMode call count changes.1.3Kskills.sh installs
3davila7 avatarsenior-qadavila7/claude-code-templatesComprehensive QA and testing skill for quality assurance, test automation, and testing strategies for ReactJS, NextJS, NodeJS applications. Includes test suite 1.2Kskills.sh installs
4mindrally avatarbootstrapmindrally/skillsBootstrap development guidelines for responsive layouts, components, and utility-first styling.1.2Kskills.sh installs
5kostja94 avatarimage-optimizationkostja94/marketing-skillsWhen the user wants to optimize images for search engines and performance. Also use when the user mentions "image SEO," "alt text," "image captions," "figcaptio1.2Kskills.sh installs
6vtex avatarvtex-io-messages-and-i18nvtex/skillsApply when implementing localization and translated copy in VTEX IO apps. Covers the `messages` builder, `/messages/*.json`, `context.json`, frontend message us1.2Kskills.sh installs