LexQ CLI
The Decision Operations Platform for engineering teams.
CLI and MCP server for LexQ — move business rules out of
your deploy pipeline, prove every change with Impact Simulation, and ship without
a git push.
Website · Docs · Console · MCP Registry

Why LexQ?
Your business rules — pricing, promotions, fee logic, eligibility checks —
change often. But every change ships through the same PR → review → staging
→ deploy cycle as your core application code. A one-line discount rule
takes two weeks.
This is an architectural problem, not a process problem. Business logic
that changes weekly shouldn't live in code that ships quarterly.
LexQ separates the two. Rules live outside your application. You change
them in a visual console or through this CLI. You prove every change with
Impact Simulation against real execution data. You deploy without touching
your codebase.
Every decision leaves a full audit trace.
Install
npm install -g @lexq/cli
Or run without installing:
npx @lexq/cli
Requires Node.js 22+.
Quick Start
lexq auth login
lexq auth whoami
lexq domain-templates list
lexq domain-templates apply --template ECOMMERCE
lexq analytics dry-run --version-id <VERSION_ID> --debug \
--json '{"facts":{"loyaltyTier":"PLATINUM","purchaseSubtotalUsd":150}}'
lexq deploy publish --group-id <GROUP_ID> --version-id <VERSION_ID> --memo "v1"
lexq deploy live --group-id <GROUP_ID> --version-id <VERSION_ID> --memo "Initial deploy"
For AI Agents — the Complete Partner API
LexQ is designed to be AI-native. The entire policy engine Partner API is
exposed via Model Context Protocol. Claude, Cursor, and other MCP-compatible
agents can create, simulate, and deploy rules autonomously, with human approval
before production.
Claude.ai (Cloud — no install)
- Settings → Connectors → Add Custom Integration
- Enter:
https://mcp.lexq.io
- Sign in with your LexQ account and select an API key
- Done — the full toolset available in every conversation
Remote (Streamable HTTP)
For any MCP client that supports remote servers:
{
"mcpServers": {
"lexq": {
"url": "https://mcp.lexq.io"
}
}
}
OAuth 2.1 authentication is handled automatically by your client.
Local (stdio)
Run LexQ CLI as a local MCP server:
lexq serve --mcp
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"lexq": {
"command": "npx",
"args": [
"-y",
"@lexq/cli",
"serve",
"--mcp"
]
}
}
}
VS Code / Cursor
.vscode/mcp.json:
{
"servers": {
"lexq": {
"command": "npx",
"args": [
"-y",
"@lexq/cli",
"serve",
"--mcp"
]
}
}
}
Prerequisite: lexq auth login must have been run once to store an
API key in ~/.lexq/config.json, or LEXQ_API_KEY must be set in the client's
environment block.
Registry
The server is listed on the official MCP Registry as io.lexq/lexq. Clients that
browse the registry find both the npm package and the hosted endpoint in that one entry.
Protocol Support
The local stdio server and the hosted Streamable HTTP endpoint both serve two MCP
revisions from one set of tool definitions, so a client sees the same tools either way.
2026-07-28 | A per-request _meta envelope. No handshake. |
2025-11-25 | The initialize handshake. |
There is nothing to configure. The server answers in whichever revision the opening message
used, so a client can move to 2026-07-28 on its own schedule and one that has not moved
keeps working.
AI Agent Skills
LexQ CLI ships with AI Agent Skills — structured documentation agents
read to understand how to use the tools, not just what they are.
skills/
├── lexq-shared/SKILL.md Core concepts, auth, workflow
├── lexq-groups/SKILL.md Policy groups, conflict resolution, A/B testing
├── lexq-rules/SKILL.md Condition syntax, action types, mutex
├── lexq-simulation/SKILL.md Dry run, Impact Simulation, compare
├── lexq-execution/SKILL.md History, stats, failure logs, provenance, replay, latency profile
└── lexq-recipes/SKILL.md End-to-end recipes
.claude/CLAUDE.md Claude Code project context
AGENTS.md Universal agent guide (Cursor, Windsurf, Gemini CLI, Cline)
CONTEXT.md Platform architecture & glossary
After installing @lexq/cli, agents can read skills from:
node_modules/@lexq/cli/skills/
node_modules/@lexq/cli/AGENTS.md
node_modules/@lexq/cli/CONTEXT.md
Commands
lexq auth login | logout | whoami
lexq status API health check
lexq serve Run as MCP stdio server (--mcp)
lexq groups list | get | create | update | delete | reorder
lexq groups ab-test start | stop | adjust
lexq versions list | get | create | update | delete | clone
lexq rules list | get | create | update | delete | reorder | toggle
lexq facts list | create | update | delete | action-metadata | unregistered
lexq domain-templates list | preview | apply
lexq deploy publish | live | rollback | undeploy | history | detail | overview | deployable | diff | schedule | unschedule | schedules
lexq analytics dry-run | dry-run-compare | requirements
lexq analytics simulation start | status | list | cancel | export
lexq analytics dataset upload | template
lexq profile <groupId> — per-rule latency profile
lexq history list | get | stats
lexq replay decision | start | list | get | cancel
lexq logs list | get | action | bulk-action
lexq provenance get | reveal-audits
lexq webhook-subscriptions list | get | save | delete | test
Global Options
--format <json|table> | Output format (default: json) |
--api-key <key> | Override stored API key |
--base-url <url> | Override API base URL |
--dry-run | Preview the HTTP request without executing |
--verbose | Show request/response details |
--no-color | Disable colored output |
Configuration
Config is stored at ~/.lexq/config.json:
{
"apiKey": "YOUR_API_KEY",
"baseUrl": "https://api.lexq.io/api/v1/partners",
"format": "json"
}
The file holds an API key in plain text, so it is written 0600 inside a 0700 directory —
readable by its owner and nobody else on the machine. An install created by an older version
is repaired on the next save.
Environment variables
These are read by the MCP server (lexq serve --mcp) and take precedence over the stored
config. They let an editor or CI target an environment through the client's own config block,
without writing to ~/.lexq/config.json. CLI commands use --api-key and --base-url instead.
LEXQ_API_KEY | apiKey |
PARTNER_BASE_URL | baseUrl |
Development
git clone https://github.com/lexq-io/lexq-cli.git
cd lexq-cli
pnpm install
pnpm build
pnpm start -- groups list
pnpm typecheck
pnpm lint
pnpm build
Checks that guard a stated fact against the thing that owns it. All of them run in CI.
pnpm enums:check
pnpm prose:check
pnpm ab-key:check
pnpm surface:check
pnpm registry:check
pnpm schemas:check
pnpm test:fact-key
pnpm test:decimals
pnpm test:export-format
pnpm protocol:check
Security
Report a vulnerability through
GitHub's private reporting form.
The policy, including what is in scope, is in
SECURITY.md.
License
Apache-2.0