Commands

Every command, and the flags they share.

delacour <command> [components...] [options]

Every command that reads the registry also takes --registry, --ref, --offline and --cwd — see Shared options.

init

Sets the project up and writes native-components.json. Covered in full at Setting up a project.

delacour init [components...]

Prop

Type

add

Copies components in, with everything they need.

delacour add button input field
delacour add --all

The order is deliberate: resolve the dependency graph, plan every file, ask once about conflicts, write, then install. Installing first would leave a project holding new native dependencies and no components if you answered "no" to the overwrite prompt.

Prop

Type

A file already on disk with byte-identical content is not a conflict — that is the normal state of a utility two components share, and add says so rather than asking. Only a genuine difference is worth a prompt, because you may well have edited it.

Dependencies are split three ways

expo install for native modules and anything pinned to the SDK, your package manager for plain JavaScript, and registryDependencies — which are other components to copy, not packages to install.

Non-interactively (--yes, or a pipe), a conflict is an error naming the files rather than a silent overwrite. Pass --overwrite when you mean it.

list, search, view

Browsing works before native-components.json exists — which is exactly when you are deciding whether to run init.

delacour list
delacour search sheet
delacour view button

view prints the item's files, the components it copies in, and the packages it installs. All three take --json.

diff

Shows what has moved upstream since you copied a component.

delacour diff            # every component you have
delacour diff button

Read-only, and deliberately so. Once a component is in your repository it is yours, and the changes on each side are both legitimate — a fix upstream, a tweak locally. Printing both and stopping is the only behaviour that does not quietly pick a winner. add <name> --overwrite takes the registry's copy when that is what you want.

Which components you hold is judged from the files on disk, not from anything recorded at add time — a manifest of "what was installed" would be one more thing to drift from reality.

doctor

Checks that the app is wired up for these components. Every check is a failure mode that produces no error on its own — see Troubleshooting.

delacour doctor
delacour doctor --fast    # skip the checks that shell out to the Expo CLI
delacour doctor --json

Exits non-zero when a check fails, so it works in CI.

info

The resolved config and what was detected: package manager, Expo and React Native versions, whether Uniwind and Tailwind are installed, the workspace and app roots, and the path aliases found in tsconfig.json.

delacour info

Start here when the CLI is writing files somewhere you did not expect.

mcp

Runs as an MCP server over stdio so a coding agent can browse and add components. See Agents.

Shared options

Prop

Type

--cwd decides which native-components.json applies: the nearest one, walking upwards. The walk stops at the repository root — past it lie your other projects.

See The registry for pinning a ref and pointing at a fork.

On this page