Reachability CLI Reference

Roadmap reference — not current CLI (reconciled 2026-07-29). The compute, findings, explain-all, summary, and job-* surface documented below is not registered in the CLI at HEAD. The registered explain, witness, guards, graph-query, slice-query, and witness-ops query verbs are discoverable placeholders that fail closed with exit code 9 and emit no domain result. Implemented paths are local-file show/export and Scanner-backed trace. Do not copy commands from this roadmap into operator automation.

Overview

This reference documents the extended stella reachability and stella scan graph command surface for call-graph management, reachability computation, and explain queries. All commands support air-gapped operation.

For the common day-to-day workflow (upload-callgraph, list, explain), see the stella reachability command guide.


Commands

stella reachability

Manage reachability analysis.

stella reachability <SUBCOMMAND> [OPTIONS]

Subcommands

SubcommandDescription
computeTrigger reachability computation
findingsList reachability findings
explainExplain reachability verdict
explain-allExport all explanations
summaryShow reachability summary
job-statusCheck computation job status
job-logsView job logs
job-cancelCancel running job

stella reachability compute

Trigger reachability computation for a scan.

stella reachability compute [OPTIONS]

Options

OptionDescriptionDefault
--scan-id <ID>Scan IDRequired
--max-depth <N>Maximum path length to explore10
--indirect-resolution <MODE>Handle indirect calls: conservative, aggressive, skipconservative
--timeout <DURATION>Maximum computation time300s
--parallelEnable parallel BFStrue
--include-runtimeMerge runtime evidencetrue
--offlineRun in offline modefalse
--symbol-db <PATH>Symbol resolution databaseSystem default
--deterministicEnable deterministic modetrue
--seed <BASE64>Random seed for determinismAuto
--graph-digest <HASH>Use specific call graph versionLatest
--partition-by <KEY>Partition analysis: artifact, entrypoint
--forceForce recomputationfalse
--waitWait for completionfalse

Examples

# Basic computation
stella reachability compute --scan-id $SCAN_ID

# With custom options
stella reachability compute --scan-id $SCAN_ID \
  --max-depth 20 \
  --timeout 600s \
  --indirect-resolution conservative

# Wait for completion
stella reachability compute --scan-id $SCAN_ID --wait

# Offline computation
stella reachability compute --scan-id $SCAN_ID --offline

stella reachability findings

List reachability findings for a scan.

stella reachability findings [OPTIONS]

Options

OptionDescriptionDefault
--scan-id <ID>Scan IDRequired
--status <STATUS>Filter by status (comma-separated)All
--cve <ID>Filter by CVE ID
--purl <PURL>Filter by package URL
--min-confidence <N>Minimum confidence (0-1)0
--output <PATH>Output file pathstdout
--output-format <FMT>Format: json, yaml, table, sariftable

Status Values

StatusDescription
UNREACHABLENo path found
POSSIBLY_REACHABLEPath with heuristic edges
REACHABLE_STATICStatically proven path
REACHABLE_PROVENRuntime confirmed
UNKNOWNInsufficient data

Examples

# List all findings
stella reachability findings --scan-id $SCAN_ID

# Filter by status
stella reachability findings --scan-id $SCAN_ID \
  --status REACHABLE_STATIC,REACHABLE_PROVEN

# Export as SARIF for CI
stella reachability findings --scan-id $SCAN_ID \
  --status REACHABLE_STATIC,REACHABLE_PROVEN \
  --output-format sarif \
  --output findings.sarif

# JSON output
stella reachability findings --scan-id $SCAN_ID --output-format json

stella reachability explain

Explain a reachability verdict.

stella reachability explain [OPTIONS]

Options

OptionDescriptionDefault
--scan-id <ID>Scan IDRequired
--cve <ID>CVE IDRequired
--purl <PURL>Package URLRequired
--all-pathsShow all paths, not just shortestfalse
--max-paths <N>Maximum paths to show5
--verboseShow detailed explanationfalse
--offlineRun in offline modefalse
--output <PATH>Output file pathstdout
--output-format <FMT>Format: json, yaml, texttext

Examples

# Explain single finding
stella reachability explain --scan-id $SCAN_ID \
  --cve CVE-2024-1234 \
  --purl "pkg:npm/lodash@4.17.20"

# Show all paths
stella reachability explain --scan-id $SCAN_ID \
  --cve CVE-2024-1234 \
  --purl "pkg:npm/lodash@4.17.20" \
  --all-paths

# JSON output
stella reachability explain --scan-id $SCAN_ID \
  --cve CVE-2024-1234 \
  --purl "pkg:npm/lodash@4.17.20" \
  --output-format json

Output Example

Status: REACHABLE_STATIC
Confidence: 0.70

Shortest Path (depth=3):
[0] MyApp.Controllers.OrdersController::Get(Guid)
    Entrypoint: HTTP GET /api/orders/{id}
[1] MyApp.Services.OrderService::Process(Order)
    Edge: static (direct_call)
[2] Lodash.merge(Object, Object) [VULNERABLE]
    Edge: static (direct_call)

Why Reachable:
- Static call path exists from HTTP entrypoint /api/orders/{id}
- All edges are statically proven (no heuristics)
- Vulnerable function Lodash.merge() is directly invoked

Confidence Factors:
  staticPathExists: +0.50
  noHeuristicEdges: +0.20
  runtimeConfirmed: +0.00

Alternative Paths: 2

stella reachability explain-all

Export all reachability explanations.

stella reachability explain-all [OPTIONS]

Options

