open-index/open-npm huggingface dataset:
npm package: @lucid-fdn/plugins-embedded
Description: All lucid-plugins MCP server factories bundled for in-process embedding
Latest version: 1.4.6

# @lucid-fdn/plugins-embedded

All 18 Lucid Skills MCP server factories bundled for in-process embedding via InMemoryTransport. Zero network overhead — tool calls execute in ~1-5ms.

## Install

```bash
npm install @lucid-fdn/plugins-embedded @modelcontextprotocol/sdk
```

## Quick Start

```ts
import {
  EmbeddedRegistry,
  createTradeServer,
  createPredictServer,
} from '@lucid-fdn/plugins-embedded'

// 1. Create registry
const registry = new EmbeddedRegistry()

// 2. Register servers
registry.register(createTradeServer(), 'trade')
registry.register(createPredictServer(), 'predict')

// 3. Call tools (client connects lazily on first call)
const result = await registry.callTool('trade', 'analyze_market', {
  symbol: 'BTC',
})
console.log(result.content) // [{ type: 'text', text: '...' }]

// 4. Clean up when done
await registry.closeAll()
```

## Available Servers

| Factory | Slug | Domain |
|---------|------|--------|
| `createAuditServer()` | audit | Smart contract security |
| `createBridgeServer()` | bridge | Startup ops (Notion/Linear/Slack) |
| `createCompeteServer()` | compete | Competitive intelligence |
| `createFeedbackServer()` | feedback | Customer feedback / NPS |
| `createHypeServer()` | hype | Growth hacking / social |
| `createInvoiceServer()` | invoice | Billing / revenue |
| `createMeetServer()` | meet | Meeting intelligence |
| `createMetricsServer()` | metrics | Product analytics |
| `createObservabilityServer()` | observability | Production monitoring |
| `createPredictServer()` | predict | Prediction markets |
| `createProposeServer()` | propose | RFP / proposal engine |
| `createProspectServer()` | prospect | Sales prospecting |
| `createQuantumServer()` | quantum | Bitcoin quantum search |
| `createRecruitServer()` | recruit | ATS / hiring pipeline |
| `createSeoServer()` | seo | SEO intelligence |
| `createTaxServer()` | tax | Crypto tax compliance |
| `createTradeServer()` | trade | Crypto trading |
| `createVeilleServer()` | veille | Content monitoring |
| `createVideoServer()` | video | Video generation |

## API

### `EmbeddedRegistry`

```ts
class EmbeddedRegistry {
  register(server: McpServer, name: string): void
  has(name: string): boolean
  size: number
  list(): Array<{ name: string; connected: boolean; connectedAt?: number }>
  callTool(server: string, tool: string, args?: Record<string, unknown>):
    Promise<{ content: unknown[]; isError: boolean }>
  closeAll(): Promise<void>
}
```

## How It Works

Each `createXxxServer()` returns a bare `McpServer` from `@modelcontextprotocol/sdk`. The `EmbeddedRegistry` connects to it via `InMemoryTransport` — an in-process pipe with no serialization overhead. The MCP client is created lazily on the first tool call and reused for subsequent calls.

## License

MIT
npm package: @lucid-fdn/skills-embedded
Description: All lucid-plugins MCP server factories bundled for in-process embedding
Latest version: 1.4.5

# @lucid-fdn/skills-embedded

All 18 Lucid Skills MCP server factories bundled for in-process embedding via InMemoryTransport. Zero network overhead — tool calls execute in ~1-5ms.

## Install

```bash
npm install @lucid-fdn/skills-embedded @modelcontextprotocol/sdk
```

## Quick Start

```ts
import {
  EmbeddedRegistry,
  createTradeServer,
  createPredictServer,
} from '@lucid-fdn/skills-embedded'

// 1. Create registry
const registry = new EmbeddedRegistry()

// 2. Register servers
registry.register(createTradeServer(), 'trade')
registry.register(createPredictServer(), 'predict')

// 3. Call tools (client connects lazily on first call)
const result = await registry.callTool('trade', 'analyze_market', {
  symbol: 'BTC',
})
console.log(result.content) // [{ type: 'text', text: '...' }]

// 4. Clean up when done
await registry.closeAll()
```

