@myop/cli 0.1.46 → 0.1.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,129 @@
1
1
  ---
2
2
  name: myop-angular-host
3
- description: "Integrate Myop components into Angular applications using @myop/angular. This skill covers the MyopComponent standalone component, inputs, outputs, content projection, data binding, preloading, auto-generated packages, and local dev setup. Activate when the user is building an Angular app that hosts Myop components, or when you see @myop/angular in package.json."
3
+ description: "Integrate Myop components into Angular applications using @myop/angular. ALWAYS use the myop-component Angular component or auto-generated packages — NEVER create iframes manually. Covers the MyopComponent standalone component, inputs, outputs, content projection, data binding, preloading, auto-generated packages, and local dev setup. Activate when the user is building an Angular app that hosts Myop components, or when you see @myop/angular in package.json."
4
4
  ---
5
5
 
6
6
  # Myop Angular Host Integration
7
7
 
8
8
  Embed Myop components in Angular applications using `@myop/angular`.
9
9
 
10
+ ## CRITICAL: Always Use the SDK
11
+
12
+ **NEVER create `<iframe>` elements manually. NEVER call `myop_init_interface()` or wire `myop_cta_handler()` directly.**
13
+
14
+ The `@myop/angular` SDK handles all iframe management, communication, loading, error handling, and caching. Always use `<myop-component>` or an auto-generated package.
15
+
16
+ ```typescript
17
+ // WRONG — never do this
18
+ this.iframe.nativeElement.contentWindow.myop_init_interface(data)
19
+
20
+ // CORRECT — always use the SDK
21
+ <myop-component [componentId]="'abc-123'" [data]="data" (cta)="onCta($event)" />
22
+ ```
23
+
24
+ ## End-to-End Workflow: Angular App with Myop Components
25
+
26
+ Each Myop component is a **separate project** in its own directory. You create them, develop them, push them to get a `componentId`, then reference that ID in your Angular host app.
27
+
28
+ ### Step 1: Create component projects
29
+
30
+ ```bash
31
+ # Each component gets its own directory
32
+ mkdir components/sidebar && cd components/sidebar
33
+ npx myop create # Scaffolds index.html + myop.config.json
34
+ # Build the component UI (see myop-component skill), then Ctrl+C
35
+
36
+ cd ../ && mkdir chart && cd chart
37
+ npx myop create
38
+ ```
39
+
40
+ ### Step 2: Push components to get IDs
41
+
42
+ ```bash
43
+ cd components/sidebar
44
+ npx myop push # Uploads → componentId written to myop.config.json
45
+
46
+ cd ../chart
47
+ npx myop push
48
+ ```
49
+
50
+ ### Step 3: Use in your Angular app
51
+
52
+ ```bash
53
+ cd my-angular-app
54
+ npm install @myop/angular @myop/sdk
55
+ ```
56
+
57
+ ```typescript
58
+ import { MyopComponent } from "@myop/angular";
59
+
60
+ @Component({
61
+ selector: 'app-root',
62
+ standalone: true,
63
+ imports: [MyopComponent],
64
+ template: `
65
+ <myop-component
66
+ [componentId]="'<sidebar-componentId-from-step-2>'"
67
+ [data]="{ items: ['Home', 'Settings'] }"
68
+ (cta)="onCta($event)"
69
+ style="width: 300px"
70
+ />
71
+ <myop-component
72
+ [componentId]="'<chart-componentId-from-step-2>'"
73
+ [data]="{ values: [10, 20, 30] }"
74
+ style="flex: 1"
75
+ />
76
+ `
77
+ })
78
+ export class AppComponent {
79
+ onCta(event: any) { console.log(event.action, event.payload); }
80
+ }
81
+ ```
82
+
83
+ ### Working locally on existing components (componentId already in code)
84
+
85
+ When you find `componentId` values already used in the codebase and the developer wants to modify those components locally:
86
+
87
+ **Step A: Pull the component source**
88
+
89
+ ```bash
90
+ mkdir components/sidebar && cd components/sidebar
91
+ npx myop pull <componentId>
92
+ # Downloads index.html + creates myop.config.json with the componentId
93
+ ```
94
+
95
+ **Step B: Start the local dev server**
96
+
97
+ ```bash
98
+ npx myop dev # Serves component on port 9292 with HMR
99
+ ```
100
+
101
+ **Step C: Point the Angular app to local dev server**
102
+
103
+ ```typescript
104
+ import { enableLocalDev } from "@myop/angular";
105
+ enableLocalDev(); // All <myop-component> instances load from localhost:9292
106
+ ```
107
+
108
+ Now edits to `index.html` are reflected instantly in the Angular app.
109
+
110
+ **Step D: Push changes when done**
111
+
112
+ ```bash
113
+ npx myop push # Uploads updated component to the same componentId
114
+ ```
115
+
116
+ Remove or comment out `enableLocalDev()` to go back to loading from the Myop cloud.
117
+
118
+ **Multiple components:**
119
+
120
+ ```bash
121
+ mkdir -p components && cd components
122
+ npx myop pull <sidebar-id> -o sidebar/index.html
123
+ npx myop pull <chart-id> -o chart/index.html
124
+ npx myop dev -m # Monorepo mode — select which components to serve
125
+ ```
126
+
10
127
  ## When This Skill Activates