OptionDescriptionDefault
--scan-id <ID>Scan IDRequired
--status <STATUS>Filter by statusAll
--output <PATH>Output file pathRequired
--offlineRun in offline modefalse

Examples

# Export all explanations
stella reachability explain-all --scan-id $SCAN_ID --output explanations.json

# Export only reachable findings
stella reachability explain-all --scan-id $SCAN_ID \
  --status REACHABLE_STATIC,REACHABLE_PROVEN \
  --output reachable-explanations.json

stella reachability summary

Show reachability summary for a scan.

stella reachability summary [OPTIONS]

Options

OptionDescriptionDefault
--scan-id <ID>Scan IDRequired
--output-format <FMT>Format: json, yaml, tabletable

Examples

# Show summary
stella reachability summary --scan-id $SCAN_ID

# Output:
# Total vulnerabilities: 45
# Unreachable: 38 (84%)
# Possibly reachable: 4 (9%)
# Reachable (static): 2 (4%)
# Reachable (proven): 1 (2%)
# Unknown: 0 (0%)

stella reachability job-status

Check computation job status.

stella reachability job-status [OPTIONS]

Options

OptionDescriptionDefault
--job-id <ID>Job IDRequired

Examples

stella reachability job-status --job-id reachability-job-001

# Output:
# Status: running
# Progress: 67% (8,234 / 12,345 nodes visited)
# Started: 2025-12-20T10:00:00Z
# Estimated completion: 2025-12-20T10:02:30Z

Call Graph Commands

stella scan graph

Manage call graphs.

stella scan graph <SUBCOMMAND> [OPTIONS]

Subcommands

SubcommandDescription
uploadUpload call graph
summaryShow call graph summary
entrypointsList entrypoints
exportExport call graph
validateValidate call graph
visualizeGenerate visualization
convertConvert graph format
partitionPartition large graph
mergeMerge multiple graphs

stella scan graph upload

Upload a call graph to a scan.

stella scan graph upload [OPTIONS]

Options

OptionDescriptionDefault
--scan-id <ID>Scan IDRequired
--file <PATH>Call graph fileRequired
--format <FMT>Format: json, ndjsonAuto-detect
--streamingUse streaming uploadfalse
--framework <NAME>Framework hintAuto-detect

Examples

# Basic upload
stella scan graph upload --scan-id $SCAN_ID --file callgraph.json

# Streaming upload (large graphs)
stella scan graph upload --scan-id $SCAN_ID \
  --file callgraph.ndjson \
  --format ndjson \
  --streaming

# With framework hint
stella scan graph upload --scan-id $SCAN_ID \
  --file callgraph.json \
  --framework aspnetcore

stella scan graph summary

Show call graph summary.

stella scan graph summary [OPTIONS]

Options

OptionDescriptionDefault
--scan-id <ID>Scan IDRequired

Examples

stella scan graph summary --scan-id $SCAN_ID

# Output:
# Nodes: 12,345
# Edges: 56,789
# Entrypoints: 42
# Languages: [dotnet, java]
# Size: 15.2 MB

stella scan graph entrypoints

List detected entrypoints.

stella scan graph entrypoints [OPTIONS]

Options

OptionDescriptionDefault
--scan-id <ID>Scan IDRequired
--verboseShow detailed infofalse
--output-format <FMT>Format: json, yaml, tabletable

Examples

# List entrypoints
stella scan graph entrypoints --scan-id $SCAN_ID

# Output:
# Kind     | Route               | Framework   | Node
# ─────────┼─────────────────────┼─────────────┼────────────────
# http     | GET /api/orders     | aspnetcore  | OrdersController::Get
# http     | POST /api/orders    | aspnetcore  | OrdersController::Create
# grpc     | OrderService.Get    | grpc-dotnet | OrderService::GetOrder

stella scan graph validate

Validate call graph structure.

stella scan graph validate [OPTIONS]

Options

OptionDescriptionDefault
--scan-id <ID>Validate uploaded graph
--file <PATH>Validate local file
--strictEnable strict validationfalse

Validation Checks

Examples

# Validate uploaded graph
stella scan graph validate --scan-id $SCAN_ID

# Validate before upload
stella scan graph validate --file callgraph.json --strict

stella scan graph visualize

Generate call graph visualization.

stella scan graph visualize [OPTIONS]

Options

OptionDescriptionDefault
--scan-id <ID>Scan IDRequired
--node <ID>Center on specific node
--depth <N>Visualization depth3
--output <PATH>Output file (SVG/PNG/DOT)Required
--format <FMT>Format: svg, png, dotsvg

Examples

# Visualize subgraph
stella scan graph visualize --scan-id $SCAN_ID \
  --node sha256:node123... \
  --depth 3 \
  --output subgraph.svg

Common Options

Authentication

OptionDescription
--token <TOKEN>OAuth bearer token
--token-file <PATH>File containing token
--profile <NAME>Use named profile

Output

OptionDescription
--quietSuppress non-error output
--verboseEnable verbose output
--debugEnable debug logging
--no-colorDisable colored output

Connection

OptionDescription
--endpoint <URL>Scanner API endpoint
--timeout <DURATION>Request timeout
--insecureSkip TLS verification

Environment Variables

VariableDescription
STELLA_TOKENOAuth token
STELLA_ENDPOINTAPI endpoint
STELLA_PROFILEProfile name
STELLA_OFFLINEOffline mode
STELLA_SYMBOL_DBSymbol database path

Exit Codes

CodeMeaning
0Success
1General error
2Invalid arguments
3Authentication failed
4Resource not found
5Computation failed
6Network error
10Timeout