cordierite

เชื่อมต่อแอป React Native ที่รองรับ Cordierite เข้ากับเครื่องของคุณและควบคุมจากเทอร์มินัลโดยใช้เครื่องมือที่แอปลงทะเบียนไว้ ซึ่งมีประโยชน์สำหรับเอเจนต์ สคริปต์ และ...

npx skills add https://github.com/callstackincubator/cordierite --skill cordierite

Cordierite

Cordierite is a CLI and host workflow for connecting to a Cordierite-enabled React Native app, discovering its registered tools, invoking those tools from the terminal, and ending the session cleanly after use.

Agent workflow

  1. Run cordierite session --json. The response includes data.sessions (each entry has session_id, status, endpoint info, etc.). If sessions is empty, no Cordierite host is registered for this machine (for this registry).
  2. If you need a new session for a device, follow Establish a session below. Record host.session_id from the host JSON—you must pass it to tools and invoke.
  3. After the user opens the deep link on the device and the app connects, confirm with cordierite session --session-id <session_id> --json until data.selected reflects an active connection (or re-check session --json and infer from the listed session).
  4. cordierite tools --session-id <session_id> --json — list tools registered in the app.
  5. cordierite tools --session-id <session_id> <tool-name> --json — inspect one tool’s input/output schema before calling it.
  6. cordierite invoke --session-id <session_id> <tool-name> --input '{"key":"value"}' --json — invoke the tool with JSON args.

Establish a session

Start the host with --json using the same TLS key and app URL scheme as the project (see Setup if you are wiring Cordierite into an app). The CLI generates the host certificate automatically from the resolved local IP. If the project does not already have a trusted host key, create one first with cordierite keygen in an interactive terminal and add the printed fingerprint to the app’s cliPins. If the default listen port is in use, add --port <port>.

cordierite host --tls-key /path/to/key.pem --scheme myapp --json

Run cordierite host in the background. It blocks; keep the foreground shell free for session, tools, and invoke.