11
128
 
12
129
  - `@myop/angular` is in `package.json` dependencies
@@ -0,0 +1,147 @@
1
+ ---
2
+ name: myop-cli
3
+ description: "Myop CLI tool for creating, developing, and deploying Myop components. Myop is a platform for building isolated, independently deployable UI components that integrate into any host application. Components can be built with any framework or architecture. Covers all CLI commands: create, dev, push, pull, list, train, mcp, login. Activates when the user needs CLI operations or when myop.config.json exists."
4
+ ---
5
+
6
+ # Myop CLI
7
+
8
+ Command-line tool for creating, developing, and deploying Myop components.
9
+
10
+ ## CRITICAL: Package Name
11
+
12
+ The npm package is **`myop`**. Always use `npx myop <command>`.
13
+
14
+ ```bash
15
+ npx myop create # Correct
16
+ npx myop dev # Correct
17
+ npx myop push # Correct
18
+ ```
19
+
20
+ **NEVER use** `npx @anthropic/myop`, `npx @myop/cli`, or any other package name — the package is simply **`myop`**.
21
+
22
+ ## Immediate Action Required
23
+
24
+ **Check `myop.config.json` in the current directory:**
25
+ - **EXISTS** → This is an existing Myop component project. You can use `myop dev`, `myop push`, `myop pull`.
26
+ - **DOESN'T EXIST** → Either create a new component with `myop create`, or pull one with `myop pull <id>`.
27
+
28
+ **When to use this skill vs `myop-component`:**
29
+ - **This skill (myop-cli):** Operations — deploying, downloading, serving, listing, authenticating
30
+ - **myop-component:** Building — implementing `myop_init_interface`/`myop_cta_handler`, component architecture, styling
31
+
32
+ ## Commands
33
+
34
+ ### Create a new component
35
+ ```bash
36
+ npx myop create
37
+ ```
38
+ Interactive: prompts for name, creates `index.html` + `myop.config.json`, starts dev server.
39
+
40
+ ### Start dev server
41
+ ```bash
42
+ npx myop dev
43
+ ```
44
+ - Port **9292** — serves the component
45
+ - Port **9293** — management dashboard
46
+ - Watches `.js`, `.css`, `.html` files for changes
47
+ - HMR: changes reflect instantly in the browser
48
+ - Single-file mode: serves `index.html` directly (no build step)
49
+ - Multi-file mode: runs `npm run build` or `node build.js` on change
50
+
51
+ ### Push (deploy) to Myop
52
+ ```bash
53
+ # Push using componentId from myop.config.json
54
+ npx myop push
55
+
56
+ # Push to a specific component ID
57
+ npx myop push <componentId>
58
+ ```
59
+ Uploads the component to Myop platform. First push assigns a `componentId` and updates `myop.config.json`.
60
+
61
+ ### Pull (download) from Myop
62
+ ```bash
63
+ # Pull using componentId from myop.config.json
64
+ npx myop pull
65
+
66
+ # Pull by ID
67
+ npx myop pull <componentId>
68
+
69
+ # Pull to a specific output path
70
+ npx myop pull <componentId> -o ./output/index.html
71
+ ```
72
+
73
+ ### Browse & batch operations
74
+ ```bash
75
+ # Interactive search, multi-select, batch pull or push
76
+ npx myop list
77
+
78
+ # Specify organization
79
+ npx myop list --org <orgId>
80
+ ```
81
+
82
+ ### Install AI skills for coding assistants
83
+ ```bash
84
+ npx myop train
85
+ ```
86
+ Installs SKILL.md files into all AI agent directories (Claude Code, Cursor, Windsurf, VS Code Copilot, Kiro, Goose, Augment, and more) so they understand Myop conventions.
87
+
88
+ ### Configure MCP server
89
+ ```bash
90
+ npx myop mcp
91
+ ```
92
+ Interactive setup for connecting Myop MCP to Claude Code, Cursor, Windsurf, or VS Code Copilot.
93
+
94
+ ### Authentication
95
+ ```bash
96
+ npx myop login # Opens browser for OAuth
97
+ npx myop logout # Clears stored credentials
98
+ npx myop whoami # Show current user
99
+ ```
100
+
101
+ ## Common Workflows
102
+
103
+ ### Deploy a component
104
+ ```bash
105
+ npx myop push
106
+ # Dashboard: https://dashboard.myop.dev/dashboard/2.0/component/<componentId>
107
+ ```
108
+
109
+ ### Download all components from an org
110
+ ```bash
111
+ mkdir components && cd components
112
+ npx myop list
113
+ # Select components → Pull
114
+ ```
115
+
116
+ ### Set up AI tooling
117
+ ```bash
118
+ npx myop train # Install skills for all AI agents
119
+ npx myop mcp # Configure MCP server for your IDE
120
+ ```
121
+
122
+ ### Local development
123
+ ```bash
124
+ npx myop dev # Start dev server at localhost:9292
125
+ # Edit index.html → changes reflect instantly
126
+ ```
127
+
128
+ ## Configuration
129
+
130
+ ### myop.config.json
131
+ ```json
132
+ {
133
+ "name": "My Component",
134
+ "componentId": "DEV",
135
+ "type": "html",
136
+ "author": "@myop-cli",
137
+ "HMR": true
138
+ }
139
+ ```
140
+ - `componentId` is `"DEV"` until first push, then becomes a UUID
141
+ - After push, `organization` field is added
142
+
143
+ ### Dev Server
144
+ - Component: `http://localhost:9292`
145
+ - Management: `http://localhost:9293`
146
+ - Single-file mode: serves `index.html` directly (no build)
147
+ - Multi-file mode: watches files, runs `npm run build` or `node build.js` on change
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  name: myop-component
3
- description: "Myop is a platform for creating self-contained HTML UI components that integrate into any host application. This skill covers the component public API (myop_init_interface, myop_cta_handler), type definitions, sizing, layout, development workflow, and CLI commands. When building or modifying a Myop component, you must learn this skill."
3
+ description: "Myop is a platform for building isolated, independently deployable UI components that integrate into any host application. Components can be built with any framework or architecture — vanilla JS, React, Vue, Svelte, or any toolchain — and are deployed as a single entry point. This skill covers the component public API (myop_init_interface, myop_cta_handler), type definitions, sizing, layout, development workflow, and CLI commands. When building or modifying a Myop component, you must learn this skill."
4
4
  ---
