Kubernetes deployment monitor — cognitive layer for autonomous agents. Mirror, not oracle.
# Homebrew
brew install ppiankov/tap/deployscope
# Binary
curl -LO https://github.com/ppiankov/deployscope/releases/latest/download/deployscope_linux_amd64.tar.gz
tar -xzf deployscope_linux_amd64.tar.gz
sudo mv deployscope /usr/local/bin/
# Go
go install github.com/ppiankov/deployscope/cmd/deployscope@latest
# Docker
docker pull ghcr.io/ppiankov/deployscope:latestStart HTTP server with REST API, web dashboard, Prometheus metrics.
deployscope serve --port 8080Flags: --port (default: $PORT or 8080)
One-shot cluster health query. Connects to K8s, fetches all workloads, prints status, exits.
deployscope status # human table
deployscope status --format json # machine-readable
deployscope status --unhealthy --format json # degraded/down onlyFlags: --format (table, json), --unhealthy (filter to non-green only)
Namespace-level summary with team ownership.
deployscope namespaces --format jsonFlags: --format (table, json)
Generate config file and example annotation YAML.
deployscope init
# Creates: deployscope.yaml, deployscope-annotations.example.yamlValidate K8s connectivity, RBAC, annotation coverage, agent-readiness score.
deployscope doctor --format jsonFlags: --format (text, json)
deployscope version --format jsonAll commands support --format json for machine-readable output. Human-readable by default.
{
"summary": {
"total": 47,
"healthy": 44,
"degraded": 2,
"down": 1
},
"routing": {
"action": "escalate",
"reason": "1 critical-tier service(s) down",
"targets": ["#platform-oncall"],
"suggested_wo_priority": "P0"
},
"services": [
{
"id": "platform/auth-service",
"name": "auth-service",
"namespace": "platform",
"workload_type": "deployment",
"version": "1.5.0",
"status": "red",
"replicas": 3,
"ready_replicas": 0,
"owner": "team-platform",
"tier": "critical",
"managed_by": "argocd",
"part_of": "auth-platform",
"depends_on": ["postgres-platform", "redis-shared"],
"integration": {
"gitops_repo": "github.com/org/infra",
"gitops_path": "clusters/prod/auth/",
"oncall": "#platform-oncall",
"runbook": "https://wiki.internal/auth-runbook",
"dashboard": "https://grafana.internal/d/auth",
"health_endpoint": null,
"deep_health": null,
"deep_health_detail": null
}
}
]
}{
"k8s_connectivity": "ok",
"total_workloads": 47,
"annotation_coverage": {
"owner": 0.72,
"tier": 0.65,
"gitops_repo": 0.55,
"oncall": 0.51,
"runbook": 0.38,
"depends_on": 0.25
},
"agent_readiness": 0.61,
"warnings": ["less than 30% of workloads have gitops-repo — agents cannot create PRs"]
}| Code | Meaning |
|---|---|
| 0 | All services healthy |
| 1 | Error (K8s unreachable, RBAC denied) |
| 2 | Degraded (some services unhealthy) |
- Does NOT mutate Kubernetes resources (read-only RBAC)
- Does NOT store history (reads current K8s state)
- Does NOT run ML or probabilistic classification
- Does NOT auto-remediate (reports state, agents decide action)
- Does NOT replace a CMDB (mirrors annotations, never invents data)
- Does NOT provide cluster discovery (single-cluster per binary)
- Does NOT diagnose root causes (use kubenow for OOM, CrashLoop, events)
# Get all unhealthy services as JSON
deployscope status --unhealthy --format json | jq '.services[]'
# List service names that are down
deployscope status --format json | jq -r '.services[] | select(.status == "red") | .name'
# Get routing action
deployscope status --format json | jq -r '.routing.action'
# Check agent readiness score
deployscope doctor --format json | jq '.agent_readiness'
# Get GitOps repo for a specific service
deployscope status --format json | jq -r '.services[] | select(.name == "auth-service") | .integration.gitops_repo'
# List all owners across namespaces
deployscope namespaces --format json | jq -r '.[].owners[]' | sort -u