npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

lark-a2ui-renderer

v0.1.2

Published

Render a constrained A2UI v0.8 subset into Feishu/Lark interactive card JSON.

Readme

lark-a2ui-renderer

lark-a2ui-renderer is an experimental renderer for turning a constrained A2UI v0.8 surface into Feishu/Lark Card JSON 2.0.

The goal is to make chat-card UI portable: an LLM or host application can produce A2UI messages, and this library compiles them into a Lark interactive card while preserving a stable callback contract back to A2UI userAction events.

For the upstream protocol and specification, see the official A2UI site: https://a2ui.org/. This project implements a Lark-oriented subset and a few experimental extensions; it is not an official A2UI renderer.

What It Does

  • Validates a Lark-oriented subset of A2UI v0.8.
  • Maintains A2UI surface state and data model updates.
  • Renders supported components into Feishu/Lark Card JSON.
  • Embeds callback envelopes in interactive controls.
  • Converts Lark card.action.trigger callbacks into normalized A2UI userAction events.

The library does not send messages, call LLMs, store application state, or make business decisions. Those responsibilities stay with the host application.

Current Scope

  • A2UI protocol: v0.8, following the stable protocol published at https://a2ui.org/.
  • Target platform: Feishu/Lark interactive cards.
  • Catalog id: urn:a2ui:catalog:lark-card:v0_8.
  • Implementation language: TypeScript.

The supported catalog is intentionally smaller than the full A2UI standard catalog. It focuses on components that map cleanly into an IM card surface: text, layout, buttons, forms, text input, choices, and date input.

The repository also documents an experimental dynamic data source extension for live surfaces such as a pixel clock. That extension is not official A2UI v0.8. It is tracked separately in docs/dynamic-data-sources.md.

Notice: the packaged skills/ authoring skill is static-only and does not include dynamic data source instructions or runtime support.

Basic Usage

import { SurfaceStore, renderSurface, normalizeCallback } from "lark-a2ui-renderer/v0_8";

const store = new SurfaceStore();
store.applyMessages(a2uiMessages);

const rendered = renderSurface(store.getSurface("request_form"));
// Host app sends rendered.card through Feishu/Lark OpenAPI.

const userAction = normalizeCallback(store.getSurface("request_form"), normalizedCallbackInput);
// Host app routes userAction to application logic or an LLM.

Project Status

This is still an experimental package. The core renderer, callback normalizer, semantic fixtures, LLM generation tests, and real Lark card-send matrix are in place. The repository also includes a distributable agent skill for authoring and validating this A2UI subset.

The catalog and platform mapping may change as more real callback and rendering behavior is verified.

Development notes, integration setup, and agent-specific operating guidance live in AGENTS.md.

License

MIT