## Available Servers

| Factory | Slug | Domain |
|---------|------|--------|
| `createAuditServer()` | audit | Smart contract security |
| `createBridgeServer()` | bridge | Startup ops (Notion/Linear/Slack) |
| `createCompeteServer()` | compete | Competitive intelligence |
| `createFeedbackServer()` | feedback | Customer feedback / NPS |
| `createHypeServer()` | hype | Growth hacking / social |
| `createInvoiceServer()` | invoice | Billing / revenue |
| `createMeetServer()` | meet | Meeting intelligence |
| `createMetricsServer()` | metrics | Product analytics |
| `createObservabilityServer()` | observability | Production monitoring |
| `createPredictServer()` | predict | Prediction markets |
| `createProposeServer()` | propose | RFP / proposal engine |
| `createProspectServer()` | prospect | Sales prospecting |
| `createQuantumServer()` | quantum | Bitcoin quantum search |
| `createRecruitServer()` | recruit | ATS / hiring pipeline |
| `createSeoServer()` | seo | SEO intelligence |
| `createTaxServer()` | tax | Crypto tax compliance |
| `createTradeServer()` | trade | Crypto trading |
| `createVeilleServer()` | veille | Content monitoring |
| `createVideoServer()` | video | Video generation |

## API

### `EmbeddedRegistry`

```ts
class EmbeddedRegistry {
  register(server: McpServer, name: string): void
  has(name: string): boolean
  size: number
  list(): Array<{ name: string; connected: boolean; connectedAt?: number }>
  callTool(server: string, tool: string, args?: Record<string, unknown>):
    Promise<{ content: unknown[]; isError: boolean }>
  closeAll(): Promise<void>
}
```

## How It Works

Each `createXxxServer()` returns a bare `McpServer` from `@modelcontextprotocol/sdk`. The `EmbeddedRegistry` connects to it via `InMemoryTransport` — an in-process pipe with no serialization overhead. The MCP client is created lazily on the first tool call and reused for subsequent calls.

## License

