This repository contains the package entries for opentui.com/packages.
Each package has one MDX file in the packages/ directory. OpenTUI loads these
files when it builds the website.
Add one <id>.mdx file to the packages/ directory. A pull request review
checks the package and its description before the entry becomes part of the
index.
Use lowercase words separated by hyphens for id. The ID is permanent and
becomes /packages/<id>. The filename and id must match.
Write the package metadata in YAML frontmatter. Write a longer description or examples in the optional MDX body.
---
id: example-widgets
name: Example Widgets
summary: Reusable OpenTUI widgets for forms and navigation.
kind: component
official: false
maintainers:
- "@example"
source:
url: https://github.com/example/opentui-widgets
surfaces:
- name: TypeScript
language: typescript
import: example-widgets
distributions:
- type: npm
identifier: example-widgets
install: bun add example-widgets
links:
docs: https://github.com/example/opentui-widgets#readme
categories:
- components
---
Example Widgets provides form controls that use OpenTUI Core renderables.id,name,summary,kind,official,source, anddistributionsare required.kindisnative-library,library,renderer,component,application,tool,integration,examples, ordocumentation.officialmust befalsefor community packages.maintainerslists one or more GitHub handles and is required for community packages.sourcehas a repositoryurland an optional monorepodirectory.surfaceslists APIs by displaynameandlanguage. Each surface can include animportand a documentationdocsURL.distributionslists one or moresource,npm,jsr, orgithub-releasedistributions. A distribution can include anidentifierand aninstallcommand.linkscan includehomepage,docs,issues, andchangelogURLs.categoriescontains one to three search tags. Each tag can use free text up to 32 characters.statusisactive,archived, ordeprecated. The default isactive.
Do not add versions, licenses, stars, entrypoints, platform packages, platform
targets, or Zig metadata to an MDX entry. A daily workflow writes versions,
licenses, and GitHub star counts to packages/facts.json. The workflow uses npm
metadata, GitHub releases, and GitHub repository metadata. Do not edit this file
by hand.
The facts workflow runs at 02:17 UTC. It uses the workflow's built-in
GITHUB_TOKEN for authenticated GitHub API requests, so it does not need a
personal access token. The updater reuses each response for packages that share
a repository and commits only when a value changes.
Stars come from source.url. For community versions and licenses, the first
npm distribution takes priority. When an entry has no npm distribution, the
updater uses its first GitHub release distribution. GitHub repository metadata
supplies a license when registry metadata does not.
For local updates, set GITHUB_TOKEN and run the updater from an OpenTUI
checkout:
cd packages/web
GITHUB_TOKEN="$(gh auth token)" \
bun scripts/update-package-facts.ts ~/src/opentui-index/packagesInclude the generated packages/facts.json change when you add or remove a
package. Do not edit its values directly.
Continuous integration checks all community and first-party IDs together. It also checks that each npm package and source repository exists.
Run the same schema check from an OpenTUI checkout:
cd packages/web
bun scripts/validate-packages.ts ~/src/opentui-index/packagesThe facts workflow runs once each day and commits only when a fact changes. The
website rebuilds once each day and on each OpenTUI push. The package appears at
opentui.com/packages/<id> after the next build.