5
5
 
6
6
  # Myop Component Developer
7
7
 
8
- Build high-performance, self-contained HTML components for the Myop platform.
8
+ Build isolated, independently deployable UI components for the Myop platform.
9
9
 
10
10
  ## Immediate Action Required - Read This First
11
11
 
12
- This skill activates when a `myop.config.json` file exists in the project, or when the user mentions "myop", "myop component", or asks to create/edit an HTML component for Myop.
12
+ This skill activates when a `myop.config.json` file exists in the project, or when the user mentions "myop", "myop component", or asks to create/edit a component for Myop.
13
13
 
14
14
  **Your first action MUST be:**
15
15
  1. Check if `myop.config.json` exists in the current directory
@@ -18,24 +18,30 @@ This skill activates when a `myop.config.json` file exists in the project, or wh
18
18
  - Read `index.html` to understand the current component implementation
19
19
  - Implement the requested changes following the patterns in this skill
20
20
  3. If **NO** (new component):
21
- - Guide the user to run `myop create` to scaffold a new component
21
+ - Guide the user to run `npx myop create` to scaffold a new component
22
22
  - Or create the files manually following the structure below
23
23
 
24
24
  ## Component Architecture
25
25
 
26
- Every Myop component is a **single HTML file** (`index.html` or `dist/index.html`) that communicates with a host application through exactly **2 global functions**:
26
+ A Myop component is an **isolated, independently deployable UI module** that runs within any host application (React, Vue, Angular, React Native, or any web framework). Components can be as complex as needed — built with any internal architecture, framework, or toolchain (vanilla JS, React, Vue, Svelte, Web Components, etc.).
27
+
28
+ The platform communicates with every component through exactly **2 global functions**:
27
29
 