MIT
npm package: @lucid_coder/free-discord-bot-code
Description: ![npm (scoped)](https://img.shields.io/npm/v/@lucid_coder/free-discord-bot-code)
Latest version: 1.2.1

![npm (scoped)](https://img.shields.io/npm/v/@lucid_coder/free-discord-bot-code) 

![GitHub issues](https://img.shields.io/github/issues/pajsen9263/Discord-Bot-20-Rows)

![GitHub issues](https://img.shields.io/github/issues-raw/pajsen9263/Discord-Bot-20-Rows)

![GitHub pull requests](https://img.shields.io/github/issues-pr/pajsen9263/Discord-Bot-20-Rows)

![GitHub last commit](https://img.shields.io/github/last-commit/pajsen9263/Discord-Bot-20-Rows)

![GitHub contributors](https://img.shields.io/github/contributors/pajsen9263/Discord-Bot-20-Rows)

DB2R 
====

DB2R aka Discord Bot 20 Rows is a NPM package. The ***NPM*** package can be used for any discord bot but it should follow the Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0).
Any changes made should be shown in a ***Changes.md**** file. The repo can not be private, a link of the repo should also be linked in the ***repo.md*** file. 


How to use
==========
Create a file with any name, for example ```index.js```, add the following lines:
```javascript
const run = require("discordjs-template");
run.start(token, name, color, owner, prefix)
```
Then run ```node filename.js``` in a terminal.
npm package: @lucidcms/cloudflare-adapter
Description: The official Cloudflare Worker adapter for Lucid CMS
Author: Proto Digital
Latest version: 1.1.0

# Lucid - Cloudflare Worker Adapter 

> The official Cloudflare Worker adapter for Lucid CMS

## Installation

```bash
npm install @lucidcms/cloudflare-adapter
```

## lucid.config.ts/js

```typescript
import { cloudflareAdapter, defineConfig } from "@lucidcms/cloudflare-adapter";

export const adapter = cloudflareAdapter();

export default defineConfig((env) => ({
    // ...config
});
```

## Wrangler

```jsonc
{
    "$schema": "../../node_modules/wrangler/config-schema.json",
    "name": "lucid-cms",
    "main": "dist/server.js",
    "compatibility_date": "2025-06-12",
    "compatibility_flags": [
        "nodejs_compat"
    ],
    "assets": {
        "directory": "./dist/public/",
        "binding": "ASSETS",
    },
    "triggers": {
        "crons": [
            "0 0 * * *"
        ]
    },
    "build": {
        "watch_dir": "./src",
        "command": "lucidcms build --cache-spa --silent",
        "cwd": "./"
    }
}
```
npm package: @lucidcms/libsql-adapter
Description: The official LibSQL adapter for Lucid CMS
Author: Proto Digital
Latest version: 1.0.2

# Lucid - LibSQL Adapter 

> The official LibSQL adapter for Lucid CMS

This package exports the LibSQL adapter for Lucid CMS.

## Installation

```bash
npm install @lucidcms/libsql-adapter
```

## lucid.config.ts/js

```typescript
import LibSQLAdapter from "@lucidcms/libsql-adapter"

export default lucid.config({
	db: new LibSQLAdapter({
		url: "libsql://replace-me.turso.io",
		authToken: 'auth-token'
	}),
    // ...other config
});
```
npm package: @lucidcms/node-adapter
Description: The official Node adapter for Lucid CMS
Author: Proto Digital
Latest version: 1.0.1

# Lucid - Node Adapter 

> The official Node adapter for Lucid CMS

## Installation

```bash
npm install @lucidcms/node-adapter
```

## lucid.config.ts/js

```typescript
import { nodeAdapter, defineConfig } from "@lucidcms/node-adapter";

export const adapter = nodeAdapter();

export default defineConfig((env) => ({
    // ...config,
});
```
npm package: @lucidcms/plugin-local-storage
Description: The official Local Storage plugin for Lucid
Author: Proto Digital
Latest version: 1.2.1

# Lucid - Local Storage Plugin

> The official Local Storage plugin for Lucid

This plugin registers the required media strategy functions to stream, upload, update and delete media from the specified local directory.

## Installation

```bash
npm install @lucidcms/plugin-local-storage
```

## lucid.config.ts/js

```typescript
import LucidLocalStorage from "@lucidcms/plugin-local-storage";

export default lucid.config({
  // ...other config
  plugins: [
    LucidLocalStorage({
      uploadDir: "./uploads",
      secretKey: 'MY_SECRET_KEY',
      supportedMimeTypes: ['image/jpeg', 'image/png'], // optional, default array supports a wide range of common mime types.
    }),
  ],
});
```
npm package: @lucidcms/plugin-nodemailer
Description: The official Nodemailer plugin for Lucid
Author: Proto Digital
Latest version: 1.1.1

# Lucid - Nodemailer Plugin

> The official Nodemailer plugin for Lucid

This plugin registers the required email strategy config and uses Nodemailer to send emails.

## Installation

```bash
npm install @lucidcms/plugin-nodemailer
```

## lucid.config.ts/js

```typescript
import LucidNodemailer from "@lucidcms/plugin-nodemailer";

export default lucid.config({
  // ...other config
  plugins: [
    LucidNodemailer({
      from: {
        email: "admin@lucidcms.io",
        name: "Lucid",
      },
      transporter: transporter,
    }),
  ],
});
```
npm package: @lucidcms/plugin-pages
Description: The official Pages plugin for Lucid
Author: Proto Digital
Latest version: 0.3.3

# @lucidcms/plugin-pages

> The official Pages plugin for Lucid

This plugin adds support for hierarchical documents and slugs to Lucid. When enabled on a collection, it will register three new fields to the collection: fullSlug, slug and parentPage. These fields are used to construct the fullSlug which is computed whenever a document is edited and is the combination of all of a document's parentPage slugs and the slug of the document itself. It achieves this by registering a handful of hooks that fire at different points in the document lifecycle. Depending on the hook, either its fullSlug is updated via its ancestors, or all of its descendants' fullSlugs are updated.

The intended use case for this plugin is to enable easy document fetching for front-end applications whereby you can use the URL location to filter a document via the fullSlug.

## Installation

```bash
npm install @lucidcms/plugin-pages
```

## Setup

To use the Pages plugin, you need to add it to your `lucid.config.ts` or `lucid.config.js` file. You will need to provide it with the necessary configuration options, such as a list of collections to enable the plugin on.

```typescript
import LucidPages from "@lucidcms/plugin-pages";

export default lucid.config({
  // ...other config
  plugins: [
    LucidPages({
      collections: [
        {
          collectionKey: "page",
          useTranslations: true,
          displayFullSlug: true,
        },
      ],
    }),
  ],
});
```

## Configuration

This plugin provides a few configuration options to control how it behaves. Aside from the `collectionKey`, all of these options are optional and have default values.

```ts
collections: Array<{
  collectionKey: string;
  useTranslations?: boolean;
  displayFullSlug?: boolean;
}
```

### collectionKey

The `collectionKey` is the key of the collection that you wish to enable the plugin on.

### useTranslations (false by default)

If set to `true`, the plugin will enable translations for the `slug` and `fullSlug` fields. This means that in the documents page builder, the `slug` and `fullSlug` fields will require translations for each locale that you have registered in your `lucid.config.ts` file.

### displayFullSlug (false by default)

If set to `true`, the plugin will make the `fullSlug` field visible in the documents page builder along with making it filterable and listable in the document listing. This is mostly intended for testing and development purposes, though there is no reason it can't be used in production. Please note, however, that the `fullSlug` field is always calculated, meaning it is not possible to edit this via the document page builder and even if this option is set to `true`, the field will be disabled.
npm package: @lucidcms/plugin-resend
Description: The official Resend plugin for Lucid
Author: Proto Digital
Latest version: 1.0.1

# Lucid - Resend Plugin

> The official Resend plugin for Lucid

This plugin registers the required email strategy config and uses Resend's REST API to send emails. Perfect for serverless environments like Cloudflare Workers.

## Installation

```bash
npm install @lucidcms/plugin-resend
```

## Usage

```typescript
import LucidResend from "@lucidcms/plugin-resend";

export default lucid.config({
  // ...other config
  plugins: [
    LucidResend({
      from: {
        email: "admin@lucidcms.io",
        name: "Lucid CMS",
      },
      apiKey: process.env.RESEND_API_KEY,
    }),
  ],
});
```
npm package: @lucidcms/plugin-s3
Description: The official S3 plugin for Lucid
Author: Proto Digital
Latest version: 2.0.1

# Lucid - S3 Plugin

> The official S3 plugin for Lucid

This plugin registers the required media strategy functions to stream, upload, update and delete media from any S3 compatible storage solution.

## Installation

```bash
npm install @lucidcms/plugin-s3
```

## lucid.config.ts/js

```typescript
import LucidS3 from "@lucidcms/plugin-s3";

export default lucid.config({
  // ...other config
    plugins: [
        LucidS3({
            endpoint: `https://${process.env.HEADLESS_CLOUDFLARE_ACCOUNT_ID}.r2.cloudflarestorage.com`,
            bucket: "headless-cms",
            clientConfig: {
                region: "auto",
                accessKeyId: process.env.HEADLESS_S3_ACCESS_KEY as string,
                secretAccessKey: process.env.HEADLESS_S3_SECRET_KEY as string,
            },
        }),
    ],
});
```
## Bucket Configuration

As Lucid uses presigned URLs to upload media from the client, you will need to configure your S3 bucket's CORS policy. This will need to allow `PUT` requests, along with the `Content-Type` and `Origin` headers.

### Example Cloudflare R2 CORS Policy

```json
[
  {
    "AllowedOrigins": [
      "http://localhost:8787",
      "http://localhost:6543",
    ],
    "AllowedMethods": [
      "GET",
      "PUT"
    ],
    "AllowedHeaders": [
      "Origin",
      "Content-Type",
      "x-amz-meta-*"
    ]
  }
]
```
npm package: @lucidcms/postgres-adapter
Description: The official Postgres adapter for Lucid CMS
Author: Proto Digital
Latest version: 1.0.2

# Lucid - Postgres Adapter 

> The official Postgres adapter for Lucid CMS

> [!CAUTION]
> Some queries in Lucid are currently not working with this adapter. Full support is in the works.

This package exports the Postgres adapter for Lucid CMS.

## Installation

```bash
npm install @lucidcms/postgres-adapter
```

## lucid.config.ts/js

```typescript
import PostgresAdapter from "@lucidcms/postgres-adapter"

export default lucid.config({
	db: new PostgresAdapter({
		connectionString: ""
	}),
    // ...other config
});
```
npm package: @lucidcms/sqlite-adapter
Description: The official SQLite adapter for Lucid CMS
Author: Proto Digital
Latest version: 1.0.2

# Lucid - SQLite Adapter 

> The official SQLite adapter for Lucid CMS

This package exports the SQLite adapter for Lucid CMS.

## Installation

```bash
npm install @lucidcms/sqlite-adapter
```

## lucid.config.ts/js

```typescript
import SQLiteAdapter from "@lucidcms/sqlite-adapter"

export default lucid.config({
	db: new SQLiteAdapter({
		database: async () => new Database("db.sqlite"),
	}),
    // ...other config
});
```
npm package: @lucidcreative/disguise-asset
Description: a simple library for converting a filepath to a disguise asset object
Author: KBjordahl
Latest version: 1.1.1

# disguise-asset

a simple library for converting a filepath to a disguise asset object. 

type-safety is included out of the box.

## Disguise asset object?
[Disguise](https://www.disguise.one) (aka d3) uses a set of content management rules to manage [version replacements](http://help.disguise.one/Content/Getting-started/Content-Management/Content-versioning.html) and other magic under the hood of their media server. This library attempts to recreate the logic they use to process a file based on it's file name and path. The resulting object looks like:

```typescript
interface DisguiseAsset {
	stem: string
	extension: string
	version?: string
	proxyLevel?: number
	frameStart?: number
	originalFilename: string
}
```

*you might notice that version is a string, when all other tags are numbers, and that's because date+letters is also a valid version tag. Versions are always sorted alphabetically.*

---

## Benchmark Summary:

|	Count	|	Time		|
|----------:|--------------:|
|       1 | 310112 μs        |
|     100 | 0.762929 ms   |
|    1000 | 6.511104 ms  |
| 1000000 | 171.870434 ms         |


* μs = nanoseconds
* test hardware: 
  * Darwin x64
  * Intel(R) Core(TM) i7-4980HQ CPU @ 2.80GHz
  * 16.0 GB RAM
* all tests done on randomized data, YMMV

---
brought to you by 

[![Lucid](https://ci4.googleusercontent.com/proxy/yKRk6C7KtirOW1ExpiKQ3Y6P9fJQbCB7sFJKunYjcnRhblTMK7bBOhVZ9-Bf-pYEIX0kob3-tZqUMGrjiKVV2T6hFiafBa9DAc3skqReyd9qkIetKilNt8O6xrboTBMIRRjriRmhwF_leR-Xfzxz_t_G5xbjjoLT6shZwilI54qECGyTueDLi-dpaWR-94Mp_3IdHh50LAeuJ5vy0A=s0-d-e1-ft#https://docs.google.com/uc?export=download&id=1MI_tkhEg2MOPiQvfWRwdWNRPltZPwB65&revid=0B_E6Q0L_NTYZZXhuaEMvK3hTZGZNMkk2MEdkWVQ3aEM5bkYwPQ "Lucid")](http://www.lucid.rocks)
npm package: @lucidcreative/disguise-telnet
Description: connection manager for disguise multitransport telnet remote control
Author: KBjordahl
Latest version: 1.0.4

# disguise-telnet
a stateful client for the [disguise](https://www.disguise.one "Disguise") Multitransport Telnet Remote Transport

brought to you by [Lucid](http://lucid.rocks "Lucid").

## usage
basic example
```typescript
import { DisguiseManager, PlayMode } from 'disguise-telnet'

// everything in this library uses async, mostly, so wrap in a function
async function(){
	const d3 = new DisguiseManager({
		ip:'127.0.0.1',

		// include a list of the players 
		// (aka transports) in the multitransport,
		// we can't query these from disguise yet...
		players:[
			'foreground',
			'background'
		]

		// callback function for status changes
		statusCallback: console.log

		// there's other options, use typescript to find them
		})

	const tracks = await d3.getTracks()
	const players = await d3.getPlayers()

	// this will do a 2 sec crossfade to the first cue 
	// of the first track and play section
	d3.trackCommand({
		command: PlayMode.PlaySection,
		player:players[0],
		transition: 2,
		cue: tracks[0].cues[0]
	})
}()
```

## hints
for all of the `get...` functions, there's an optional boolean parameter `fromCache` that defaults to true. you should either periodically run `DisguiseManager#refreshAllData()` or get data with `fromCache` set to false, in order to get updates after the initial connection. The primary goal of this is to avoid over-querying a running master instance by accident

### license
Copyright (c) 2019 Kyle Bjordahl + Lucid Creative LLC

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @lucidcreative/posistagenet-node
Description: NodeJS implementation of PosiStageNet https://www.posistage.net/
Author: KBjordahl
Latest version: 0.2.2

# PosiStageNet - Node
[![platform: jokio](https://img.shields.io/badge/platform-%F0%9F%83%8F%20jok-44cc11.svg)](https://github.com/jokio/jok-cli)

## Benchmarks


|Operation			| Number of Operations 	| Duration 			|
|-------------------|---------------------: |-------------------|
|encodeInfoPacket	| 1                     | ~0.3 ms          	|
|encodeInfoPacket	| 60                 	| ~10 ms         	|
|encodeInfoPacket	| 1 000             	| ~65 ms        	|
|encodeDataPacket	| 1                     | ~1.5 ms          	|
|encodeDataPacket	| 60                 	| ~17 ms         	|
|encodeDataPacket	| 1 000             	| ~170 ms        	|
npm package: @lucidlayer/reflex
Description: Reflex CLI, Simulate real users and catch broken UX before launch.
Author: Lucid Layer
Latest version: 1.2.3

# Reflex CLI by Lucid Layer

---

## Simulate real users. Catch broken UX before launch.

---

### **What is Reflex?**

Reflex is a CLI tool that spins up a headless browser, simulates real user flows, and uses AI to instantly find UX issues **before** you ship.

- **Goal-driven:** Simulate specific user goals.
- **Persona-aware:** Emulate different user types.
- **Instant feedback:** Get actionable reports in seconds.
- **CLI-first:** Fits right into your dev workflow.
- **No more guesswork:** Ship with confidence.

---

### **Installation**

**Global:**

```bash
npm install -g @lucidlayer/reflex
```

**Or with npx (zero install):**

```bash
npx @lucidlayer/reflex http://localhost:3000
```

---

### **IMPORTANT: Set your OpenRouter API key**

Reflex CLI requires an **OpenRouter API key** to generate UX feedback.

1. **Get your API key:**  
   Sign up at [https://openrouter.ai](https://openrouter.ai) and copy your API key.

2. **Create a `.env` file** (or `.env.local`, `.env.development`, `.env.production`) in your project or home directory with:

```
REFLEX_OPENROUTER_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

3. **Or pass it as a CLI flag:**

```bash
uxcheck http://localhost:3000 --apiKey sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

If you don’t set your key, you will get a **401 Unauthorized error**.

---

### **Usage**

Basic scan:

```bash
uxcheck http://localhost:3000
```

With custom goal and persona:

```bash
uxcheck http://localhost:3000 --goal "Try to sign up" --persona "new user"
```

Manual mode (copy-paste prompt):

```bash
uxcheck http://localhost:3000 --manual
```

Save JSON report:

```bash
uxcheck http://localhost:3000 --json
```

---

### **Features**

- Mobile viewport emulation
- Persona simulation
- Goal-driven flows
- Markdown + JSON reports
- CLI spinners and progress
- Extensible roadmap: IDE integrations, ACE autopilot, dashboard

---

### **Roadmap**

- [x] CLI MVP
- [ ] Persona presets
- [ ] Multi-device support
- [ ] IDE integrations
- [ ] ACE-powered real-time testing
- [ ] Dashboard UI

---

### **Contributing**

- Clone the repo
- Run `npm install`
- Build with `npm run build`
- PRs welcome!

---

### **Security**

Please report vulnerabilities privately to:  
**lucidlayerhq@gmail.com**

---

### **License**

MIT © 2025 Lucid Layer

---

### **Links**

- Website: [https://reflexlayer.com](https://reflexlayer.com)
- Twitter: [@reflexlayer](https://twitter.com/reflexlayer)
- Company: [@lucidlayerhq](https://twitter.com/lucidlayerhq)
- GitHub Org: [https://github.com/lucidlayer](https://github.com/lucidlayer)

---
npm package: @lucido/reflect
Description: Responsive, themeable style system for React Native and React Native Web
Author: Santiago Ferreira
Latest version: 0.0.15
Deprecated: This package has been renamed to react-native-reflect: https://www.npmjs.com/package/react-native-reflect

This package has been renamed to `react-native-reflect`

Please get it here: https://www.npmjs.com/package/react-native-reflect
npm package: @lucidogen/blocks
Description: Modular development of Cerebral JS apps.
Author: Gaspard Bucher
Latest version: 1.0.0-1527768349821

# @lucidogen/blocks

Modular Cerebral JS app development.

[![NPM version][npm-image]][npm-url]
[![Build status][travis-image]][travis-url]
[![Coverage Status][coverage-image]][coverage-url]
[![Commitizen friendly][commitizen-image]][commitizen-url]

[npm-image]: https://img.shields.io/npm/v/@lucidogen/blocks.svg?style=flat
[npm-url]: https://npmjs.org/package/@lucidogen/blocks
[travis-image]: https://img.shields.io/travis/lucidogen/blocks.svg?style=flat
[travis-url]: https://travis-ci.org/lucidogen/blocks
[coverage-image]: https://img.shields.io/coveralls/github/lucidogen/blocks.svg?style=flat
[coverage-url]: https://coveralls.io/github/lucidogen/blocks
[commitizen-image]: https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat
[commitizen-url]: http://commitizen.github.io/cz-cli/
npm package: @lucidogen/data
Description: Persitence layer (offline and online).
Author: Gaspard Bucher
Latest version: 1.0.0-1531388439951

# @lucidogen/data

[![NPM version][npm-image]][npm-url]
[![Build status][travis-image]][travis-url]
![100% coverage](coverage-image)

[npm-image]: https://img.shields.io/npm/v/@lucidogen/data.svg?style=flat
[npm-url]: https://npmjs.org/package/@lucidogen/data
[travis-image]: https://img.shields.io/travis/lucidogen/lucidogen.svg?style=flat
[travis-url]: https://travis-ci.org/lucidogen/lucidogen
[coverage-image]: https://user-images.githubusercontent.com/21707/42124583-7f5478c4-7c65-11e8-8d01-36851d49a8ab.png

The data block adds a persitence layer (offline and online) to apps.
It uses GraphQL to sync between client and server.