# Base UI Desk > A move of one Radix UI file - a shadcn ui wrapper, the app code that uses the wrappers, or a hand-rolled Radix > composition - to Base UI, following the mapping tables of the skill from shadcn-ui/ui. Paste the file (or drop it); > the browser masks comments, strings, template literals and regex literals and rewrites the mechanical layer in its > own Base UI copy: both Radix import forms to one @base-ui/react subpath, the part renames (Overlay to Backdrop, > Content to Popup or Panel, tabs Trigger to Tab, menu Label to GroupLabel, select Viewport to List, slider Range to > Indicator, callable single-part roots, Radio and Toggle items), positioned popups to Portal > Positioner > Popup, > asChild to render, React.ComponentProps to Part.Props, the data-state selectors and --radix variables, and the > call-site props with a 1:1 mapping. It flags the animation idiom, dismiss and focus callbacks, the parts Base UI > lacks and the behavior changes, and leaves cmdk, vaul, sonner, input-otp, react-day-picker and recharts alone. > Metered runs write the review (exported as the .migration/.md report) and the whole -base file. Built on > the SkillSafe skill @shadcn/migrate-radix-to-base, from shadcn-ui/ui (MIT). > An independent tool - not affiliated with or endorsed by Base UI, MUI, Radix UI, WorkOS or shadcn/ui. https://base-ui-desk.skillsafe.ai/ ## What is free - The scan: every finding with an id (B1, B2, ...), an area, a severity (blocker, major, minor), the line, where it sits, what the page saw, the fix, and whether the page migrated it, left it, or left it alone. - The skill's migration layers marked from the scan, and the progressive-migration steps (shadcn info, the -base file, the leftover sweep). - The Base UI copy itself as -base.tsx, findings as CSV, everything as JSON. ## The metered lanes Two tasks on gpt-terra, metered per run, routed by `task`. Input string fields: `task` (review or rewrite), `unit`, `code`, `carry` (rewrite only: the review's decisions) and `facts` (the page's scan). - `review` replies with `summary`, `findings` (confirmed ids with the issue, the fix and the Base UI lines), `cleared`, `extra` (up to five issues a scan cannot see, on real lines), `plan` (the steps in order, naming their ids), `behavior` (the behavior changes, flagged), `verify` (the hand checks) and `caveats`. - `rewrite` replies with `summary`, `code` (the whole Base UI file), `changes`, `kept` and `caveats`. The page holds every reply to its scan: each id accounted for exactly once, every component and the whole file kept, the non-Radix imports untouched, and the rewritten file re-scanned - a Radix part left behind, or a new one, is flagged. ## Links - API tutorial: https://base-ui-desk.skillsafe.ai/api.html - Source skill: https://skillsafe.ai/skill/@shadcn/migrate-radix-to-base