28
30
  | Function | Direction | Purpose | Reference |
29
31
  |----------|-----------|---------|-----------|
30
32
  | `myop_init_interface(data)` | Host -> Component | Receive data, render UI | [component-api.md](references/component-api.md) |
31
33
  | `myop_cta_handler(action, payload)` | Component -> Host | Send user actions back | [component-api.md](references/component-api.md) |
32
34
 
35
+ ### Deployment Format
36
+
37
+ The deployed artifact is a **single entry point** — currently an HTML file (`index.html` or `dist/index.html`) with all code, styles, and markup bundled. For multi-file projects, a build step (`npm run build`) compiles your source into this entry point. The internal complexity is unlimited: use modules, state management, third-party libraries, or any architecture you need.
38
+
33
39
  ## CRITICAL: Rules You Must Follow
34
40
 
35
41
  1. **Both functions MUST be defined at top-level script execution** - never inside `setTimeout`, `Promise.then`, `async`, `DOMContentLoaded`, or any deferred code
36
42
  2. **Rendering MUST be synchronous** - no `fetch`, no `await`, no `setTimeout` inside `myop_init_interface`
37
43
  3. **All state is private** - use an IIFE to encapsulate; only expose the 2 global functions
38
- 4. **Single-file output** - the final deployed artifact is ONE HTML file with all CSS/JS inlined
44
+ 4. **Single entry point** - the deployed artifact is one HTML file with all CSS/JS inlined (a build step compiles multi-file projects into this)
39
45
  5. **No external network requests** - components cannot fetch external resources at runtime
40
46
 
41
47
  ## Quick Start - Minimal Component
