LightNow CLI
The LightNow CLI connects your local MCP clients with LightNow.
Use it to sign in, discover MCP servers, configure local AI clients such as Codex, Claude Desktop, Cursor, VS Code and Google Antigravity, and keep MCP server configuration and secrets managed by LightNow.
Install
Requirements for Python-based installs:
- Python 3.11 or higher
pipx- a LightNow account
Install the CLI with Homebrew:
brew tap lightnow-ai/tap
brew install lightnow-cli
Install the CLI with pipx:
pipx install lightnow-cli
Or install it with uv:
uv tool install lightnow-cli
If you prefer installing directly from the public repository:
pipx install git+https://github.com/lightnow-ai/lightnow-cli.git
Sign In
lightnow login
The CLI opens a browser window for LightNow authentication. After sign-in, check your session with:
lightnow status
Find MCP Servers
Search the LightNow Registry:
lightnow search sonarqube
Show details for one server:
lightnow info io.github.SonarSource/sonarqube-mcp-server
Show your favorites:
lightnow favorites
Configure an MCP Client
The recommended setup is Local Proxy mode: your MCP client gets one LightNow
entry and the local proxy resolves the configured MCP servers and secrets at
runtime.
Install the Local Proxy executable first with Homebrew:
brew tap lightnow-ai/tap
brew install lightnow-proxy
Or install it with pipx:
pipx install lightnow-proxy
Or install it with uv:
uv tool install lightnow-proxy
The proxy package installs the lightnow-proxy command used in MCP client configs.
For local development from a checkout:
uv tool install --from /path/to/lightnow-proxy lightnow-proxy
Then sync your client:
lightnow sync --client codex --local-proxy
Multiple accounts and organizations
Each Local Proxy connection can have its own client alias, LightNow login,
profile and personal or tenant scope. The sync command binds the connection to
the account that is signed in at that moment; signing in with another account
later does not silently move an existing connection.
Connection aliases are either lightnow or start with lightnow- or
lightnow_, so they remain TOML-safe and distinguishable from unmanaged local
MCP servers.
For example, configure personal and organization connections side by side:
lightnow login
lightnow sync --client codex --local-proxy \
--connection lightnow-personal --profile default
# Sign in with the organization account before creating this connection.
lightnow login
lightnow sync --client codex --local-proxy \
--connection lightnow-acme --tenant <tenant-id> --profile engineering
Codex then exposes both lightnow-personal and lightnow-acme. Re-run sync
with the same --connection value to update that connection. Account-bound
sessions are stored separately under ~/.lightnow/sessions/; proxy YAML files
contain only their path and expected identity, never access or refresh tokens.
Use lightnow config-status --client codex --json to inspect all connections,
including their non-secret account, scope, profile and session-binding status.
Signing in to another account preserves existing bound sessions. An explicit
lightnow logout removes the active account's named session, so proxies bound
to that account stop authenticating until it is signed in and synced again.
Other common clients:
lightnow sync --client claude-desktop --local-proxy
lightnow sync --client antigravity --local-proxy
lightnow sync --client cursor --local-proxy
lightnow sync --client vscode --local-proxy
Let LightNow choose the configured organization policy for a client:
lightnow sync --client codex --from-settings
When LightNow Config blocks unmanaged MCP servers, managed clients keep only the
LightNow entry. When unmanaged servers are allowed, existing user-managed MCP
entries stay in the client config and config-status reports mixed.
Check whether a client is configured as expected:
lightnow config-status --client codex
lightnow config-status --client claude-desktop --json
lightnow config-status --client cursor --json
lightnow config-status --client vscode --json
With metadata telemetry enabled, each Local Proxy sync also registers the machine and its client-specific Runtime Profile in the LightNow Control Plane. The CLI stores a stable installation UUID in its protected configuration and a separate stable client-instance UUID in each generated proxy configuration. It does not report IP or MAC addresses, serial numbers, local paths, or secrets.
For details, examples, diagrams and troubleshooting, see Connect MCP clients.
Direct Sync
Sync your default LightNow runtime profile into Codex:
lightnow sync --client codex
Preview changes before writing:
lightnow sync --client codex --dry-run
Use runner mode when you do not want secrets written into client configuration files:
lightnow sync --client codex --runner
For daemon-style local testing, --local-proxy-transport http writes a
localhost Streamable HTTP entry instead of a stdio auto-start entry.
Note: Google has moved individual Gemini CLI users to Antigravity. LightNow
keeps gemini-cli support for Enterprise/API-key environments, but
antigravity is the recommended Google local client target for individuals.
Run One Server
Run a configured MCP server through LightNow:
lightnow run --profile default --server sonarqube
More Documentation
License
Apache-2.0. See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lightnow_cli-1.3.1.tar.gz.
File metadata
- Download URL: lightnow_cli-1.3.1.tar.gz
- Upload date:
- Size: 93.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a930c3aabe02488bbcd7941812acea33546d9391fcb1fda989d993921fd9abbd
|
|
| MD5 |
ccbf40f9276b4465bf42d6d62b847c39
|
|
| BLAKE2b-256 |
a917c4fa557760dee1699699302a80aed3ec44bb2ae4c651a8079adbccbb288f
|
Provenance
The following attestation bundles were made for lightnow_cli-1.3.1.tar.gz:
Publisher:
release.yml on lightnow-ai/lightnow-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lightnow_cli-1.3.1.tar.gz -
Subject digest:
a930c3aabe02488bbcd7941812acea33546d9391fcb1fda989d993921fd9abbd - Sigstore transparency entry: 2189835413
- Sigstore integration time:
-
Permalink:
lightnow-ai/lightnow-cli@7d22ea431b388e8f0d1c342273ec78d6684b06c2 -
Branch / Tag:
refs/tags/v1.3.1 - Owner: https://github.com/lightnow-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7d22ea431b388e8f0d1c342273ec78d6684b06c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file lightnow_cli-1.3.1-py3-none-any.whl.
File metadata
- Download URL: lightnow_cli-1.3.1-py3-none-any.whl
- Upload date:
- Size: 55.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67ead9069d97de9f0fea9f1a146c4d10f40b266a86812cc396aa8126065c1ffc
|
|
| MD5 |
f7fd39c0085d76acf3cb439df00e6225
|
|
| BLAKE2b-256 |
23c3374bacccc17818bd3461c1b0ad9e489e2c9f1fd11f1e31be96b3402102f4
|
Provenance
The following attestation bundles were made for lightnow_cli-1.3.1-py3-none-any.whl:
Publisher:
release.yml on lightnow-ai/lightnow-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lightnow_cli-1.3.1-py3-none-any.whl -
Subject digest:
67ead9069d97de9f0fea9f1a146c4d10f40b266a86812cc396aa8126065c1ffc - Sigstore transparency entry: 2189835418
- Sigstore integration time:
-
Permalink:
lightnow-ai/lightnow-cli@7d22ea431b388e8f0d1c342273ec78d6684b06c2 -
Branch / Tag:
refs/tags/v1.3.1 - Owner: https://github.com/lightnow-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7d22ea431b388e8f0d1c342273ec78d6684b06c2 -
Trigger Event:
push
-
Statement type: