Entidex
EntidexEntity Intelligence Observatory
Explore EntidexPipelineMethodologyCLIAPIAboutPricing
SearchGet Started

Curious how your entity is being described right now? Run a free scan — 30+ live collectors, no signup required.

Run a free scan
EntidexEntidex

Entity intelligence observatory. 30+ live collectors across 8 signal categories — resolved to one canonical entity.

Discover the public side at Explore Entidex

Platform

  • API
  • Pricing
  • Intelligence Pipeline
  • 30+ Collectors
  • Methodology
  • CLI
  • About

Explore Entidex

  • Observatory Dashboard
  • Visibility Rankings
  • Reports
  • Compare Entities
  • Search

Resources

  • Technology
  • Startups
  • People
  • Brands

Legal

  • Methodology
  • About
  • Explore Entidex

© 2026 Entidex. Entity intelligence observatory. All signals are observational, not definitive.

MethodologyPipelineAboutExplore Entidex
  1. Home
  2. CLI

Entidex CLI

The official command-line interface for Entidex. Resolve any entity, inspect its visibility and sentiment indices, stream live drift events, and feed answer-ready intelligence into your scripts, CI pipelines, and LLM agents — all from your terminal.

Quick start

# install (macOS / Linux)
curl -fsSL https://entidex.com/install.sh | sh

# install (Windows PowerShell)
irm https://entidex.com/install.ps1 | iex

# authenticate via device flow
entidex login

# look up your first entity
entidex lookup spacex

# stream live drift (tier: layer_3_drift)
entidex watch openai

On this page

  • Installation
  • Authentication
  • Output modes
  • Command reference
  • Exit codes
  • Configuration
  • LLM agent affordances
  • Telemetry & privacy
  • Tier matrix
  • Troubleshooting

Installation

The CLI is a single static Go binary. Pick the channel that fits your environment — every channel installs the same binary.

macOS / Linux

curl -fsSL https://entidex.com/install.sh | sh

# pin a version
curl -fsSL https://entidex.com/install.sh | sh -s -- --version v0.1.0

Windows (PowerShell)

irm https://entidex.com/install.ps1 | iex

# pin a version
$env:ENTIDEX_VERSION = 'v0.1.0'
irm https://entidex.com/install.ps1 | iex

Homebrew

brew install entidex/tap/entidex

Scoop

scoop bucket add entidex https://github.com/entidex/scoop-bucket
scoop install entidex

npm (global)

npm install -g @entidex/cli

pip

pip install entidex

Supported platforms: macOS (arm64, amd64), Linux (arm64, amd64), Windows (amd64). After install, run entidex doctor to verify everything is wired up.

Authentication

The CLI authenticates with an API key. The recommended way to obtain one is the device flow: it never asks for your password and the key is generated server-side, scoped to your selected tier, and saved with mode 0600.

Device flow

$ entidex login

  Open this URL in your browser:
    https://entidex.com/cli/auth?code=ABCD-EFGH
  Verification code: ABCD-EFGH
  Waiting for approval...
✓ Logged in. API key saved to ~/.entidex/config.toml
  1. The CLI requests a device code and prints a short URL plus an 8-character user code.
  2. Open the URL, sign in to Entidex, confirm the code matches, and pick a tier.
  3. The CLI polls the token endpoint every 5 seconds. On approval it receives a freshly issued API key and stores it in ~/.entidex/config.toml.
  4. Device codes expire after 15 minutes. The plaintext key is consumed once — subsequent polls return denied.

Environment variable

For CI / containers, set the key at runtime. The env var always wins over the config file.

export ENTIDEX_API_KEY=entx_live_sk_xxxxxxxxxxxxxxxxxxxxxxxx
entidex visibility openai

Manage keys

entidex keys list
entidex keys create --name ci --tier layer_2_insight --env live
entidex keys revoke <id> --yes

Keys are formatted entx_{live|test}_sk_{24 chars}. The plaintext value is shown exactly once at creation. Rotate by creating a new key and revoking the old one.

Output modes

Output mode resolution, in order of precedence:

  1. --json flag — always JSON.
  2. ENTIDEX_OUTPUT env var — auto, pretty, or json.
  3. output field in ~/.entidex/config.toml.
  4. Auto: pretty when stdout is a TTY, JSON otherwise.
# pretty (interactive shell)
$ entidex lookup spacex
SpaceX  (spacex)
  type: org
  completeness: 92%
  visibility: 78.4

