dualkit

agent
Security Audit
Warn
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Warn
  • fs module — File system access in action/action.yml
  • process.env — Environment variable access in apps/site/app/api/feedback/route.ts
  • network request — Outbound network request in apps/site/app/api/feedback/route.ts
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Free, open-source tools for products that ship in Arabic and English: agent skills, Gulf formats, a bilingual design system, and a check that finds Arabic and RTL bugs on any page.

README.md

Dualkit. Build for the Gulf. In both directions.

dualkit.dev  Docs  Install the skills  Check a page  Releases

Listed in the Claude plugin directory

Free, open-source tools for products that ship in Arabic and English. v0.1 beta.

The problem

Ask Claude Code or Cursor for a bilingual screen and you get the same three bugs:

  • A UAE phone number inside Arabic text renders backwards.
  • A Hijri date comes out a day wrong near midnight.
  • A code typed in Arabic digits fails validation.

Dualkit fixes them at the source, in the agent and in the code, and checks any page for the ones that got through.

Claude Code builds an Arabic checkout. Without Dualkit the phone number renders backwards; with the skills loaded it is isolated and reads left to right.

What it is Install
Skills Four agent skills for Claude Code and Cursor, listed in the Claude plugin directory: RTL layout, Arabic and Latin type pairing, Gulf formats, bilingual copy /plugin marketplace add dualkit/dualkit
Format Six Gulf currencies, Umm al-Qura dates, Arabic numerals, UAE and Saudi phone, Emirates ID, Gulf IBAN. No dependencies npm i @dualkit/format
Starter A bilingual design system to fork: one token file feeds CSS, Tailwind and Figma, plus eight React components From the release
Check Audit any page for Arabic and RTL bugs, with a shareable Gulf-ready report npx dualkit check <url>

Proof

Fresh agents built the same bilingual checkout three times without the skills and three times with them.

Check Without With
Phone and IBAN isolated inside Arabic text 0/3 3/3
Arabic type overrides (line height, size, tracking) 0/3 3/3
Digit system pinned, not left to defaults 1/3 3/3

Three runs is a smoke test, not a benchmark. The task, the scorer and every run are in evals/payment-summary.

Skills

The skills are listed in the Claude plugin directory, so you can install them from there in Claude Code, Cowork and the Claude apps. Or, in Claude Code:

/plugin marketplace add dualkit/dualkit
/plugin install dualkit@dualkit

In any agent that reads skills (Claude Code, Cursor, Codex and others):

npx skills add dualkit/dualkit

In Cursor, copy cursor/rules into your project's .cursor/rules. The rules are generated from the same source as the skills, and CI fails if they drift.

Format

npm i @dualkit/format
import { formatMoney, formatHijri, parseUaePhone } from '@dualkit/format'

formatMoney(1234.5, { currency: 'AED', locale: 'ar', numerals: 'arab' }) // ١٬٢٣٤٫٥٠ د.إ
formatHijri(new Date('2026-02-18'), { timeZone: 'Asia/Riyadh' })          // 1 Ramadan 1447 AH
parseUaePhone('٠٥٠ ١٢٣ ٤٥٦٧')                                            // { ok: true, value: { e164: '+971501234567', type: 'mobile' } }

Full API in the package README.

Starter

npm i @dualkit/starter

Then in your CSS:

@import '@dualkit/starter/tokens.css';
@import 'tailwindcss';
@import '@dualkit/starter/theme.css';

<html lang="ar" dir="rtl"> switches to Arabic type, and data-theme="dark" to dark mode. More in the starter README.

The eight components install with the shadcn CLI, as source you own:

npx shadcn@latest add https://dualkit.dev/r/amount.json

Swap amount for button, date-display, digit-input, field, sheet, tabs or toast.

Check

Point one command at any page, local or live. It opens it in Chromium, runs 20 Arabic and right-to-left rules, and writes a report with a score out of 100 and every bug marked on a screenshot.

npx [email protected] install chromium   # once
npx dualkit check https://your-site.com/ar
A Dualkit check report for an Arabic checkout. It scores 0 out of 100, with 11 problems split across bidi, layout, icons, type and content, and evidence cards that ring an order code and a phone number that will render out of order.

In CI, uses: dualkit/dualkit/action@main scores every pull request and uploads the report (action/README.md). Every rule, why it matters and how to fix it is in RULES.md.

Contributing

The most useful help right now:

  • Read Arabic? Review the skill rules in plugin/skills/ and comment wherever something reads wrong. See #6.
  • Shipping in the Gulf? Tell us where it breaks in Discussions.
  • Want a first PR? Saudi phone numbers (#2) and the other Gulf currencies (#3) are small and well scoped.

Repo

Path Contents
packages/format The format library, with its tests
packages/rules The 20 check rules and the page reader, with their tests
packages/cli The dualkit CLI and its report
action The GitHub Action that runs the check on pull requests
skills The four skills (SKILL.md each)
cursor/rules Cursor rules generated from skills
packages/skills The generator and the tests that keep skills, rules and the plugin manifest in step
apps/site dualkit.dev (Next.js)
design Figma specs, tokens and the motion prototype the site was built from
evals Baseline evaluations for the skills
npm install
npm test
npm run dev

Status

This is a beta. No native Arabic reviewer has checked the Arabic rules yet; that happens before 1.0. If any Arabic reads wrong, please open an issue.

Made by Sam Santos. MIT licensed.

Reviews (0)

No results found