with one click
coss-ui-sync
// Sync COSS UI components from shadcn registry and fix imports to relative paths
// Sync COSS UI components from shadcn registry and fix imports to relative paths
Create a bug report issue on GitHub
Create a feature request issue on GitHub
Run readiness checks, fix issues, and create a PR
Scaffold a new Neovate Desktop plugin across main, shared, and renderer
E2E test the Electron auto-updater with local builds, screen recording, and verification. Use when asked to "test auto update", "verify updater", or "record update demo". macOS only.
| name | coss-ui-sync |
| description | Sync COSS UI components from shadcn registry and fix imports to relative paths |
| disable-model-invocation | true |
| argument-hint | <components...> (e.g. @coss/ui @coss/colors-neutral, or accordion button) |
This project is an Electron app with the renderer source at src/renderer/src/. The shadcn CLI generates files with @/ alias imports, but this project uses relative imports in renderer code. After running the CLI, a post-processing script converts @/ → relative paths.
Ensure tsconfig.json has the paths alias that shadcn needs to resolve output paths. Read the current tsconfig.json and add the paths entry if missing:
// tsconfig.json compilerOptions must include:
"paths": { "@/*": ["./src/renderer/src/*"] }
If compilerOptions doesn't exist, add it. If paths already contains the entry, skip this step.
Run the shadcn CLI to add components:
bunx --bun shadcn@latest add <components...> --overwrite
Run the import fixer to convert @/ alias imports to relative imports:
bun .claude/skills/coss-ui-sync/scripts/fix-imports.ts
Remove the paths entry from tsconfig.json that was added in step 1. The final tsconfig.json should not contain the paths key in compilerOptions. If compilerOptions is left empty, remove it too.
Report what was added and how many files were fixed.
paths alias is only needed temporarily for the shadcn CLI to resolve where to place files. It must be removed afterward so it doesn't conflict with the project's actual TypeScript config.components.json at project root uses @/ aliases. This is intentional — shadcn needs them to place files in src/renderer/src/.@coss registry (https://coss.com/ui/r/{name}.json) provides Base UI components. Use @coss/ prefix for Base UI variants (e.g. @coss/accordion, @coss/ui for all).--overwrite to avoid interactive prompts.@coss/colors-* packages, the CLI may prompt for confirmation about overwriting styles — pipe echo "y" if needed.