{"id":29408780,"url":"https://github.com/lirena00/compadcn","last_synced_at":"2025-07-29T15:37:08.348Z","repository":{"id":300465907,"uuid":"1002530499","full_name":"lirena00/compadcn","owner":"lirena00","description":"compadcn is a modern CLI wrapper around shadcn-ui that adds presets, remove support, linting, and an interactive TUI for blazing-fast component workflows.","archived":false,"fork":false,"pushed_at":"2025-07-10T18:06:48.000Z","size":81,"stargazers_count":26,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-11T00:43:38.278Z","etag":null,"topics":["cli","command-line-tool","developer-tools","frontend","nextjs","shadcn","shadcn-ui","terminal","typescript"],"latest_commit_sha":null,"homepage":"https://compadcn.lirena.in/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lirena00.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-15T17:04:14.000Z","updated_at":"2025-07-10T18:03:02.000Z","dependencies_parsed_at":"2025-06-21T21:44:47.657Z","dependency_job_id":null,"html_url":"https://github.com/lirena00/compadcn","commit_stats":null,"previous_names":["lirena00/compadcn"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lirena00/compadcn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lirena00%2Fcompadcn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lirena00%2Fcompadcn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lirena00%2Fcompadcn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lirena00%2Fcompadcn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lirena00","download_url":"https://codeload.github.com/lirena00/compadcn/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lirena00%2Fcompadcn/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264719240,"owners_count":23653542,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","command-line-tool","developer-tools","frontend","nextjs","shadcn","shadcn-ui","terminal","typescript"],"created_at":"2025-07-11T03:07:35.246Z","updated_at":"2025-07-11T03:07:38.102Z","avatar_url":"https://github.com/lirena00.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# compadcn\n\nA powerful CLI tool for installing and managing ShadCN UI components with preset functionality.\n\n## Features\n\n- **Easy component installation** - Add ShadCN components with a single command\n- **Smart linting** - Find and remove unused components from your project\n- **Import cleanup** - Automatically removes imports when components are deleted\n- **Dependency removal** - Optionally remove unused dependencies when components are deleted\n- **Custom presets** - Create and save your own component collections\n\n## Installation\n\n```bash\nnpm install -g compadcn\n# or\npnpm add -g compadcn\n# or\nyarn global add compadcn\n```\n\n## Commands\n\n### `compadcn add [components...]`\n\nAdd ShadCN components to your project.\n\n```bash\n# Interactive mode - select components from a non installed components list\ncompadcn add\n\n# Add specific components\ncompadcn add button card dialog\n```\n\n### `compadcn remove [components...]`\n\nRemove ShadCN components from your project.\n\n```bash\n# Interactive mode - select installed components to remove\ncompadcn remove\n\n# Remove specific components\ncompadcn remove button card\n```\n\n**Features:**\n\n- Interactive removal with confirmation\n- Dependency conflict detection\n- Automatic import cleanup from your codebase\n- Optional dependency removal\n- Validates internal dependencies before removal\n\n### `compadcn lint`\n\nFind and remove unused ShadCN components from your project.\n\n```bash\ncompadcn lint\n```\n\n**Features:**\n\n- Scans your entire codebase for component usage\n- Identifies unused components\n- Option to automatically remove unused components\n- Provides removal commands for manual cleanup\n\n### `compadcn preset`\n\nManage component presets - collections of commonly used components.\n\n```bash\n# Interactive preset manager\ncompadcn preset\n```\n\n#### Preset Subcommands\n\n```bash\n# List all available presets\ncompadcn preset list\ncompadcn preset list --builtin    # Show only builtin presets\ncompadcn preset list --custom     # Show only custom presets\n\n# Show components in a preset\ncompadcn preset show core\ncompadcn preset show \"My Custom Preset\"\n\n# Install all components from a preset\ncompadcn preset install dashboard\ncompadcn preset install mobile\n\n# Create a custom preset\ncompadcn preset create \"my-preset\" button card input\ncompadcn preset create \"my-preset\" --description \"My custom components\"\ncompadcn preset create \"my-preset\" --base core,form  # Extend multiple existing presets\ncompadcn preset create \"dashboard-mobile\" --base dashboard,mobile --description \"Mobile dashboard components\"\n\n# Delete a custom preset\ncompadcn preset delete \"my-preset\"\n```\n\n## Requirements\n\n- Node.js 18.0.0 or higher\n- A ShadCN project with `components.json` file\n- Package manager: npm, pnpm, yarn, or bun\n\n## How It Works\n\n1. **Component Detection**: Reads your `components.json` file to understand your project structure\n2. **Package Manager Detection**: Automatically detects your package manager from lock files\n3. **Smart Installation**: Uses the appropriate package manager to install components\n4. **Usage Scanning**: Analyzes your codebase to find component usage patterns\n5. **Dependency Management**: Handles both external and internal component dependencies\n\n## File Structure\n\ncompadcn works with the standard ShadCN project structure:\n\n```\nyour-project/\n├── components.json          # ShadCN configuration\n├── src/\n│   └── components/\n│       └── ui/             # Components directory\n│           ├── button.tsx\n│           ├── card.tsx\n│           └── ...\n└── package.json\n```\n\n## Custom Presets\n\nCustom presets are stored in `~/.compadcn/custom-presets.json` and can be:\n\n- Created from scratch\n- Based on existing presets\n- Shared across projects\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flirena00%2Fcompadcn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flirena00%2Fcompadcn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flirena00%2Fcompadcn/lists"}