
Company News
Free Business Plan Upgrades for Open Source Maintainers
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.
The command-line interface for Simple UI - add beautiful components to any React project.
npm install -g @simple-ui/cli
# or
pnpm add -g @simple-ui/cli
# or
yarn global add @simple-ui/cli
npm install @simple-ui/cli
# or
pnpm add @simple-ui/cli
# or
yarn add @simple-ui/cli
simple-ui init
This command will:
components.json configuration filesrc/components/ui, src/lib)utils.ts file with the cn helper function# Add a single component
simple-ui add button
# Add multiple components at once
simple-ui add button card badge input
# See what's available
simple-ui list
Install the required dependencies shown after running init:
npm install clsx tailwind-merge class-variance-authority @radix-ui/react-slot
initInitialize Simple UI in your project.
simple-ui init [options]
Options:
--cwd <path> - The working directory. Defaults to current directory-y, --yes - Skip confirmation promptsExample:
# Initialize in current directory
simple-ui init
# Initialize with confirmation skip
simple-ui init --yes
# Initialize in specific directory
simple-ui init --cwd ./my-project
addAdd one or more components to your project.
simple-ui add [components...] [options]
Options:
--cwd <path> - The working directory. Defaults to current directory-y, --yes - Skip confirmation prompts-o, --overwrite - Overwrite existing files without asking-p, --path <path> - Custom path for components (default: src/components/ui)Examples:
# Add a single component
simple-ui add button
# Add multiple components
simple-ui add button card badge
# Overwrite existing files
simple-ui add button --overwrite
# Add to custom path
simple-ui add button --path ./components/ui
# Skip confirmations
simple-ui add button card --yes
listList all available components with their categories and dependencies.
simple-ui list
Output example:
📦 Available Components:
Form:
• button (deps: @radix-ui/react-slot, class-variance-authority)
• input
Navigation:
• animatedtabs (deps: framer-motion)
Layout:
• card
Display:
• badge (deps: class-variance-authority)
Usage: simple-ui add <component-name>
Example: simple-ui add button card
| Component | Description | Category | Dependencies |
|---|---|---|---|
button | A versatile button component with multiple variants | Form | @radix-ui/react-slot, class-variance-authority |
input | A styled input field component | Form | - |
card | A flexible card container with header, content, and footer | Layout | - |
badge | Small status indicators and labels | Display | class-variance-authority |
animatedtabs | Animated tab navigation component | Navigation | framer-motion |
The CLI uses a components.json file to configure your project:
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": false,
"tsx": true,
"tailwind": {
"config": "tailwind.config.js",
"css": "src/index.css",
"baseColor": "slate",
"cssVariables": true,
"prefix": ""
},
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"iconLibrary": "lucide"
}
Most components require these base dependencies:
npm install clsx tailwind-merge
Individual components may require additional dependencies:
class-variance-authority@radix-ui/react-slotframer-motionEnsure your tailwind.config.js includes the components directory:
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./src/**/*.{js,ts,jsx,tsx,mdx}",
// Add other paths as needed
],
theme: {
extend: {},
},
plugins: [],
};
After running simple-ui init, your project structure will look like:
your-project/
├── src/
│ ├── components/
│ │ └── ui/ # Components added here
│ │ ├── button.tsx
│ │ ├── card.tsx
│ │ └── ...
│ └── lib/
│ └── utils.ts # Utility functions
├── components.json # Configuration file
└── package.json
After adding components, import and use them in your React components:
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
export function MyComponent() {
return (
<Card>
<CardHeader>
<CardTitle>Hello World</CardTitle>
</CardHeader>
<CardContent>
<Button variant="default">Click me</Button>
</CardContent>
</Card>
);
}
If you get "command not found" after global installation:
npm uninstall -g @simple-ui/cli && npm install -g @simple-ui/clinpx @simple-ui/cli listMake sure you have path aliases configured in your tsconfig.json:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
}
}
For Vite projects, also add to vite.config.ts:
import path from "path";
import { defineConfig } from "vite";
export default defineConfig({
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
});
Ensure you have:
Contributions are welcome! Please see our main Contributing Guide.
Licensed under the MIT license.
FAQs
Simple UI Component Library CLI - Add components to any project
We found that aapaiui demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.