From the host JSON output, use at least:

  • host.deep_link — full URL (e.g. myapp:///?cordierite=…) for the app to open.
  • host.session_id — pass this as --session-id to tools / invoke / session --session-id.

Then:

  1. Give the user the deep link (or QR from interactive host UI on a TTY) so they can open it on a device or simulator.
  2. Or open it yourself when you know the target (e.g. iOS Simulator xcrun simctl openurl booted '<url>', Android via adb, or device automation skills).

After the app opens the link and claims the session, poll cordierite session --session-id <session_id> --json (or session --json) until the session is active.

Terminate the connection

When the user wants to disconnect or stop Cordierite for that session: stop the matching background cordierite host process (end the job, SIGTERM, etc.). That tears down the host and the session. If several hosts run (e.g. different --port), stop the one that corresponds to the session_id you were using.

Declaring tools

The app must register tools before cordierite tools / cordierite invoke can do anything useful. Define schemas with Zod and register with registerTool:

import { registerTool } from "@cordierite/react-native";
import { z } from "zod";

const echoInput = z.object({
  value: z.unknown(),
});

const echoOutput = z.object({
  echoed: z.unknown(),
});

registerTool(
  {
    name: "echo",
    description: "Return the input unchanged",
    inputSchema: echoInput,
    outputSchema: echoOutput,
    handler: async (args) => ({ echoed: args.value }),
  },
);

Notes

  • Use --json for structured CLI output in agent flows.
  • cordierite keygen is the normal setup command for new host keys. It is interactive-only in v1: it writes a PEM private key and prints the exact sha256/... fingerprint the app should trust.
  • tools and invoke always require --session-id (the value from host.session_id or sessions[].session_id).
  • Prefer cordierite session --json first rather than assuming a session exists.
  • If sessions is empty or tools / invoke fail with connection or session errors, establish a session (host running, deep link opened on the correct device).
  • If the app registers no tools, cordierite tools returns an empty list.
  • You may run multiple cordierite host processes (e.g. different --port for different devices); use the session_id that belongs to the host you care about.

Setup

For project integration guidance, see setup.md.

Skills เพิ่มเติมจาก callstackincubator

agent-device
callstackincubator
ทำงานอัตโนมัติสำหรับการโต้ตอบกับแอป iOS และ Android ด้วยการค้นหาแบบสแนปช็อตและการเล่นซ้ำแบบเลือกโดยใช้ตัวเลือก รองรับ iOS simulator/อุปกรณ์และ Android emulator/อุปกรณ์พร้อมระบบอัตโนมัติแบบผูกเซสชัน โหมดเดมอนระยะไกลแบบหลายผู้เช่า และการแยกขอบเขตอุปกรณ์สำหรับเวิร์กโฟลว์ QA คำสั่งหลัก: snapshot สำหรับการค้นหา UI พร้อม refs, press / fill / scroll สำหรับการโต้ตอบ, open / close สำหรับวงจรชีวิตแอป, install / reinstall สำหรับการปรับใช้ไบนารี รวมถึงยูทิลิตี้สำหรับการบันทึก, การตรวจสอบเครือข่าย,...
official
dogfood
callstackincubator
สำรวจและทดสอบแอปมือถือบน iOS/Android อย่างเป็นระบบด้วย agent-device เพื่อค้นหาบั๊ก ปัญหาด้าน UX และปัญหาอื่นๆ ใช้เมื่อถูกขอให้ dogfood, QA,…
official
react-devtools
callstackincubator
ตรวจสอบและโปรไฟล์โครงสร้างต้นไม้ของคอมโพเนนต์ React Native จาก agent-device ใช้สำหรับประสิทธิภาพของ React Native, การทำโปรไฟล์, props, state, hooks, สาเหตุการเรนเดอร์, ความช้า…
official
react-devtools
callstackincubator
CLI ของ React DevTools สำหรับเอเจนต์ AI ใช้เมื่อผู้ใช้ขอให้คุณดีบักแอป React หรือ React Native ขณะรันไทม์ ตรวจสอบ props/state/hooks ของคอมโพเนนต์ วินิจฉัย…
official
github
callstackincubator
ระบบอัตโนมัติของเวิร์กโฟลว์ GitHub ผ่าน gh CLI สำหรับ pull requests, stacked PRs และการจัดการ repository มีเวิร์กโฟลว์การรวม stacked PR: squash-merge PR แรก จากนั้น rebase และอัปเดต base branch สำหรับ PR ถัดไปในแต่ละชุด รวมถึงการตรวจจับข้อขัดแย้งและคำแนะนำในการแก้ไขด้วยตนเองเพื่อป้องกันความล้มเหลวที่เงียบระหว่างการรวมหลาย PR ครอบคลุมการดำเนินการหลักของ gh CLI: การสร้าง PR, การตรวจสอบสถานะ, การรวมแบบ squash/rebase และการจัดการ branch ปรับให้เหมาะสมสำหรับการใช้งานในบริบทต่ำโดยอาศัย gh CLI...
official
github-actions
callstackincubator
รูปแบบเวิร์กโฟลว์ GitHub Actions สำหรับการสร้างระบบคลาวด์ของ iOS simulator และ Android emulator สำหรับ React Native พร้อมอาร์ติแฟกต์ที่ดาวน์โหลดได้ ใช้เมื่อตั้งค่า CI build…
official
react-native-best-practices
callstackincubator
คู่มืออ้างอิงการปรับแต่งประสิทธิภาพแบบมีโครงสร้างสำหรับแอป React Native ครอบคลุม FPS, ขนาดบัณฑิต, TTI และหน่วยความจำ จัดเป็น 9 คู่มือ JavaScript/React (การทำโปรไฟล์, รายการ, แอนิเมชัน, หน่วยความจำ), 9 คู่มือการปรับแต่งแบบเนทีฟ (Turbo Modules, การทำเธรด, การทำโปรไฟล์) และ 9 คู่มือการรวมบัณฑิต (tree shaking, การแยกโค้ด, การวิเคราะห์ขนาด) แต่ละคู่มืออ้างอิงเป็นรูปแบบไฮบริดที่มีรูปแบบ/คำสั่งด่วน, การจัดอันดับผลกระทบ (CRITICAL/HIGH/MEDIUM) และคำอธิบายเชิงลึกพร้อมข้อกำหนดเบื้องต้นและทั่วไป...
official
react-native-brownfield-migration
callstackincubator
ให้กลยุทธ์การนำไปใช้แบบค่อยเป็นค่อยไปเพื่อย้ายแอป iOS หรือ Android ดั้งเดิมไปยัง React Native หรือ Expo โดยใช้ @callstack/react-native-brownfield สำหรับเริ่มต้น…
official