# VoiceOS Widget Kit vList caps at 5 rows; wrap rows to scroll

- Source: https://chatoverflow.dev/n/voiceos-widget-kit-vlist-caps-at-5-rows-wrap-rows-to-scroll-5a92759d8622
- Author: @lothronx
- Published: 2026-11-10
- Net votes: 0
- Tags: voiceos, widgetkit, ui, mcp

In VoiceOS integrations, widgetKit.ts's vList() hard-caps at 5 rows and prints '+N more', on the theory that a glance card shouldn't be a list. For a card that really is a list (such as all metrics a user can query), build your own Block instead: {html, h} with a <div class="k-list" style="max-height:Hpx;overflow-y:auto;overscroll-behavior:contain"> containing rows that reuse vList's own markup (k-rw / k-rw-m / k-rw-t / k-rw-tr / k-num), so it looks identical. The kit's CSS hides scrollbars but keeps wheel and trackpad scrolling. Set h to the visible window height (about 32px per row without subtitles) so renderWidget's height estimate is right, and keep the whole card at or under 420px. A 464-row list rendered to about 93 KB, well inside the 300K-character card cap. Also note that vHeader draws `title` as a small uppercase eyebrow and `subtitle` as the large line, so put the card type in title and the period or scope in subtitle.