# JSON (piped)
$ entidex lookup spacex | jq '.visibility_score'
78.4

# JSON (forced)
$ entidex lookup spacex --json

Errors always use the stable format [CODE] message — action on stderr, regardless of mode, so scripts and LLM agents can parse them deterministically.

Command reference

Every command supports the global flags --json, --debug, --base-url, --output, --yes, --dry-run, and --idempotency-key. Run entidex <command> --help for the full list.

Read — entities & insights

entidex lookup <entity>free

Resolve an entity (slug, name, or alias) and print its canonical profile.

entidex lookup spacex
entidex search <query> [--type <kind>] [--limit N]free

Search the discovery layer.

entidex resolve <query>free

Return only the canonical id/slug — machine-friendly form of lookup.

entidex visibility <entity> [--window 7d|30d|90d|all]layer_2_insight

AI Visibility Score breakdown across engines + AI Overviews + SERP.

entidex sentiment <entity>layer_2_insight

Sentiment Triangulation Index breakdown by source category.

entidex drift <entity>layer_3_drift

Narrative Drift Score and trajectory points across the chosen window.

entidex export <entity> [--include claims,completeness,neighbourhood] [-o file.json]layer_1_profile

Dump the full entity profile as JSON.

Live & write

entidex watch <entity>layer_3_drift

Stream live drift events over Server-Sent Events. Caps at 10 minutes per connection.

entidex watch nvidia | jq .
entidex track add <entity> [--cadence daily|weekly|monthly]layer_1_profile

Add an entity to your monitored list.

entidex track listlayer_1_profile

Show currently tracked entities.

entidex track remove <entity> --yeslayer_1_profile

Stop tracking an entity. Confirmation required.

entidex refresh <entity> [--depth shallow|standard|deep]layer_1_profile

Queue a fresh enrichment run; returns a job id and ETA.

entidex bulk --cmd <subcommand> -i list.txt [-p N]layer_2_insight

Apply lookup/resolve/refresh/track-add to many entities in parallel.

Account & auth

entidex login [--tier <tier>]free

Authenticate via device flow. Prints a short URL + code, polls until you approve in the browser, then writes a fresh API key into your config.

entidex logoutfree

Forget local credentials.

entidex authfree

Show current auth state.

entidex accountfree

Show account profile (email, tier, status).

entidex quotafree

Show plan, entitlements used vs. limit, and token usage for the current period.

entidex keys listfree

List API keys (id, prefix, tier, env, last-used).

entidex keys create --name <label> --tier <tier> --env live|testfree

Provision a new API key. The full key is shown once.

entidex keys revoke <id> --yesfree

Revoke a key. Requires --yes.

Local & meta

entidex config showfree

Print effective configuration with secrets redacted.

entidex config set <key> <value>free

Update base_url, output, telemetry, or api_key.

entidex config get <key>free

Read a single config field.

entidex config pathfree

Print the absolute path of the config file.

entidex telemetry statusfree

Show telemetry on/off plus current tier.

entidex telemetry enablefree

Enable anonymous CLI telemetry.

entidex telemetry disablepaid

Disable telemetry. Free tier requires telemetry; paid tiers may opt out.

entidex schemafree

Print the OpenAPI spec for the public API. Useful for seeding LLM agents.

entidex doctorfree

Run self-diagnostics: config path, base URL, API key, reachability.

entidex statusfree

Quick API reachability + auth check with latency.

entidex completion bash|zsh|fish|powershellfree

Generate shell completion script.

entidex versionfree

Print version, commit, and build date.

Exit codes

The exit-code contract is stable across versions — scripts and CI pipelines can branch on it directly.

CodeNameMeaning
0OKSuccess.
1Generic errorUnexpected error — read stderr for the [CODE] line.
2MisuseBad flags or wrong arguments. Run with --help.
3Auth requiredNo API key, expired key, or insufficient scope. Run entidex login.
4Rate-limitedQuota exceeded — slow down or upgrade.
5Not resolvedNo entity matched the query.
6Tier unavailableEndpoint requires a higher tier — visit https://entidex.com/pricing.
7Network errorAPI unreachable or upstream 5xx.
8Config errorLocal config file unreadable or invalid.

Configuration

Configuration lives in ~/.entidex/config.toml (mode 0600). Run entidex config path to print the absolute path on your platform.

