Convert
Run it in a clean repo. It makes a new branch, swaps left and right for start and end, keeps numbers reading the right way and moves every English string into a translation file.
We ran dualkit convert on TailAdmin, an open-source admin dashboard, and an agent with the dualkit-convert skill finished it. Drag across any screen to see the real result.


Convert works on a new branch. It takes English screenshots first, then rewrites what it can rewrite safely and lists everything else for your agent.
$ npx dualkit@beta convert --mode bilingualTook 36 English baseline screenshots.Created the branch dualkit/bilingual.Running npm install.Committed 96 changed files on dualkit/bilingual.102 things are left to finish. 0 files were skipped.
No rewrite of your app, no new components. Convert changes the lines that need to change and leaves the rest alone.
<ul className="mt-2 space-y-1 ml-9"><ul className="mt-2 space-y-1 ms-9"><span className="flex items-center gap-1 ml-auto"><span className="flex items-center gap-1 ms-auto">Dualkit makes no model calls. Your agent drafts the Arabic with the dualkit-convert skill, and each string stays marked as a draft until a person checks it.
| Key | English | Arabic | Status |
|---|---|---|---|
| app-sidebar.dashboard | Dashboard | لوحة التحكم | drafted |
| ecommerce-metrics.customers | Customers | العملاء | drafted |
| monthly-sales-chart.monthly-sales | Monthly Sales | المبيعات الشهرية | drafted |
| monthly-target.view-more | View More | عرض المزيد | drafted |
| recent-orders.recent-orders | Recent Orders | أحدث الطلبات | drafted |
Run it in a clean repo. It makes a new branch, swaps left and right for start and end, keeps numbers reading the right way and moves every English string into a translation file.
Your agent fills each string with the dualkit-convert skill and fixes the places convert listed. Every drafted string is marked for a native speaker to check.
It compares every English page with the screenshot from before, runs the 34 check rules on every Arabic page, runs your tests and writes a report.
Convert rewrites only what it can rewrite safely. On TailAdmin the agent did the rest in two commits, and most of it is moving into convert.
Text passed through props, kept in data arrays or set in chart options. Convert 0.1 missed these.
Twelve files used the plain Next.js link, which sends an Arabic visitor back to English. The agent swapped in the locale link.
Arabic month names, the value axis on the right and Arabic type inside ApexCharts and FullCalendar.
The agent drafted every string. Each one is marked for a native speaker to check before you ship.
TailAdmin is made by TailAdmin and MIT licensed. The converted app lives on the dualkit/bilingual branch.