
Intelligent SRE/DevOps Automation Agent
AI-powered diagnostics + SSH automation + Kubernetes monitoring = Better SRE workflows
Features โข Quick Start โข Installation โข Documentation โข Contributing
Lumo is a modern, intelligent automation agent that connects to your infrastructure, performs comprehensive diagnostics, and leverages AI to help you understand and fix issues faster. Think of it as your AI-powered SRE companion.
- ๐ค Multi-Provider AI Analysis - Claude, GPT-4, Gemini, Ollama, or OpenRouter
- ๐ Zero-Config Localhost - Instant diagnostics without SSH overhead
- โธ๏ธ Native Kubernetes - Direct API integration (no kubectl required)
- ๐๏ธ Agent Architecture - REST API + Agent daemon with hybrid push/pull model (Phases 7-8)
- ๐ Security-First - Built-in security diagnostics and audit trails
- ๐ฏ Token-Optimized - TOON format reduces AI costs by 30-60%
- ๐ Production-Ready - 66%+ test coverage, CI/CD, cross-platform
|
6 Core Checks
4 Security Checks
|
5 Provider Support
Smart Features
|
| Platform | SSH Diagnostics | Kubernetes | Proxmox VE |
|---|---|---|---|
| Linux | โ Full support | โ Native client | โ Cluster monitoring |
| macOS | โ Full support | โ Native client | โ N/A |
| BSD | โ Full support | โ Native client | โ N/A |
| Windows | โณ Planned | โ Native client | โ N/A |
Native cluster monitoring using k8s.io/client-go:
- โ 8 Resource Types - Nodes, Pods, Deployments, StatefulSets, DaemonSets, Services, PVCs, Events
- โ Read-Only - No modifications to your cluster
- โ Namespace Filtering - Check all or specific namespaces
- โ RBAC-Aware - Minimal permissions required (get/list)
- โ Context Switching - Work with multiple clusters
- ๐ก๏ธ Circuit Breakers - Automatic failure protection for AI providers
- ๐ Distributed Tracing - OpenTelemetry integration for request visibility
- ๐ Load Tested - Verified stability under high concurrency
- ๐ฆ Rate Limiting - Configurable per-IP and per-user limits
- Go 1.25+ (for building from source)
- SSH access to target servers (or use localhost)
- Optional: AI provider API key for analysis
- Optional: kubeconfig for Kubernetes diagnostics
go install github.com/ignacio/lumo/cmd/lumo@latestgit clone https://github.com/IgnacioPro/lumo.git
cd lumo
go build -o lumo ./cmd/lumo
# Optional: Install globally
sudo mv lumo /usr/local/bin/Pre-built binaries for Linux, macOS, and Windows will be available in Releases.
# 1. Diagnose your local machine (no configuration needed)
lumo diagnose localhost
# 2. Connect to a remote server
lumo connect user@server.com
# 3. Run remote diagnostics
lumo diagnose user@server.com
# 4. Add AI-powered analysis
export LUMO_ANTHROPIC_API_KEY=sk-ant-...
lumo diagnose localhost --analyze=== System Diagnostics for localhost ===
[โ] CPU Check (OK)
Load Average: 1.23, 1.45, 1.67 (8 cores)
Usage: 15.3%
[!] Memory Check (WARNING)
RAM: 71.2% used (22.7/31.9 GB)
Swap: 12.4% used (2.0/16.0 GB)
Top Consumers:
1. chrome (3.2 GB)
2. docker (2.1 GB)
3. postgres (1.8 GB)
[โ] Disk Check (OK)
/: 45% used (225/500 GB)
/home: 62% used (310/500 GB)
[โ] Network Check (OK)
Interfaces: eth0 (UP), lo (UP)
Connectivity: All targets reachable
Overall Status: WARNING (1 check needs attention)
๐ค AI Analysis:
Your system is healthy overall, but memory usage is approaching 75%.
Consider:
1. Closing unnecessary Chrome tabs (3.2 GB usage)
2. Reviewing Docker container memory limits
3. Tuning PostgreSQL shared_buffers if not needed
Estimated Impact: Moderate
Risk Level: Low
# Localhost (no SSH)
lumo diagnose localhost
# Remote server
lumo diagnose user@server.com
# Specific checks only
lumo diagnose localhost --checks cpu,memory,disk
# With AI analysis
lumo diagnose localhost --analyze
# Different AI provider
lumo diagnose localhost --analyze --ai-provider openai
# JSON output
lumo diagnose localhost --format json
# TOON format (AI-optimized, 30-60% token reduction)
lumo diagnose localhost --format toon
# Kubernetes cluster
lumo diagnose --checks kubernetes# Auto-discover authentication
lumo connect user@server.com
# Specific key file
lumo connect user@server.com --key ~/.ssh/id_ed25519
# Custom port
lumo connect user@server.com --port 2222
# Skip test commands
lumo connect user@server.com --test=false--configflag path./config.yaml~/.lumo/config.yaml
# Copy example configuration
mkdir -p ~/.lumo
cp configs/config.example.yaml ~/.lumo/config.yaml
# Edit with your preferences
vim ~/.lumo/config.yaml# SSH Configuration
export LUMO_SSH_PORT=2222
export LUMO_SSH_STRICT_HOST_KEY_CHECKING=true
# AI Provider Selection
export LUMO_AI_PROVIDER=openai # anthropic, openai, ollama, gemini, openrouter
# AI API Keys (Provider-Specific)
export LUMO_ANTHROPIC_API_KEY=sk-ant-...
export LUMO_OPENAI_API_KEY=sk-...
export LUMO_GEMINI_API_KEY=...
export LUMO_OPENROUTER_API_KEY=sk-or-...
# AI Settings
export LUMO_AI_TEMPERATURE=1.0
export LUMO_AI_MAX_TOKENS=4096
export LUMO_AI_REASONING_EFFORT=medium # low, medium, high (OpenAI reasoning models)
# Logging
export LUMO_LOGGING_LEVEL=debug
# Kubernetes
export LUMO_DIAGNOSTICS_KUBERNETES_ENABLED=true
export LUMO_DIAGNOSTICS_KUBERNETES_CONTEXT=productionLumo tries authentication methods in this order:
- SSH Agent (most secure) โ Uses
ssh-agentwith loaded keys - Private Keys โ Auto-discovers:
id_ed25519,id_ecdsa,id_rsa,id_dsa - Password โ Interactive prompt (secure, not stored)
- Keyboard-Interactive โ Supports 2FA/MFA
# Ensure SSH agent is running
eval $(ssh-agent)
ssh-add ~/.ssh/id_ed25519
# Verify keys loaded
ssh-add -l# 1. Enable Kubernetes diagnostics
export LUMO_DIAGNOSTICS_KUBERNETES_ENABLED=true
# 2. (Optional) Use specific kubeconfig
export LUMO_DIAGNOSTICS_KUBERNETES_KUBECONFIG_PATH=/path/to/kubeconfig
# 3. (Optional) Use specific context
export LUMO_DIAGNOSTICS_KUBERNETES_CONTEXT=production
# 4. Run diagnostics
lumo diagnose --checks kubernetes
# 5. With AI analysis
lumo diagnose --checks kubernetes --analyzeLumo needs minimal read-only permissions:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: lumo-reader
rules:
- apiGroups: [""]
resources: ["nodes", "pods", "services", "persistentvolumeclaims", "events"]
verbs: ["get", "list"]
- apiGroups: ["apps"]
resources: ["deployments", "statefulsets", "daemonsets"]
verbs: ["get", "list"]โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CLI Interface โ
โ (connect, diagnose, fix, report, serve) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโผโโโโโ
โ Config โ YAML + Environment Variables
โโโโโโฌโโโโโ
โ
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโ
โ โ โ
โโโโโโผโโโโโ โโโโโโโโผโโโโโโโ โโโโโโผโโโโโโโโโ
โ Local โ โ SSH โ โ Kubernetes โ
โExecutor โ โ Executor โ โ Client โ
โโโโโโฌโโโโโ โโโโโโโโฌโโโโโโโ โโโโโโโโฌโโโโโโโ
โ โ โ
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโ
โ Diagnostics Runner (12) โ
โ โข 6 Core (CPU, Mem, Disk...) โ
โ โข 4 Security (Patches, Ports...)โ
โ โข 2 Specialized (K8s, Proxmox) โ
โโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
โ
โโโโโโผโโโโโ
โFormattersโ Text, JSON, TOON
โโโโโโฌโโโโโ
โ
โโโโโโผโโโโโโโโโ
โAI Analysis โ 5 Providers
โ (Optional) โ Streaming
โโโโโโโโโโโโโโโ
Overall Coverage: 66.7% (52 test files)
| Package | Coverage | Status |
|---|---|---|
internal/diagnostics/formatters |
98.1% | โ Excellent |
internal/diagnostics |
87.6% | โ Excellent |
internal/config |
68.8% | โ Good |
internal/diagnostics/checkers |
61.4% | โ Good |
cmd/lumo |
61.6% | โ Good |
internal/ssh |
30.5% | |
internal/ai |
27.1% |
# All tests
go test ./...
# With coverage
go test -cover ./...
# Specific package with verbose output
go test -v ./internal/diagnostics
# HTML coverage report
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out- Phase 1-2: Foundation & SSH (CLI framework, 4 auth methods, health monitoring)
- Phase 3: Core Diagnostics (6 checkers: CPU, Memory, Disk, Process, Service, Network)
- Phase 4: AI Integration (5 providers: Claude, GPT-4, Gemini, Ollama, OpenRouter)
- Phase 5: Security & Specialized Diagnostics (4 security checkers + Kubernetes + Proxmox)
- Phase 6: Auto-Remediation (Human-in-the-loop approval, risk classification, audit logging)
- Phase 7: API Server Foundation (REST API, PostgreSQL, Redis, Agent registration)
- Phase 8: Agent Daemon (Scheduled diagnostics, API reporter, offline mode, health/metrics)
- Phase 9: Kubernetes Deployment (DaemonSet, Deployment, Helm charts, RBAC, Kustomize)
- Phase 10: VM Deployment (systemd units, RPM/DEB packages, installation scripts)
- Usability Week 1: Installation & First-Run Experience (Quick start, init wizard, examples, docs) โจ NEW
- Phase 11: Messaging Integration (NATS, Kafka, RabbitMQ, Redis)
- Phase 12: Security Hardening (mTLS, JWT, cert rotation, penetration testing)
- Phase 13: Production Readiness (Performance, monitoring, dashboards, load testing)
- Phase 14: Advanced Reporting (Markdown, HTML, PDF, trends, forecasting)
- Phase 15: Advanced Features (Multi-cluster, ML-based anomaly detection)
We welcome contributions! See our Contributing Guide for detailed instructions.
# Clone and setup
git clone https://github.com/IgnacioPro/lumo.git
cd lumo
make setup # Install deps, start services, build
# Make changes
git checkout -b feature/my-feature
# ... edit code ...
make ci # Run all checks before committing
# Submit PR
git push origin feature/my-feature- ๐ Report bugs - Use the bug report template
- ๐ก Suggest features - Use the feature request template
- ๐ Improve docs - Fix typos, add examples, clarify usage
- ๐งช Write tests - Help us improve coverage
- ๐ง Submit PRs - Fix bugs or implement features
- CONTRIBUTING.md - Complete contributor guide
- DEVELOPMENT.md - Build and test instructions
- CODE_OF_CONDUCT.md - Community standards
- SECURITY.md - Vulnerability reporting policy
- SUPPORT.md - Support channels and guidelines
- CLAUDE.md - Architecture reference
- โ
Host Key Verification - Enabled by default (
StrictHostKeyChecking: true) - โ No Password Flags - Passwords only via secure prompts
- โ API Keys - Environment variables only, never in config files
- โ Command Injection Prevention - Path sanitization and validation
- โ File Permissions - Validates SSH key permissions (600/400)
Please report security vulnerabilities privately according to SECURITY.md (GitHub Security Advisories).
MIT License - See LICENSE file for details.
Copyright (c) 2025 Lumo Contributors
Built with these amazing technologies:
- Cobra - CLI framework
- Viper - Configuration management
- Logrus - Structured logging
- k8s.io/client-go - Kubernetes client
- golang.org/x/crypto/ssh - SSH implementation
AI Providers:
- Anthropic Claude - Leading AI safety and research
- OpenAI - GPT-4 and advanced reasoning models
- Google Gemini - Multimodal AI
- Ollama - Run LLMs locally
- OpenRouter - Multi-provider AI routing
- ๐ Documentation: CLAUDE.md | DEVELOPMENT.md
- ๐ Issues: GitHub Issues
- ๐ฌ Discussions: GitHub Discussions
- ๐ Support Policy: SUPPORT.md
- โญ Star us on GitHub if you find Lumo useful!
Made with โค๏ธ by the Lumo community