lindoai-cli 1.4.5 → 1.4.6
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.
- package/SKILL.md +361 -0
- package/dist/index.cjs +20 -20
- package/dist/index.js +20 -20
- package/package.json +3 -2
package/SKILL.md
ADDED
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lindoai
|
|
3
|
+
description: Lindo AI CLI - Command-line interface for the Lindo API
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Lindo AI CLI
|
|
7
|
+
|
|
8
|
+
The `lindoai` CLI provides commands for interacting with the Lindo API, including website management, page editing, blog management, and more.
|
|
9
|
+
|
|
10
|
+
## Authentication
|
|
11
|
+
|
|
12
|
+
### Login via Browser
|
|
13
|
+
```bash
|
|
14
|
+
lindoai login
|
|
15
|
+
```
|
|
16
|
+
Opens your browser to authenticate and automatically configures your API key.
|
|
17
|
+
|
|
18
|
+
Options:
|
|
19
|
+
- `--timeout <seconds>` - Timeout for the login flow (default: 120)
|
|
20
|
+
- `--no-browser` - Display the authorization URL without opening the browser
|
|
21
|
+
|
|
22
|
+
### Manual Configuration
|
|
23
|
+
```bash
|
|
24
|
+
lindoai config set apiKey <your-api-key>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Website Management
|
|
28
|
+
|
|
29
|
+
### List Websites
|
|
30
|
+
```bash
|
|
31
|
+
lindoai websites list
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Get Website Details
|
|
35
|
+
```bash
|
|
36
|
+
lindoai websites get <website_id>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Page Management
|
|
40
|
+
|
|
41
|
+
### List Pages
|
|
42
|
+
```bash
|
|
43
|
+
lindoai pages list <website_id>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Get Page Details
|
|
47
|
+
```bash
|
|
48
|
+
lindoai pages get <website_id> <page_id>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Live Preview Editing Workflow
|
|
52
|
+
|
|
53
|
+
1. **Start editing with live preview:**
|
|
54
|
+
```bash
|
|
55
|
+
lindoai pages edit <website_id> <page_id> --background
|
|
56
|
+
```
|
|
57
|
+
This fetches the page HTML, saves it locally, starts a preview server, and opens your browser.
|
|
58
|
+
|
|
59
|
+
Options:
|
|
60
|
+
- `--file <path>` - Save HTML to a specific path (default: ./page.html)
|
|
61
|
+
- `--background` - Run the preview server in the background
|
|
62
|
+
|
|
63
|
+
2. **Edit the HTML file** in your editor. The browser will automatically refresh when you save.
|
|
64
|
+
|
|
65
|
+
3. **Update the page** when you're done:
|
|
66
|
+
```bash
|
|
67
|
+
lindoai pages update <website_id> <page_id> --html-file ./page.html
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
4. **Stop the preview server:**
|
|
71
|
+
```bash
|
|
72
|
+
lindoai pages stop-preview
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Important: Global Header/Footer Limitation
|
|
76
|
+
|
|
77
|
+
**Global header and footer sections cannot be updated via the CLI.** When you edit a page locally:
|
|
78
|
+
- The preview shows the website's global header/footer for visual context
|
|
79
|
+
- Any changes you make to global sections are saved with the page only
|
|
80
|
+
- Changes do NOT propagate to other pages or the website settings
|
|
81
|
+
- To update global header/footer across all pages, use the Lindo webapp
|
|
82
|
+
|
|
83
|
+
This is by design - global sections are website-wide settings managed through the webapp.
|
|
84
|
+
|
|
85
|
+
## Blog Management
|
|
86
|
+
|
|
87
|
+
### List Blogs
|
|
88
|
+
```bash
|
|
89
|
+
lindoai blogs list <website_id>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Get Blog Details
|
|
93
|
+
```bash
|
|
94
|
+
lindoai blogs get <website_id> <blog_id>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Live Preview Editing Workflow
|
|
98
|
+
|
|
99
|
+
1. **Start editing with live preview:**
|
|
100
|
+
```bash
|
|
101
|
+
lindoai blogs edit <website_id> <blog_id> --background
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Options:
|
|
105
|
+
- `--file <path>` - Save HTML to a specific path (default: ./blog.html)
|
|
106
|
+
- `--background` - Run the preview server in the background
|
|
107
|
+
|
|
108
|
+
2. **Edit the HTML file** in your editor. The browser will automatically refresh when you save.
|
|
109
|
+
|
|
110
|
+
3. **Update the blog** when you're done:
|
|
111
|
+
```bash
|
|
112
|
+
lindoai blogs update <website_id> <blog_id> --html-file ./blog.html
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
4. **Stop the preview server:**
|
|
116
|
+
```bash
|
|
117
|
+
lindoai blogs stop-preview
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## AI Agents
|
|
121
|
+
|
|
122
|
+
### Run an Agent
|
|
123
|
+
```bash
|
|
124
|
+
lindoai agents run <agent_id> --input '{"prompt": "Hello!"}'
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Options:
|
|
128
|
+
- `--input <json>` - Input data as JSON string
|
|
129
|
+
- `--stream` - Stream the response
|
|
130
|
+
- `--format <format>` - Output format (json, table)
|
|
131
|
+
|
|
132
|
+
## Workflows
|
|
133
|
+
|
|
134
|
+
### Start a Workflow
|
|
135
|
+
```bash
|
|
136
|
+
lindoai workflows start <workflow_id> --params '{"key": "value"}'
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Get Workflow Status
|
|
140
|
+
```bash
|
|
141
|
+
lindoai workflows status <instance_id>
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Workspace
|
|
145
|
+
|
|
146
|
+
### Get Workspace Credits
|
|
147
|
+
```bash
|
|
148
|
+
lindoai workspace credits
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Analytics
|
|
152
|
+
|
|
153
|
+
### Get Workspace Analytics
|
|
154
|
+
```bash
|
|
155
|
+
lindoai analytics workspace --from 2024-01-01 --to 2024-01-31
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Configuration
|
|
159
|
+
|
|
160
|
+
### View Configuration
|
|
161
|
+
```bash
|
|
162
|
+
lindoai config get apiKey
|
|
163
|
+
lindoai config get baseUrl
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Set Configuration
|
|
167
|
+
```bash
|
|
168
|
+
lindoai config set apiKey <value>
|
|
169
|
+
lindoai config set baseUrl <value>
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Tips for AI Agents
|
|
173
|
+
|
|
174
|
+
1. **Always authenticate first** using `lindoai login` or by setting the API key.
|
|
175
|
+
2. **Use the live preview workflow** for editing pages and blogs - it provides instant visual feedback.
|
|
176
|
+
3. **Run preview servers in background mode** (`--background`) to keep the terminal available.
|
|
177
|
+
4. **Remember to stop preview servers** when done editing with `stop-preview`.
|
|
178
|
+
5. **Use JSON format** (`--format json`) when you need to parse command output programmatically.
|
|
179
|
+
|
|
180
|
+
## Page Building Guidelines
|
|
181
|
+
|
|
182
|
+
### Structure Requirements
|
|
183
|
+
|
|
184
|
+
When building or editing Lindo pages, follow these structure requirements:
|
|
185
|
+
|
|
186
|
+
- **Output ONLY content HTML**: Generate only `<header>`, `<section>` elements, and `<footer>`
|
|
187
|
+
- **NO document wrapper tags**: Do NOT include `<!DOCTYPE html>`, `<html>`, `<head>`, or `<body>` tags
|
|
188
|
+
- **Unique section IDs**: Each section must have a unique id following the pattern: `_block_name_###` (e.g., `_hero_001`, `_features_002`)
|
|
189
|
+
- **Semantic structure**: Use proper HTML5 semantic elements for accessibility
|
|
190
|
+
|
|
191
|
+
Example structure:
|
|
192
|
+
```html
|
|
193
|
+
<header id="_header_001" class="...">
|
|
194
|
+
<!-- Navigation content -->
|
|
195
|
+
</header>
|
|
196
|
+
|
|
197
|
+
<section id="_hero_001" class="...">
|
|
198
|
+
<!-- Hero content -->
|
|
199
|
+
</section>
|
|
200
|
+
|
|
201
|
+
<section id="_features_002" class="...">
|
|
202
|
+
<!-- Features content -->
|
|
203
|
+
</section>
|
|
204
|
+
|
|
205
|
+
<footer id="_footer_001" class="...">
|
|
206
|
+
<!-- Footer content -->
|
|
207
|
+
</footer>
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Tailwind CSS v3.4 Usage
|
|
211
|
+
|
|
212
|
+
Lindo pages use Tailwind CSS v3.4 for styling:
|
|
213
|
+
|
|
214
|
+
- **Utility-first approach**: Use Tailwind utility classes for all styling
|
|
215
|
+
- **No custom CSS**: Avoid writing custom CSS; use Tailwind utilities instead
|
|
216
|
+
- **NO font family classes**: Do NOT use `font-sans`, `font-serif`, `font-mono`, or any `font-[family]` classes - fonts are managed by the theme system
|
|
217
|
+
- **Responsive design**: Use responsive prefixes (`sm:`, `md:`, `lg:`, `xl:`, `2xl:`) for all breakpoints
|
|
218
|
+
- **Dark mode support**: Always include dark mode variants using the `dark:` prefix
|
|
219
|
+
- **Neutral shades**: Use neutral color shades for text and surfaces (e.g., `text-neutral-900 dark:text-neutral-100`)
|
|
220
|
+
|
|
221
|
+
Example:
|
|
222
|
+
```html
|
|
223
|
+
<div class="px-4 py-8 md:px-8 lg:px-16 bg-white dark:bg-neutral-900">
|
|
224
|
+
<h1 class="text-3xl md:text-4xl lg:text-5xl text-neutral-900 dark:text-white">
|
|
225
|
+
Welcome
|
|
226
|
+
</h1>
|
|
227
|
+
</div>
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Animation System
|
|
231
|
+
|
|
232
|
+
Lindo uses a custom animation system with `data-motion` attributes for scroll-triggered animations:
|
|
233
|
+
|
|
234
|
+
**Available animation types:**
|
|
235
|
+
- `fade` - Simple fade in
|
|
236
|
+
- `fade-up` - Fade in while moving up
|
|
237
|
+
- `fade-down` - Fade in while moving down
|
|
238
|
+
- `fade-left` - Fade in while moving from left
|
|
239
|
+
- `fade-right` - Fade in while moving from right
|
|
240
|
+
- `scale` - Scale up while fading in
|
|
241
|
+
- `card` - Card entrance animation
|
|
242
|
+
- `heading` - Heading text animation
|
|
243
|
+
- `text` - Body text animation
|
|
244
|
+
- `image` - Image reveal animation
|
|
245
|
+
- `button` - Button entrance animation
|
|
246
|
+
|
|
247
|
+
**Usage:**
|
|
248
|
+
```html
|
|
249
|
+
<section data-motion="fade-up">
|
|
250
|
+
<h2 data-motion="heading">Section Title</h2>
|
|
251
|
+
<p data-motion="text">Section description text.</p>
|
|
252
|
+
<img data-motion="image" src="..." alt="..." />
|
|
253
|
+
<button data-motion="button">Click Me</button>
|
|
254
|
+
</section>
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
**Animation delays:** Use `data-motion-delay` for staggered animations:
|
|
258
|
+
```html
|
|
259
|
+
<div data-motion="fade-up" data-motion-delay="0">First item</div>
|
|
260
|
+
<div data-motion="fade-up" data-motion-delay="100">Second item</div>
|
|
261
|
+
<div data-motion="fade-up" data-motion-delay="200">Third item</div>
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Logo Requirements
|
|
265
|
+
|
|
266
|
+
When adding logos to pages, use the `lindo-image-logo` attribute:
|
|
267
|
+
|
|
268
|
+
**Logo types:**
|
|
269
|
+
- `full` - Full logo (icon + text)
|
|
270
|
+
- `icon` - Icon only
|
|
271
|
+
- `text` - Text only
|
|
272
|
+
|
|
273
|
+
**Usage:**
|
|
274
|
+
```html
|
|
275
|
+
<!-- Full logo -->
|
|
276
|
+
<img lindo-image-logo="full" src="https://cdn.ln-cdn.com/image/placeholder-logo-full.png" alt="Logo" class="h-8" />
|
|
277
|
+
|
|
278
|
+
<!-- Icon only -->
|
|
279
|
+
<img lindo-image-logo="icon" src="https://cdn.ln-cdn.com/image/placeholder-logo-icon.png" alt="Logo" class="h-8 w-8" />
|
|
280
|
+
|
|
281
|
+
<!-- Text only -->
|
|
282
|
+
<img lindo-image-logo="text" src="https://cdn.ln-cdn.com/image/placeholder-logo-text.png" alt="Logo" class="h-6" />
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
**Important:**
|
|
286
|
+
- Do NOT add text or brand names as logo alternatives
|
|
287
|
+
- Always use the `lindo-image-logo` attribute for logos
|
|
288
|
+
- The actual logo will be replaced with the website's configured logo
|
|
289
|
+
|
|
290
|
+
### Theme Guidelines
|
|
291
|
+
|
|
292
|
+
Follow these theme guidelines for consistent light and dark mode support:
|
|
293
|
+
|
|
294
|
+
**Light and Dark Mode:**
|
|
295
|
+
- Every element must specify both light and dark styles
|
|
296
|
+
- Use the `dark:` prefix for dark mode variants
|
|
297
|
+
- Test both modes to ensure readability and contrast
|
|
298
|
+
|
|
299
|
+
**Color Palette:**
|
|
300
|
+
- Use Tailwind's default color palette
|
|
301
|
+
- Primary colors: Use brand colors from the theme
|
|
302
|
+
- Text colors: `text-neutral-900 dark:text-white` for headings, `text-neutral-600 dark:text-neutral-400` for body text
|
|
303
|
+
- Background colors: `bg-white dark:bg-neutral-900` for main backgrounds
|
|
304
|
+
- Surface colors: `bg-neutral-50 dark:bg-neutral-800` for cards and elevated surfaces
|
|
305
|
+
|
|
306
|
+
**Gradients:**
|
|
307
|
+
- Apply gradient backgrounds where appropriate for visual interest
|
|
308
|
+
- Example: `bg-gradient-to-br from-blue-500 to-purple-600`
|
|
309
|
+
|
|
310
|
+
**Example with full theme support:**
|
|
311
|
+
```html
|
|
312
|
+
<section class="py-16 bg-white dark:bg-neutral-900">
|
|
313
|
+
<div class="container mx-auto px-4">
|
|
314
|
+
<h2 class="text-3xl text-neutral-900 dark:text-white mb-4">
|
|
315
|
+
Section Title
|
|
316
|
+
</h2>
|
|
317
|
+
<p class="text-neutral-600 dark:text-neutral-400 mb-8">
|
|
318
|
+
Section description with proper contrast in both modes.
|
|
319
|
+
</p>
|
|
320
|
+
<div class="bg-neutral-50 dark:bg-neutral-800 rounded-lg p-6">
|
|
321
|
+
<p class="text-neutral-700 dark:text-neutral-300">
|
|
322
|
+
Card content with elevated surface.
|
|
323
|
+
</p>
|
|
324
|
+
</div>
|
|
325
|
+
</div>
|
|
326
|
+
</section>
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### Core Rules
|
|
330
|
+
|
|
331
|
+
Follow these core rules when building pages:
|
|
332
|
+
|
|
333
|
+
1. **No font family classes**: Never use `font-sans`, `font-serif`, `font-mono`, or custom font classes. The theme system manages fonts.
|
|
334
|
+
|
|
335
|
+
2. **Responsive design is required**: All pages must be fully responsive. Use Tailwind's responsive prefixes:
|
|
336
|
+
- Mobile first: Start with base styles
|
|
337
|
+
- `sm:` - Small screens (640px+)
|
|
338
|
+
- `md:` - Medium screens (768px+)
|
|
339
|
+
- `lg:` - Large screens (1024px+)
|
|
340
|
+
- `xl:` - Extra large screens (1280px+)
|
|
341
|
+
- `2xl:` - 2X large screens (1536px+)
|
|
342
|
+
|
|
343
|
+
3. **Accessibility considerations**:
|
|
344
|
+
- Use semantic HTML elements (`<header>`, `<nav>`, `<main>`, `<section>`, `<footer>`)
|
|
345
|
+
- Include `alt` attributes on all images
|
|
346
|
+
- Ensure sufficient color contrast (WCAG AA minimum)
|
|
347
|
+
- Use proper heading hierarchy (h1 → h2 → h3)
|
|
348
|
+
- Add `aria-label` attributes to interactive elements without visible text
|
|
349
|
+
|
|
350
|
+
4. **Image handling**:
|
|
351
|
+
- Use responsive images with appropriate sizes
|
|
352
|
+
- Include descriptive `alt` text
|
|
353
|
+
- Use lazy loading for below-the-fold images: `loading="lazy"`
|
|
354
|
+
|
|
355
|
+
5. **Link handling**:
|
|
356
|
+
- Use descriptive link text (avoid "click here")
|
|
357
|
+
- External links should have `target="_blank"` and `rel="noopener noreferrer"`
|
|
358
|
+
|
|
359
|
+
6. **Container patterns**:
|
|
360
|
+
- Use `container mx-auto px-4` for consistent content width
|
|
361
|
+
- Apply consistent vertical padding: `py-12 md:py-16 lg:py-20`
|