sentinel docs

Reference

CLI Reference

Reference for Sentinel commands, subcommands, and the most important global flags.

Global flags

These flags apply across most commands. Defaults are the values Sentinel uses when nothing is configured in ~/.sentinel, the Settings page, or the CLI.

FlagDefaultMeaning
--db~/.sentinel/sentinel.dbSQLite database path
--projectdefaultProject name used for scoping issues and traces
--offlinefalseDisable LLM calls and use local heuristics only
--redacttrueRedact secrets before storing logs
--verbosefalseExtra diagnostic output
`–min-level warnerror`warn
--batch-window15sBatch duration before processing
--dedupe-window60sDuplicate suppression window for triage re-runs
--base-urlhttp://localhost:11434/v1OpenAI-compatible LLM endpoint
--api-keyemptyLLM API key. Prefer SENTINEL_API_KEY so the key never enters shell history.
--modelqwen2.5-coder:7bLLM model name

CLI flags always win over Settings, which always win over built-in defaults. For API keys specifically, --api-key wins when it is passed explicitly; otherwise SENTINEL_API_KEY overrides the encrypted key stored by the Settings page.

OTEL and traces global flags

FlagDefaultMeaning
--otlp-enabledtrueEnable local OTLP receiver during ingest commands
--otlp-http-addr127.0.0.1:4318OTLP listen address
--otlp-correlation-lookback20sCorrelation window before an event
--otlp-correlation-lookahead2sCorrelation window after an event
--otlp-max-spans-per-event100Max spans returned for one event detail
--otlp-noisy-route-patterns/health, /ready, /live, /metrics, …Noisy route match patterns
--otlp-noisy-trace-sample-ratio0.20Keep ratio for noisy traces (0.0 to 1.0)
--otlp-trace-slow-threshold-ms100Always keep traces at or above this duration
--otlp-drop-noisy-internal-http-send-receivetrueDrop low-value internal send/receive spans for noisy routes
--otlp-drop-low-value-internal-http-send-receivetrueDrop low-value internal send/receive spans across all routes

The defaults are tuned so the local OTLP receiver does not balloon the database for typical web apps. Health and metrics polling routes get sampled, very short internal spans get dropped, and any trace with a span over 100ms is always kept.

Ingestion commands

sentinel docker

Auto-discover Docker containers and triage their logs.

sentinel docker
sentinel docker --all-running
sentinel docker api worker redis

Use this when your app is already running in Docker.

sentinel docker list

Show which Docker containers Sentinel would watch.

sentinel docker list
sentinel docker list --all-running

sentinel docker explain [container...]

Explain why containers are or are not being watched.

sentinel docker explain
sentinel docker explain redis

sentinel run -- <command>

Run a child process and capture both stdout and stderr.

sentinel run --offline -- npm run dev
sentinel run -- python app.py

Use run when Sentinel should launch the process itself.

sentinel stdin

Read logs from standard input.

docker logs -f api | sentinel stdin --offline

Use this when another command already produces the output you want.

sentinel watch <glob...>

Tail one or more log files continuously.

