@expokit/cli

中文文档
0.5.7发布于 2026/11/12MITES Module零依赖近 30 天下载 3584

Animated UI components for Expo and React Native — a shadcn-style CLI that copies buttons, inputs, cards, charts and full screens into your app. Independent; not Expo's discontinued ExpoKit SDK.

原始使用文档
文档目录5 节
  1. Usage
  2. Keeping up to date
  3. Docs
  4. Security
  5. License

@expokit/cli

npm CI OpenSSF Scorecard Dependencies License

The CLI for ExpoKit — animated UI components for Expo and React Native. It copies the component source into your app (like shadcn/ui), so you own the code.

ExpoKit charts on iPhone: scrubbing an area chart and a bar chart, dragging a gauge, tapping through a donut

ExpoKit on iPhone in dark and light mode: payment card, flip card, dashboard block and checkout block
Payment card and flip card are free; the dashboard and checkout screens are Pro blocks.

  • Buttons, inputs, cards, sheets, tabs, charts and full screens, all animated, with light and dark mode
  • Built for touch: springs, drag gestures and haptics, on iOS, Android, web and in Expo Go
  • You own the code: plain typed files in your app, with no runtime library to lock you in

Browse every component with live previews → · Try them on your phone in Expo Go →

Usage

In your Expo app's folder:

npx @expokit/cli@latest init
npx @expokit/cli@latest add button otp-input
import { Button } from '@/components/ui/button';

<Button onPress={save}>Save</Button>;

See every component: npx @expokit/cli@latest add --list

Already have a Skeleton.tsx (or any file the kit would clash with)? add skips that item, says why, and adds the rest. Put the kit's copy next to yours with --dir:

npx @expokit/cli@latest add skeleton --dir src/components/kit   # import from "@/components/kit/ui/skeleton"

init asks for your brand colour, font, radius and light / dark (or takes --brand, --font, --radius, --scheme; --yes skips the questions) and writes lib/kit-theme.tsx, an <AppTheme> wrapper for your root layout.

Keeping up to date

components.json remembers a hash of every file add wrote. When a new CLI ships fixes:

npx @expokit/cli@latest diff toast      # your changes since install, and what changed upstream
npx @expokit/cli@latest update          # refresh every installed item

update refreshes the files nobody touched and stops on a file you patched, showing the diff, so your fix is never silently replaced. update toast --force takes upstream anyway.

Docs

Everything else — live previews, props, installation, theming, Pro, AI / MCP setup and help — is on expokit.in.

Security

  • No dependencies, no install scripts.
  • Anonymous install counts only — after a successful add, the CLI sends the item's name ({"items":["button"]}) to expokit.in so the site can show how often each component is installed. No token, files, paths or machine details; repeat adds count once a day. Turn it off with DO_NOT_TRACK=1 or EXPO_KIT_TELEMETRY=0; it never runs in CI, --dry-run or update.
  • Writes only inside your app — components.json, the @/* alias in tsconfig.json and the component files. --dry-run shows every change first; add and update never overwrite a file you changed unless you pass --force (the hashes in components.json only ever mark a file as untouched; their paths are never read or written), and never replaces one that differs only by case (Skeleton.tsx vs skeleton.tsx), a symlink or a folder, not even with --force. paths in components.json that point outside the app are refused, and aliases must be plain import aliases (they are written into the copied files' imports). A file that is a symlink is never written through; a symlinked folder inside the app is still followed, so a cloned repo that links a folder elsewhere can send writes there.
  • Free components need no network to install — they ship inside this package. Pro components are downloaded over HTTPS from expokit.in; your token is stored readable only by you, sent only to that site and never through a redirect. In scripts, pipe it to login or set EXPO_KIT_TOKEN (--token leaves it in your shell history).
  • Runs one command: npx expo install for the packages a component needs — without EXPO_KIT_TOKEN in its environment, so install scripts never see your token.

Report a vulnerability privately: SECURITY.md.

License

MIT

版本与发布记录

@expokit/cli 共发布 16 个版本,首次发布于 2026/10/17;过去 12 个月发布了 16 个版本。

版本发布日期距今
0.5.7latest2026/11/121 天前
0.5.62026/11/103 天前
0.5.52026/11/0311 天前
0.5.42026/11/0211 天前
0.5.32026/11/0112 天前
0.5.22026/10/3113 天前

关于 @expokit/cli 的常见问题

@expokit/cli 是什么?

Animated UI components for Expo and React Native — a shadcn-style CLI that copies buttons, inputs, cards, charts and full screens into your app. Independent; not Expo's discontinued ExpoKit SDK.

如何安装 @expokit/cli?

在项目目录运行 npm install @expokit/cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 expo-kit,可以用 npx expo-kit 直接运行。

@expokit/cli 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/expokit__cli 是否存在。

@expokit/cli 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@expokit/cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@expokit/cli 可以商用吗?

@expokit/cli 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@expokit/cli 的下载量有多少?

根据 npm 官方下载统计,@expokit/cli 在 2026/10/14 – 2026/11/12 这 30 天内被下载 3,584 次,日均约 119 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@expokit/cli 还在维护吗?

最新版本 0.5.7 发布于 2026/11/12(1 天前);至今共发布 16 个版本,其中过去 12 个月发布了 16 个;首次发布于 2026/10/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。