All CLI commands across the Luqen packages.
Discover and scan URLs for accessibility issues.
luqen scan https://example.com [options]Options:
| Flag | Description |
|---|---|
--standard <standard> |
WCAG standard: WCAG2A, WCAG2AA, or WCAG2AAA |
--concurrency <number> |
Number of concurrent scans |
--repo <path> |
Path to source repository for source mapping |
--output <dir> |
Output directory for reports |
--format <format> |
Report format: json, html, or both (default: json) |
--also-crawl |
Also crawl the site in addition to using sitemaps |
--config <path> |
Path to configuration file |
--compliance-url <url> |
URL of the compliance service for legal enrichment |
--jurisdictions <list> |
Comma-separated jurisdiction IDs (default: EU,US) |
--compliance-client-id <id> |
OAuth client ID for the compliance service |
--compliance-client-secret <secret> |
OAuth client secret for the compliance service |
Exit codes:
| Code | Meaning |
|---|---|
0 |
Clean -- no issues found |
1 |
Issues found |
2 |
Partial failure (page-level errors) |
3 |
Fatal error |
Examples:
# Basic scan with default settings
luqen scan https://example.com
# Scan with HTML report, higher concurrency, and source mapping
luqen scan https://example.com \
--format html \
--concurrency 5 \
--repo ./my-website
# Scan with compliance enrichment
luqen scan https://example.com \
--compliance-url http://localhost:4000 \
--jurisdictions EU,USPropose and interactively apply accessibility fixes.
luqen fix [url] --repo <path> [options]Options:
| Flag | Description |
|---|---|
--repo <path> |
(required) Path to source repository |
--from-report <path> |
Load scan results from an existing JSON report |
--config <path> |
Path to configuration file |
--standard <standard> |
WCAG standard: WCAG2A, WCAG2AA, or WCAG2AAA |
Either a URL or --from-report must be provided.
Interactive prompts: For each proposed fix, you are prompted with:
[y]es-- apply the fix[n]o-- skip the fix[s]how diff-- preview the change[a]bort all-- stop processing remaining fixes
Exit codes:
| Code | Meaning |
|---|---|
0 |
Success |
3 |
Fatal error |
Examples:
# Fix from a live scan
luqen fix https://example.com --repo ./my-website
# Fix from an existing report
luqen fix --from-report ./reports/scan.json --repo ./my-websiteStart the Fastify REST + MCP + A2A server.
luqen-compliance serve [options]Options:
| Flag | Description |
|---|---|
--port <number> |
Port to listen on (default: 4000) |
Prerequisites: JWT keys must be generated first with luqen-compliance keys generate.
Example:
luqen-compliance serve --port 4000Load the baseline compliance dataset (jurisdictions, regulations, requirements).
luqen-compliance seedExample:
luqen-compliance seed
# Seed complete:
# Jurisdictions: 8
# Regulations: 12
# Requirements: 45Create a new OAuth2 client.
luqen-compliance clients create --name <name> [options]Options:
| Flag | Description |
|---|---|
--name <name> |
(required) Client name |
--scope <scopes> |
Space-separated scopes (default: read) |
--grant <grantType> |
Grant type (default: client_credentials) |
Example:
luqen-compliance clients create --name "my-scanner" --scope "read write"
# Client created:
# client_id: abc123
# client_secret: secret456List all OAuth2 clients.
luqen-compliance clients listDelete an OAuth2 client.
luqen-compliance clients revoke <client-id>Example:
luqen-compliance clients revoke abc123Create a new user.
luqen-compliance users create --username <username> --password <password> [options]Options:
| Flag | Description |
|---|---|
--username <username> |
(required) Username |
--password <password> |
(required) Password |
--role <role> |
User role: admin, editor, or viewer (default: viewer) |
Example:
luqen-compliance users create --username admin --password secret --role adminGenerate an RS256 JWT key pair and save to ./keys/.
luqen-compliance keys generate
# Key pair generated:
# ./keys/private.pem
# ./keys/public.pemStart the MCP server on stdio (for use with Claude Code or Claude Desktop).
luqen-compliance mcpStart the dashboard web server.
luqen-dashboard serve [options]Options:
| Flag | Description |
|---|---|
-p, --port <number> |
Port to listen on (overrides config) |
-c, --config <path> |
Path to config file (default: dashboard.config.json) |
Example:
luqen-dashboard serve --port 3000Create or update the SQLite database schema.
luqen-dashboard migrate [options]Options:
| Flag | Description |
|---|---|
-d, --db-path <path> |
Path to SQLite database file (overrides config) |
-c, --config <path> |
Path to config file (default: dashboard.config.json) |
Example:
luqen-dashboard migrate --db-path ./data/dashboard.dbScan the dashboard itself for WCAG 2.1 AA accessibility issues.
luqen-dashboard self-audit [options]Options:
| Flag | Description |
|---|---|
--url <url> |
URL of a running dashboard instance to audit |
-p, --port <number> |
Port for auto-started dashboard (default: from config) |
-c, --config <path> |
Path to config file (default: dashboard.config.json) |
--json |
Output raw JSON instead of formatted summary |
Exit codes:
| Code | Meaning |
|---|---|
0 |
No errors found |
1 |
Accessibility errors found |
Example:
# Audit a running instance
luqen-dashboard self-audit --url http://localhost:3000
# Output as JSON
luqen-dashboard self-audit --jsonDisplay or regenerate the dashboard API key. The API key is generated automatically on first start and is used for solo-mode authentication and programmatic API access.
luqen-dashboard api-key [subcommand] [options]Subcommands:
| Subcommand | Description |
|---|---|
show |
Display the current API key (default if no subcommand given) |
regenerate |
Generate a new API key and invalidate the previous one |
Options:
| Flag | Description |
|---|---|
-c, --config <path> |
Path to config file (default: dashboard.config.json) |
-d, --db-path <path> |
Path to SQLite database file (overrides config) |
Examples:
# Show the current API key
luqen-dashboard api-key
# Regenerate the API key
luqen-dashboard api-key regenerateList all installed plugins.
luqen-dashboard plugin list [options]Options:
| Flag | Description |
|---|---|
-c, --config <path> |
Path to config file (default: dashboard.config.json) |
Output columns: ID, Package, Type, Version, Status.
Install a plugin from the registry.
luqen-dashboard plugin install <package> [options]Options:
| Flag | Description |
|---|---|
-c, --config <path> |
Path to config file (default: dashboard.config.json) |
Example:
luqen-dashboard plugin install @luqen/plugin-notify-slackConfigure an installed plugin with key=value pairs.
luqen-dashboard plugin configure <id> --set <key=value...> [options]Options:
| Flag | Description |
|---|---|
--set <pairs...> |
One or more key=value pairs |
-c, --config <path> |
Path to config file (default: dashboard.config.json) |
Example:
luqen-dashboard plugin configure abc-123 --set webhookUrl=https://hooks.slack.com/xxx channel=#a11yActivate an installed plugin. The plugin is loaded, its activate() hook is called, and periodic health checks begin.
luqen-dashboard plugin activate <id> [options]Options:
| Flag | Description |
|---|---|
-c, --config <path> |
Path to config file (default: dashboard.config.json) |
Deactivate a running plugin. Calls the plugin's deactivate() hook and stops health checks.
luqen-dashboard plugin deactivate <id> [options]Options:
| Flag | Description |
|---|---|
-c, --config <path> |
Path to config file (default: dashboard.config.json) |
Remove an installed plugin. Deactivates it first if active, then deletes the database record and package files.
luqen-dashboard plugin remove <id> [options]Options:
| Flag | Description |
|---|---|
-c, --config <path> |
Path to config file (default: dashboard.config.json) |
Start the LLM provider management service.
luqen-llm serve [options]Options:
| Flag | Description |
|---|---|
--port <number> |
Port to listen on (default: 4200) |
Prerequisites: JWT keys must be generated first with luqen-llm keys generate.
Example:
luqen-llm serve --port 4200Generate an RS256 JWT key pair and save to the specified directory.
luqen-llm keys generate [options]Options:
| Flag | Description |
|---|---|
--dir <dir> |
Output directory (default: ./keys) |
Example:
luqen-llm keys generate
# Keys written to ./keys/
# ./keys/private.pem
# ./keys/public.pemCreate a new OAuth2 client for machine-to-machine access.
luqen-llm clients create --name <name> [options]Options:
| Flag | Description |
|---|---|
--name <name> |
(required) Client display name |
--scopes <scopes> |
Comma-separated scopes (default: read) |
--org <orgId> |
Organisation ID (default: system) |
Example:
luqen-llm clients create --name "compliance-service" --scopes "read,admin"
# Client created:
# ID: abc123
# Secret: secret456
# Scopes: read, adminList all OAuth2 clients.
luqen-llm clients listCreate a new user for password-based token access.
luqen-llm users create --username <username> --password <password> [options]Options:
| Flag | Description |
|---|---|
--username <username> |
(required) Username |
--password <password> |
(required) Password |
--role <role> |
Role: viewer, editor, or admin (default: admin) |
Example:
luqen-llm users create --username admin --password secret --role admin
# User created: admin (admin)Run one full scan cycle over all monitored legal sources.
luqen-monitor scan [options]Options:
| Flag | Description |
|---|---|
--sources-file <path> |
Path to a local sources JSON file (standalone mode) |
Exit codes:
| Code | Meaning |
|---|---|
0 |
All sources scanned successfully |
1 |
One or more sources had errors |
Example:
# Scan using compliance service sources
luqen-monitor scan
# Scan from a local file
luqen-monitor scan --sources-file ./sources.jsonShow current monitor status (source count, last scan time, pending proposals).
luqen-monitor statusStart the MCP server on stdio (for use with Claude Code or Claude Desktop).
luqen-monitor mcpStart an HTTP server with A2A endpoints.
luqen-monitor serve [options]Options:
| Flag | Description |
|---|---|
--port <port> |
Port to listen on (default: 4200) |
Endpoints:
| Path | Method | Description |
|---|---|---|
/.well-known/agent.json |
GET | A2A agent card |
/health |
GET | Health check |
Example:
luqen-monitor serve --port 4200