@@ -132,29 +138,29 @@ Every Myop component is a **single HTML file** (`index.html` or `dist/index.html
132
138
 
133
139
  ## Component File Structure
134
140
 
135
- ### Single-file mode (simplest)
141
+ ### Single-file mode (simplest — good for small components)
136
142
  ```
137
143
  project/
138
- ├── index.html # The entire component in one file
144
+ ├── index.html # Complete component in one file
139
145
  ├── myop.config.json # Component metadata
140
146
  └── .gitignore
141
147
  ```
142
148
 
143
- ### Multi-file mode (with build step)
149
+ ### Multi-file mode (with build step — for complex components)
144
150
  ```
145
151
  project/
146
152
  ├── index.html # HTML template with <link> and <script src>
147
- ├── src/
153
+ ├── src/ # Any internal architecture you need
148
154
  │ ├── index.js # Entry point
149
- │ ├── modules/
150
- │ │ ├── app.js # Application logic
155
+ │ ├── modules/ # Business logic, state management, etc.
156
+ │ │ ├── app.js
151
157
  │ │ └── myop.js # Myop interface setup
152
158
  │ └── styles/
153
- │ ├── index.css # Style entry point
154
- │ └── main.css # Main styles
155
- ├── build.js # esbuild bundler (inlines JS/CSS into dist/index.html)
159
+ │ ├── index.css
160
+ │ └── main.css
161
+ ├── build.js # Bundler (compiles everything into dist/index.html)
156
162
  ├── dist/
157
- │ └── index.html # Built single-file output
163
+ │ └── index.html # Built entry point (deployed artifact)
158
164
  ├── myop.config.json
159
165
  ├── package.json
160
166
  └── .gitignore
@@ -212,31 +218,35 @@ project/
212
218
  | Mutating data passed to `myop_init_interface` | Storing a copy of the data |
213
219
  | Not returning state when called without args | `if (!data) return state;` pattern |
214
220
 
221
+ ## CLI — Package Name is `myop`
222
+
223
+ The npm package is **`myop`**. Always use `npx myop <command>`. **NEVER** `npx @anthropic/myop`, `npx @myop/cli`, or any other scope — the package is simply **`myop`**.
224
+
215
225
  ## CLI Commands Quick Reference
216
226
 
217
227
  | Command | Description |
218
228
  |---------|-------------|
219
- | `myop create` | Create a new component (scaffolds files + starts dev server) |
220
- | `myop dev` | Start development server with HMR on port 9292 |
221
- | `myop push [componentId]` | Upload component to Myop platform (optional ID overrides config) |
222
- | `myop pull [componentId]` | Download component HTML from Myop platform |
223
- | `myop list [--org <orgId>]` | Browse, search, and batch pull/push remote components |
224
- | `myop sync` | Build and upload component to Myop platform |
225
- | `myop login` | Authenticate with Myop (opens browser) |
226
- | `myop logout` | Clear stored credentials |
227
- | `myop whoami` | Show current authenticated user |
229
+ | `npx myop create` | Create a new component (scaffolds files + starts dev server) |
230
+ | `npx myop dev` | Start development server with HMR on port 9292 |
231
+ | `npx myop push [componentId]` | Upload component to Myop platform (optional ID overrides config) |
232
+ | `npx myop pull [componentId]` | Download component HTML from Myop platform |
233
+ | `npx myop list [--org <orgId>]` | Browse, search, and batch pull/push remote components |
234
+ | `npx myop sync` | Build and upload component to Myop platform |
235
+ | `npx myop login` | Authenticate with Myop (opens browser) |
236
+ | `npx myop logout` | Clear stored credentials |
237
+ | `npx myop whoami` | Show current authenticated user |
228
238
 
229
239
  ## Deploying with `myop push`
230
240
 
231
- `myop push` uploads the current component HTML to the Myop platform. After a successful push, any CTA wiring (e.g., `myop_cta_handler('button-clicked', …)`) is live in the Myop host — no rebuild or redeploy of the host application is needed.
241
+ `myop push` uploads the component to the Myop platform. After a successful push, the component is live — including all CTA wiring (e.g., `myop_cta_handler('button-clicked', …)`). No rebuild or redeploy of the host application is needed.
232
242
 
233
243
  ### What push does
234
244
 
235
245
  1. Reads `myop.config.json` to identify the component
236
246
  2. If a `componentId` argument is passed, it overrides the one in config
237
- 3. Locates the HTML file (`index.html` for single-file mode, `dist/index.html` for multi-file)
247
+ 3. Locates the entry point (`index.html` for single-file mode, `dist/index.html` for multi-file)
238
248
  4. Authenticates with Myop (prompts login if needed)
239
- 5. Uploads the HTML via a presigned URL
249
+ 5. Uploads the component via a presigned URL
240
250
  6. On first push: assigns a real `componentId` (UUID) and `organization` to `myop.config.json`
241
251
  7. On subsequent pushes: adds a new version to the existing component
242
252
 
@@ -246,17 +256,10 @@ From the component's project directory:
246
256
 
247
257
  ```bash
248
258
  # Push using componentId from myop.config.json
249
- myop push
259
+ npx myop push
250
260
 
251
261
  # Push to a specific remote component (overrides config)
252
- myop push <componentId>
253
- ```
254
-
255
- Or using npx (no global install needed):
256
-
257
- ```bash
258
- npx @myop/cli push
259
- npx @myop/cli push <componentId>
262
+ npx myop push <componentId>
260
263
  ```
261
264
 
262
265
  ### When the user asks to push
@@ -264,7 +267,7 @@ npx @myop/cli push <componentId>
264
267
  When the user says **"push to myop"**, **"deploy"**, **"upload"**, or **"run the push"**, you should:
265
268
 
266
269
  1. `cd` into the component's project directory (where `myop.config.json` lives)
267
- 2. Run `npx @myop/cli push` via the terminal
270
+ 2. Run `npx myop push`
268
271
  3. If push succeeds, report the dashboard URL: `https://dashboard.myop.dev/dashboard/2.0/component/<componentId>`
269
272
  4. If push fails, show the error output and suggest the user run the command manually
270
273
 
@@ -272,24 +275,24 @@ When the user says **"push to myop"**, **"deploy"**, **"upload"**, or **"run the
272
275
 
273
276
  - **First push** — `componentId` in `myop.config.json` changes from `"DEV"` to a real UUID. The `organization` field is also added. The component now exists on the Myop platform.
274
277
  - **Subsequent pushes** — A new version is added to the existing component. The previous version remains accessible. The latest version becomes the live version immediately.
275
- - **What goes live** — The full HTML file is uploaded as-is. All CTA handlers, type definitions, styles, and preview scripts are included. The host application picks up changes automatically on next load (no host redeploy).
276
- - **Multi-file projects** — For projects with a build step, run `myop sync` instead (which runs `npm run build` first, then uploads `dist/index.html`).
278
+ - **What goes live** — The complete component entry point is uploaded with all CTA handlers, type definitions, styles, and logic bundled. The host application picks up changes automatically on next load (no host redeploy).
279
+ - **Multi-file projects** — For projects with a build step, run `myop sync` instead (which runs `npm run build` first, then uploads the built entry point).
277
280
 
278
281
  ## Downloading with `myop pull`
279
282
 
280
- `myop pull` downloads a component's latest HTML from the Myop platform into your local directory.
283
+ `myop pull` downloads a component's latest version from the Myop platform into your local directory.
281
284
 
282
285
  ### Running pull
283
286
 
284
287
  ```bash
285
288
  # Pull using componentId from myop.config.json
286
- myop pull
289
+ npx myop pull
287
290
 
288
291
  # Pull a specific component by ID (works in empty directories)
289
- myop pull <componentId>
292
+ npx myop pull <componentId>
290
293
 
291
294
  # Pull to a custom output path
292
- myop pull <componentId> -o ./components/sidebar/index.html
295
+ npx myop pull <componentId> -o ./components/sidebar/index.html
293
296
  ```
294
297
 
295
298
  ### When the user asks to pull
@@ -297,34 +300,34 @@ myop pull <componentId> -o ./components/sidebar/index.html
297
300
  When the user says **"pull from myop"**, **"download component"**, or **"get the latest version"**, you should:
298
301
 
299
302
  1. `cd` into the component's project directory (or an empty directory for a new clone)
300
- 2. Run `npx @myop/cli pull` (or `npx @myop/cli pull <componentId>` if pulling a specific component)
303
+ 2. Run `npx myop pull` (or `npx myop pull <componentId>` if pulling a specific component)
301
304
  3. Report the saved file path and size
302
305
 
303
306
  ### Pull behavior
304
307
 
305
- - **Existing directory** — overwrites `index.html` (or `dist/index.html` if it exists) with the latest remote version
308
+ - **Existing directory** — overwrites the entry point (`index.html` or `dist/index.html`) with the latest remote version
306
309
  - **Empty directory** — creates `index.html` + `myop.config.json` with component metadata
307
- - **Custom output** — use `-o <path>` to write the HTML to a specific file; parent directories are created automatically
310
+ - **Custom output** — use `-o <path>` to write to a specific file; parent directories are created automatically
308
311
 
309
312
  ## Browsing with `myop list`
310
313
 
311
- `myop list` lets you browse all components in your organization, search and filter, select multiple, and batch pull or push them.
314
+ `myop list` lets you browse all components in your organization search, filter, select multiple, and batch pull or push them.
312
315
 
313
316
  ### Running list
314
317
 
315
318
  ```bash
316
319
  # Interactive browse (prompts for org if multiple)
317
- myop list
320
+ npx myop list
318
321
 
319
322
  # Specify an organization
320
- myop list --org <orgId>
323
+ npx myop list --org <orgId>
321
324
  ```
322
325
 
323
326
  ### When the user asks to list or browse
324
327
 
325
328
  When the user says **"show my components"**, **"list components"**, **"browse"**, or **"clone all components"**, you should:
326
329
 
327
- 1. Run `npx @myop/cli list` via the terminal
330
+ 1. Run `npx myop list`
328
331
  2. The interactive UI handles org selection, search, and batch operations
329
332
 
330
333
  ### List behavior
@@ -336,8 +339,8 @@ When the user says **"show my components"**, **"list components"**, **"browse"**
336
339
 
337
340
  ## Workflow Summary
338
341
 
339
- 1. `myop create` - Scaffold a new component
340
- 2. Edit `index.html` - Build your component UI
341
- 3. `myop dev` - Preview with hot reload at http://localhost:9292
342
- 4. `myop push` - Upload to Myop platform (live immediately)
342
+ 1. `npx myop create` Scaffold a new component
343
+ 2. Build your component — edit source files (single-file or multi-file with any framework)
344
+ 3. `npx myop dev` Preview with hot reload at http://localhost:9292
345
+ 4. `npx myop push` Deploy to Myop platform (live immediately)
343
346
  5. View on dashboard: `https://dashboard.myop.dev/dashboard/2.0/component/<componentId>`
@@ -14,10 +14,11 @@ The Myop CLI provides commands for creating, developing, and deploying component
14
14
  ## CLI Installation
15
15
 
16
16
  ```bash
17
- npm install -g @myop/cli
17
+ npm install -g myop
18
+ # Or use without installing: npx myop <command>
18
19
  ```
19
20
 
20
- After installation, the `myop` command is available globally.
21
+ The npm package name is `myop`.
21
22
 
22
23
  ## Commands Reference
23
24