@getweini/cli

Add editable Vue and Nuxt UI components with TypeScript and Tailwind CSS.
997
Install
npm install @getweini/cli
Latest Version:0.4.3
License:MIT
Last Updated:Oct 19, 2026
Links: npm
Maintainer: sousaivan

Weini UI CLI

Add Vue UI components to your app, then edit their code to make them your own. Weini works with Vue 3 and Nuxt, using TypeScript and Tailwind CSS.

Browse components · Getting started

Add your first component

You need an existing Vue 3.5+ app built with Vite, or a Nuxt 3/4 app. Use Node.js 22+ or Bun 1.3+. Starting from scratch? Follow the Vue guide or Nuxt guide first.

Open a terminal in your app's folder (the one containing package.json), then run:

npx @getweini/cli@latest init
npx @getweini/cli@latest add button

With Bun, replace npx with bunx --bun.

Setup asks you to choose a theme, optional font, and form provider. Pick Vee Validate to use useForm with Zod, Yup, Kern, Valibot, ArkType, or another Standard Schema package. Pick Kern to use useKernForm with a Kern schema. The CLI installs the selected dependencies and editable Form source. Vee Validate 5 Standard Schema support currently uses 5.0.0-beta.1. The CLI uses your project's lockfile to choose npm, pnpm, Yarn or Bun.

The Button source file is copied into your app. The CLI prints the exact import path. For example, in a Vue app with src/App.vue:

<script setup lang="ts">
import Button from './components/ui/button/Button.vue'
</script>

<template>
  <Button>Hello, Weini!</Button>
</template>

You can now edit Button.vue to change its appearance. In Nuxt, the installer places the same editable source at app/components/ui/button/index.vue, so <UiButton> is auto-imported without an explicit import. Button's reusable prop types come from @getweini/vue; adding Button copies no separate style or type files.

Everyday commands

Run these from your app's folder. No global installation is needed.

Command What it does
npx @getweini/cli@latest add Browse and choose components
npx @getweini/cli@latest add input Add another component
npx @getweini/cli@latest doctor Check your setup and explain any problems
npx @getweini/cli@latest outdated Check for component and shared-package updates
npx @getweini/cli@latest update Choose component updates
npx @getweini/cli@latest setup style Change the theme setup
npx @getweini/cli@latest setup font Add or remove the optional font
npx @getweini/cli@latest setup form Choose or change the form provider

For a non-interactive setup, run npx @getweini/cli@latest init --form vee --form-schema zod --yes or --form kern. Then call useForm({ initialValues, validationSchema }) or useKernForm({ initialValues, schema }) in the page that renders the installed Form. Give each control a name matching the schema and handle validated values with <Form @submit="save">. See the complete form examples. A control still works by itself with v-model outside Form.

Keep your changes safe

Component files belong to your app. Updates stop if you have edited a file, so your work is not silently replaced. The weini.json file tracks what was installed; keep it in version control.

To preview an update, including the shared Vue package:

npx @getweini/cli@latest update --foundation --dry-run

Then remove --dry-run to apply it. Existing incompatible dependencies are reported instead of silently upgraded. Setup preserves supported existing configuration; if a configuration is too dynamic to edit safely, it prints the changes for you to make manually.

See ownership and updates for troubleshooting, compatibility and how source updates differ from package updates.

Optional flags

  • --cwd path: work in another app folder.
  • --style default or --style custom: choose built-in or editable theme tokens.
  • --font nebula or --font none: choose the optional font or keep your own.
  • --form none, --form vee, or --form kern: choose form state support.
  • --form-schema zod|yup|kern|valibot|arktype|custom: choose a Vee schema package.
  • --dry-run: preview changes without writing files or installing packages.
  • --yes: apply choices without interactive prompts; review them first.
  • --registry URL: use a private or test component registry.

Documentation · Button examples · MIT license

Related Packages

@getweini/vue

Shared behavior and styles for editable Weini UI components in Vue 3 and Nuxt.

659
@hina-ui/vue

The design system behind Hikarinagi: Vue 3 components built on Tailwind CSS v4.

4,608 10
ui-thing

CLI used to add Nuxt components to a project

15,227 6
@doitrix/ui

The Doitrix component registry — professional Vue 3 components you install into...

1,423
@aezakmiproject/hesoyam

Hesoyam design system — Vue 3 components distributed as Tailwind CSS v4 source,...

551 1

Version History

Version Released License
0.4.3 MIT
0.4.1 MIT
0.4.0 MIT
0.3.0 MIT
0.1.1 MIT