NEW Browse AI tools across categories — updated daily. See what's new →

Cordierite

Connect a Cordierite-enabled React Native app to your machine and drive it from the terminal using tools the app registers — useful for agents, scripts, and…

Version1.0.0
LicenseMIT
Token count~1,915
UpdatedJun 5, 2026

Install

Quick install

via npx skills · works with 57+ agents
npx skills add https://github.com/callstackincubator/cordierite/tree/HEAD/skills/cordierite
Or pick agent:
npx skills add callstackincubator/cordierite --skill cordierite --agent claude-code
npx skills add callstackincubator/cordierite --skill cordierite --agent cursor
npx skills add callstackincubator/cordierite --skill cordierite --agent codex
npx skills add callstackincubator/cordierite --skill cordierite --agent opencode
npx skills add callstackincubator/cordierite --skill cordierite --agent github-copilot
npx skills add callstackincubator/cordierite --skill cordierite --agent windsurf
More install options

Shorthand — useful for multi-skill repos:

npx skills add callstackincubator/cordierite --skill cordierite

Manual — clone the repo and drop the folder into your agent's skills directory:

git clone https://github.com/callstackincubator/cordierite.git
cp -r cordierite/skills/cordierite ~/.claude/skills/
How to use: Once installed, ask your agent to "use the cordierite skill" or describe what you want (e.g. "Connect a Cordierite-enabled React Native app to your machine and drive it from"). Requires Node.js 18+.

cordierite

Connect a Cordierite-enabled React Native app to your machine and drive it from the terminal using tools the app registers — useful for agents, scripts, and…

cordieriteby callstackincubator

Connect a Cordierite-enabled React Native app to your machine and drive it from the terminal using tools the app registers — useful for agents, scripts, and…

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

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

  • 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).
  • 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.
  • 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).
  • cordierite tools --session-id <session_id> --json — list tools registered in the app.
  • cordierite tools --session-id <session_id> <tool-name> --json — inspect one tool’s input/output schema before calling it.
  • 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:

  • 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.
  • 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.

More skills from callstackincubator

agent-deviceby callstackincubatorAutomate iOS and Android app interactions with snapshot-based discovery and selector-driven replay. Supports iOS simulators/devices and Android emulators/devices with session-bound automation, multi-tenant remote daemon mode, and device-scope isolation for QA workflows Core commands: snapshot for UI discovery with refs, press / fill / scroll for interactions, open / close for app lifecycle, install / reinstall for binary deployment Includes utilities for logging, network inspection,...dogfoodby callstackincubatorSystematically explore and test a mobile app on iOS/Android with agent-device to find bugs, UX issues, and other problems. Use when asked to dogfood, QA,…react-devtoolsby callstackincubatorInspect and profile React Native component trees from agent-device. Use for React Native performance, profiling, props, state, hooks, render causes, slow…react-devtoolsby callstackincubatorReact DevTools CLI for AI agents. Use when the user asks you to debug a React or React Native app at runtime, inspect component props/state/hooks, diagnose…githubby callstackincubatorGitHub workflow automation via gh CLI for pull requests, stacked PRs, and repository management. Provides stacked PR merge workflow: squash-merge the first PR, then rebase and update base branch for each subsequent PR in the chain Includes conflict detection and manual resolution prompts to prevent silent failures during multi-PR merges Covers core gh CLI operations: PR creation, status checks, squash/rebase merging, and branch management Optimized for low context usage by relying on gh CLI...github-actionsby callstackincubatorGitHub Actions workflow patterns for React Native iOS simulator and Android emulator cloud builds with downloadable artifacts. Use when setting up CI build…react-native-best-practicesby callstackincubatorStructured performance optimization reference for React Native apps covering FPS, bundle size, TTI, and memory. Organized into 9 JavaScript/React guides (profiling, lists, animations, memory), 9 native optimization guides (Turbo Modules, threading, profiling), and 9 bundling guides (tree shaking, code splitting, size analysis) Each reference follows a hybrid format with quick patterns/commands, impact ratings (CRITICAL/HIGH/MEDIUM), and deep-dive explanations with prerequisites and common...react-native-brownfield-migrationby callstackincubatorProvides an incremental adoption strategy to migrate native iOS or Android apps to React Native or Expo using @callstack/react-native-brownfield for initial…

---

Source: https://github.com/callstackincubator/cordierite/tree/HEAD/skills/cordierite
Author: callstackincubator
Discovered via: mcpservers.org

SKILL.md source

---
name: cordierite
description: Connect a Cordierite-enabled React Native app to your machine and drive it from the terminal using tools the app registers — useful for agents, scripts, and…
---