sentinel watch ./logs/*.log --offline

sentinel dev

Run or attach to a configured local dev stack using .sentinel.yml. See the full Dev guide for the config schema, init wizard, and TUI behavior.

sentinel dev
sentinel dev --group backend
sentinel dev --attach-only
sentinel dev --dry-run
sentinel dev --yes

Flags:

FlagMeaning
--group <name>Named service group from .sentinel.yml. Falls back to defaults.group.
--yesSkip the preflight confirmation prompt.
--attach-onlyAttach only to services that are already running. Skips starting command services.
--dry-runPrint the resolved plan and exit without starting anything.

sentinel dev also reads --project and the rest of the global flags. If --project is not set, it picks up defaults.project from .sentinel.yml; if that is unset, it uses the workspace directory name normalized to lowercase with spaces changed to dashes, falling back to dev.

sentinel dev init

Run the init wizard explicitly. Detects likely services in the workspace and writes .sentinel.yml. Errors out if the file already exists.

sentinel dev init

sentinel dev status

Show whether a sentinel dev session is active for the current workspace, and which services it brought up.

sentinel dev status
sentinel dev status --json
FlagMeaning
--jsonPrint the raw runtime state as JSON for scripts.

Exits non-zero if no session is active or the recorded supervisor PID is no longer alive (in which case the stale state file is cleaned up).

sentinel dev stop

Stop the active session from another terminal.

sentinel dev stop
sentinel dev stop --force
FlagMeaning
--forceSend SIGKILL instead of SIGINT. Use only after a graceful stop times out (8 seconds).

sentinel dev doctor

Check the local environment required for a group: docker, docker compose, and the first binary in each command service.

sentinel dev doctor
sentinel dev doctor --group api-only
sentinel dev doctor --json
FlagMeaning
--group <name>Restrict the check to one group.
--jsonPrint the report as JSON for scripts.

Dev TUI keybindings

KeyAction
j / kMove between services
aShow all services combined
sStop the selected service
r / EnterStart or restart the selected service
cCopy the visible log pane to the system clipboard
PageUp / PageDownScroll logs
/Filter visible logs
p / fPause or resume follow mode
mToggle the metrics strip
oOpen the local web UI
?Toggle help
q / Ctrl+CQuit the dev TUI

Normal terminal drag selection is preserved for visible text. When --redact is enabled (the default), secrets are redacted before logs are shown in the dev TUI or copied with c.

Issue inspection and triage

sentinel history

Show recently seen fingerprints.

sentinel history

sentinel explain <fingerprint>

Show detailed information for one fingerprint.

sentinel explain a4f1b2c
sentinel explain --last 5

sentinel analyze

Re-run triage on frequent unresolved fingerprints or recent ones.

sentinel analyze
sentinel analyze --last 10

Status commands

Use a fingerprint prefix:

sentinel investigate a4f1b2c
sentinel resolve a4f1b2c
sentinel suppress a4f1b2c
sentinel unsuppress a4f1b2c

Supported status flow:

  • new
  • investigating
  • resolved
  • regressed
  • suppressed

If a resolved issue reappears after a quiet period, Sentinel can mark it regressed.

Traces and performance

sentinel traces

List recent trace rows with filters.

sentinel traces
sentinel traces --window 7d --protocol http --service api
sentinel traces --http-status 5xx --min-duration-ms 250

Important flags:

FlagMeaning
--window1h, 24h, 7d, 30d, or all
--protocolhttp, grpc, db, or other
--serviceFilter by service name
--http-statusFilter by status class such as 5xx
--queryFree-text search in name/path/method
--sortend_time or duration_ms
--orderasc or desc
--limit, --offsetPagination

sentinel trace <trace-id>

Show spans for one trace.

sentinel trace <trace-id>
sentinel trace <trace-id> --attrs

Use --attrs when you want the diagnostic attrs_json payload for each span.

UI and runtime utilities

sentinel ui

Start the local web UI.

sentinel ui
sentinel ui --host 0.0.0.0 --port 4041 --open=false

UI-only flags:

FlagMeaning
--hostBind address
--portHTTP port, default 4040
--openOpen the browser automatically

sentinel check

Verify LLM connectivity and model availability.

sentinel check
sentinel check --quick

--quick only checks the lightweight model listing path.

sentinel update

Update the installed binary from the public dist repo.

sentinel update
sentinel update --check
sentinel update --tag 0.1.0+8

Important flags:

FlagMeaning
--checkOnly report whether an update is available
--forceInstall even if the current version matches or is newer
--repoOverride the release repository
--tagInstall a specific version/tag
--timeoutNetwork timeout

sentinel version

Print version information.

sentinel version
sentinel version --short

Project commands

sentinel project list

List known projects in the local database.

sentinel project list

sentinel project delete <project>

Delete one project’s stored fingerprints, traces, sessions, and related rows.

sentinel project delete my-project --dry-run
sentinel project delete my-project --yes

Use --dry-run before destructive cleanup. Use --yes to confirm deletion without an extra prompt.

Built-in helpers

Cobra provides two helpers that are not Sentinel-specific but are part of the binary.

sentinel help [command]

Print help for the binary or any subcommand.

sentinel help
sentinel help dev
sentinel help dev doctor

Equivalent to sentinel <command> --help.

sentinel completion <shell>

Generate a shell completion script for bash, zsh, fish, or powershell.

# zsh, current session
source <(sentinel completion zsh)

# zsh, persistent
sentinel completion zsh > "${fpath[1]}/_sentinel"

# bash
sentinel completion bash > /etc/bash_completion.d/sentinel

Piping into sentinel

sentinel will read from stdin if data is being piped to it without an explicit subcommand:

docker logs -f api | sentinel --offline

This is equivalent to sentinel stdin --offline. Prefer the explicit form in scripts so the intent is obvious.