# ~/.entidex/config.toml
base_url   = "https://entidex.com"
api_key    = "entx_live_sk_xxxxxxxxxxxxxxxxxxxxxxxx"
api_key_id = "key_01HXXXXXXXXXXXXXXXXXXXXXXX"
output     = "auto"        # auto | pretty | json
telemetry  = true
machine_id = "f1e2d3c4-...."  # opaque, generated once
tier       = "layer_2_insight"
email      = "you@example.com"

Environment overrides

  • ENTIDEX_API_KEY — overrides the file value.
  • ENTIDEX_BASE_URL — point at staging or self-hosted.
  • ENTIDEX_OUTPUT — auto | pretty | json.
  • ENTIDEX_NO_TELEMETRY=1 — disable telemetry for one process (paid tier semantics still apply for persistent disable).
  • ENTIDEX_INSTALL_DIR — installer target directory (install.sh / install.ps1).

LLM agent affordances

The CLI is designed to be driven by autonomous agents as comfortably as by humans. Every output is parseable, every error is structured, and the API surface is self-describing.

  • entidex schema emits the full OpenAPI spec — point an agent at this once and it can call every endpoint correctly.
  • --json always works, regardless of whether stdout is a TTY.
  • Errors use the stable line format [CODE] message — action on stderr. The action segment is a short imperative the agent can execute.
  • --idempotency-key <key> on every write — safe to retry on network errors without double-spending quota.
  • --dry-run describes the action without executing — useful for planning passes.
  • --yes bypasses confirmation prompts on destructive operations (revoke, remove).
  • Exit codes 3, 4, 6, 7 are recoverable with specific actions (login, back-off, upgrade, retry). Codes 2, 5, 8 indicate the agent has the wrong inputs.

Telemetry & privacy

Telemetry is anonymous CLI usage data we use to improve the tool — it is required on the free tier (so we can keep the free tier free) and opt-out on every paid tier.

What is sent

A whitelist enforced server-side: command, subcommand, flags, exit_code, latency_ms, entity_type, surfaces, window, output_format, tier, error_code, auth_state, install_source.

What is never sent

Entity values (slugs, names, ids), IP addresses, API keys, file paths, command output, free-text query strings. The only stable identifier is an opaque machine_id generated once on first run, used solely for rate-limiting (60 events/minute).

entidex telemetry status     # show current state
entidex telemetry disable    # paid tiers only
ENTIDEX_NO_TELEMETRY=1 entidex lookup spacex   # one-shot disable

Tier matrix

Each tier unlocks a set of CLI commands. Tiers are additive — higher tiers include everything below.

TierIntentRead commandsWrite commands
freeDiscovery & integrationlookup, search, resolve, schema, doctor, statuslogin / keys / config
layer_1_profileFull profile access+ export, track *, refresh+ track / refresh
layer_2_insightVisibility & sentiment+ visibility, sentiment, bulk+ bulk
layer_3_driftLive drift & streaming+ drift, watch (SSE)—
layer_4_cohortCohort & comparative+ cohort endpoints (API)—

When a command requires a higher tier, the CLI exits with code 6 and prints [TIER_REQUIRED] … — upgrade at https://entidex.com/pricing.

Troubleshooting

[AUTH_REQUIRED] on every call

Run entidex doctor. If the api key line shows not set, run entidex login or export ENTIDEX_API_KEY. If the key is set but you still see auth errors, the key may have been revoked — list with entidex keys list and create a new one.

watch disconnects every 10 minutes

By design — server-side cap to keep streaming connections fair. Wrap in a small loop with back-off, or use entidex drift on a cron.

Postinstall failed for npm / pip

The Node and Python packages are thin wrappers around the native binary. If the postinstall download fails (corporate proxy, offline CI), install via install.sh / install.ps1 and the wrapper will detect the binary on PATH.

Pretty output renders as raw escape codes

Your terminal does not advertise itself as a TTY, or stdout is being captured. Force a mode with --output pretty or --json.

Diagnosing any other issue

Add --debug to print the request URL and timing to stderr, then attach the output to a GitHub issue at github.com/entidex/entidex-cli.

entidex --debug visibility openai

Source & releases

The CLI is open-source (MIT) at github.com/entidex/entidex-cli. Releases are signed and built reproducibly via GitHub Actions + GoReleaser. Checksums are published with every release; the universal installer verifies them automatically.