# cordierite

Connect a Cordierite-enabled React Native app to your machine and drive it from the terminal using tools the app registers — useful for agents, scripts, and…

# cordieriteby callstackincubator
Connect a Cordierite-enabled React Native app to your machine and drive it from the terminal using tools the app registers — useful for agents, scripts, and…

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

## 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

* 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).

* 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`.

* 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).

* `cordierite tools --session-id <session_id> --json` — list tools registered in the app.

* `cordierite tools --session-id <session_id> <tool-name> --json` — inspect one tool’s input/output schema before calling it.

* `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:

* 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.

* 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.

## More skills from callstackincubator
agent-deviceby callstackincubatorAutomate iOS and Android app interactions with snapshot-based discovery and selector-driven replay. Supports iOS simulators/devices and Android emulators/devices with session-bound automation, multi-tenant remote daemon mode, and device-scope isolation for QA workflows Core commands: snapshot for UI discovery with refs, press / fill / scroll for interactions, open / close for app lifecycle, install / reinstall for binary deployment Includes utilities for logging, network inspection,...dogfoodby callstackincubatorSystematically explore and test a mobile app on iOS/Android with agent-device to find bugs, UX issues, and other problems. Use when asked to dogfood, QA,…react-devtoolsby callstackincubatorInspect and profile React Native component trees from agent-device. Use for React Native performance, profiling, props, state, hooks, render causes, slow…react-devtoolsby callstackincubatorReact DevTools CLI for AI agents. Use when the user asks you to debug a React or React Native app at runtime, inspect component props/state/hooks, diagnose…githubby callstackincubatorGitHub workflow automation via gh CLI for pull requests, stacked PRs, and repository management. Provides stacked PR merge workflow: squash-merge the first PR, then rebase and update base branch for each subsequent PR in the chain Includes conflict detection and manual resolution prompts to prevent silent failures during multi-PR merges Covers core gh CLI operations: PR creation, status checks, squash/rebase merging, and branch management Optimized for low context usage by relying on gh CLI...github-actionsby callstackincubatorGitHub Actions workflow patterns for React Native iOS simulator and Android emulator cloud builds with downloadable artifacts. Use when setting up CI build…react-native-best-practicesby callstackincubatorStructured performance optimization reference for React Native apps covering FPS, bundle size, TTI, and memory. Organized into 9 JavaScript/React guides (profiling, lists, animations, memory), 9 native optimization guides (Turbo Modules, threading, profiling), and 9 bundling guides (tree shaking, code splitting, size analysis) Each reference follows a hybrid format with quick patterns/commands, impact ratings (CRITICAL/HIGH/MEDIUM), and deep-dive explanations with prerequisites and common...react-native-brownfield-migrationby callstackincubatorProvides an incremental adoption strategy to migrate native iOS or Android apps to React Native or Expo using @callstack/react-native-brownfield for initial…

---

**Source**: https://github.com/callstackincubator/cordierite/tree/HEAD/skills/cordierite
**Author**: callstackincubator
**Discovered via**: mcpservers.org

Related skills 6

caveman

★ Featured

Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.

juliusbrussee 167k
Development

secure-linux-web-hosting

★ Featured

Use when setting up, hardening, or reviewing a cloud server for self-hosting, including DNS, SSH, firewalls, Nginx, static-site hosting, reverse-proxying an app, HTTPS with Let's Encrypt or ACME clients, safe HTTP-to-HTTPS redirects, or optional post-launch network tuning such as BBR.

xixu-me 155k
Development

readme-i18n

★ Featured

Use when the user wants to translate a repository README, make a repo multilingual, localize docs, add a language switcher, internationalize the README, or update localized README variants in a GitHub-style repository.

xixu-me 155k
Development

lark-shared

★ Featured

Use when first setting up lark-cli, running auth login, switching user/bot identity (--as), handling permission denied or scope errors, needing to update lark-cli, or seeing _notice in JSON output.

larksuite 155k
Development

improve-codebase-architecture

★ Featured

Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.

mattpocock 151k
Development

paper-context-resolver

★ Featured

Optional RigorPilot helper for README-first deep learning repo reproduction. Use only when the README and repository files leave a narrow reproduction-critical gap and the task is to resolve a specific paper detail such as dataset split, preprocessing, evaluation protocol, checkpoint mapping, or runtime assumption from primary paper sources while recording conflicts. Do not use for general paper summary, repo scanning, environment setup, command execution, title-only paper lookup, or replacin...

lllllllama 127k
Development