# Command Reference

> LocalWP Devkit command reference for project setup, sync, verification, WP-CLI, and packaging.

# Command Reference

Run these commands from the devkit root unless noted otherwise.

## Project Setup

### `/new-project`

Starts the agent-guided onboarding flow. Use it when creating or binding a LocalWP-backed project.

```text
/new-project
```

The flow matches a Local site, infers a project slug, creates `projects/<slug>` when needed, binds it, checks it, syncs it, runs readiness checks, and records project notes.

### `localwp:list`

Lists LocalWP sites visible on the machine.

```sh
bun run localwp:list
```

Use this before binding when you need the exact Local site name, domain, or path.

### `project:create`

Creates a project from the devkit project template.

```sh
bun run project:create -- my-site
```

The slug must use lowercase letters, numbers, and dashes. The command fails if the project already exists.

### `localwp:bind`

Binds a project to one Local site.

```sh
bun run localwp:bind -- --project my-site --site "My Site"
```

You can also bind by site ID or web root when needed:

```sh
bun run localwp:bind -- --project my-site --site-id <local-site-id>
bun run localwp:bind -- --project my-site --web-root "/Users/me/Local Sites/my-site/app/public"
```

Binding writes the Local web root and target plugin path into `projects/my-site/project.json`.

## Build and Sync

### `project:check`

Checks the project runtime source before sync or packaging.

```sh
bun run project:check -- --project my-site
```

Run this before every sync after changing `src/**` or `cms/**`.

### `localwp:sync`

Copies checked runtime plugin files into the bound Local site.

```sh
bun run localwp:sync -- --project my-site
```

Sync output goes to the Local site plugin path:

```text
wp-content/plugins/oh-my-idetch
```

## LocalWP and WordPress Inspection

### `localwp:wp`

Runs WP-CLI through Local's Site Shell environment when available.

```sh
bun run localwp:wp -- --project my-site -- plugin list
bun run localwp:wp -- --project my-site -- plugin is-active oh-my-idetch
bun run localwp:wp -- --project my-site -- option get home
```

If Local has not generated the shell entry, open Local, select the site, choose **Open Site Shell**, and run the printed fallback command manually.

### `localwp:doctor`

Reports project and Local site readiness.

```sh
bun run localwp:doctor -- --project my-site
```

It checks binding, web root availability, WP-CLI availability, WordPress environment type, synced plugin state, plugin activation, and runtime plugin status when WP-CLI works.

### `localwp:capabilities`

Prints JSON describing active runtime capabilities.

```sh
bun run localwp:capabilities -- --project my-site
```

Use it before assuming Etch, OhMyEtch, AutomaticCSS, CMS fields, or WooCommerce support exists in the bound Local site.

## Packaging

### `build:zip -- --project`

Checks and packages one project as a production plugin ZIP.

```sh
bun run build:zip -- --project my-site
```

The ZIP is written under:

```text
projects/my-site/dist/oh-my-idetch-<version>.zip
```

Use this ZIP as the deployable project plugin artifact.
