Skip to main content
ChatCLI publishes its Helm charts to ArtifactHub, the official public package registry for the Cloud Native ecosystem. This allows anyone to discover, install, and keep the charts up to date directly from the ArtifactHub catalog or via the Helm CLI.

Available Charts

ChatCLI Server

Multi-provider LLM gRPC gateway with agent mode, K8s watcher, MCP, and AIOps. OCI Registry: oci://ghcr.io/diillson/charts/chatcli

ChatCLI Operator

Kubernetes operator for autonomous incident detection, AI analysis, and automated remediation. OCI Registry: oci://ghcr.io/diillson/charts/chatcli-operator

How the Integration Works

The ArtifactHub integration is fully automated and based on three pillars:

1. Repository File (artifacthub-repo.yml)

At the project root there is an artifacthub-repo.yml file that registers the repositories on ArtifactHub. It uses multi-document YAML format to declare two independent repositories:
# ChatCLI Server repository
repositoryID: 193ab92d-52ac-4ac1-863f-aa29927c8d74
owners:
  - name: diillson
    email: diillson@hotmail.com

---
# ChatCLI Operator repository
repositoryID: ccc35f25-d27b-41ca-ba20-b8de9ee2f828
owners:
  - name: diillson
    email: diillson@hotmail.com
Each chart has a unique repositoryID. ArtifactHub reads this file to automatically sync repository metadata.

2. Chart Annotations (Chart.yaml)

Each chart’s Chart.yaml contains ArtifactHub-specific annotations that enrich the package page in the catalog:
annotations:
  artifacthub.io/license: Apache-2.0
  artifacthub.io/containsSecurityUpdates: 'false'
  artifacthub.io/prerelease: 'false'
  artifacthub.io/operator: 'false'         # 'true' for the operator chart
  artifacthub.io/operatorCapabilities: Seamless Upgrades  # operator only
  artifacthub.io/crds: |
    - kind: AIInsight
      version: v1alpha1
      description: AI-generated analysis and recommendations
    # ... 17 CRDs total
  artifacthub.io/crdsExamples: |
    - apiVersion: platform.chatcli.io/v1alpha1
      kind: Issue
      metadata:
        name: high-cpu-api-server
      spec:
        title: "High CPU usage on api-server"
        severity: critical
    # ... examples for ApprovalPolicy, ServiceLevelObjective, etc.
  artifacthub.io/links: |
    - name: Documentation
      url: https://chatcli.edilsonfreitas.com
    - name: Source
      url: https://github.com/diillson/chatcli
  artifacthub.io/maintainers: |
    - name: Edilson Freitas
      email: diillson@hotmail.com

Available Annotations

AnnotationDescriptionServerOperator
artifacthub.io/licenseChart licenseApache-2.0Apache-2.0
artifacthub.io/operatorWhether it is a Kubernetes operatorfalsetrue
artifacthub.io/operatorCapabilitiesOperator maturity levelSeamless Upgrades
artifacthub.io/containsSecurityUpdatesFlags security updatesfalsefalse
artifacthub.io/prereleaseMarks as pre-release versionfalsefalse
artifacthub.io/crdsCRDs installed by the chart17 CRDs17 CRDs
artifacthub.io/crdsExamplesCRD usage examples3 examples4 examples
artifacthub.io/linksLinks to documentation and source code2 links2 links
artifacthub.io/maintainersChart maintainers11

3. Publishing Pipeline (GitHub Actions)

Publishing is fully automated via GitHub Actions in the 3-publish-release.yml workflow. On each release:
1

Release trigger

A commit to the main branch or a manual trigger starts the release pipeline.
2

Automatic versioning

The pipeline updates the version in both Chart.yaml files:
sed -i "s/^version:.*/version: ${VERSION}/" deploy/helm/chatcli/Chart.yaml
sed -i "s/^appVersion:.*/appVersion: \"${VERSION}\"/" deploy/helm/chatcli/Chart.yaml
3

Packaging

Charts are packaged with helm package:
helm package deploy/helm/chatcli/ -d /tmp/charts/
helm package deploy/helm/chatcli-operator/ -d /tmp/charts/
4

Push to OCI registry

Packages are pushed to the GitHub Container Registry:
helm push /tmp/charts/chatcli-*.tgz oci://ghcr.io/diillson/charts
helm push /tmp/charts/chatcli-operator-*.tgz oci://ghcr.io/diillson/charts
5

ArtifactHub sync

ArtifactHub automatically detects new versions and updates the package pages in the catalog.

Documented CRDs

Both charts declare 17 Custom Resource Definitions in the annotations, which are automatically displayed on the ArtifactHub page:
CRDVersionDescription
AIInsightv1alpha1AI-generated analysis and recommendations for detected issues
Anomalyv1alpha1Raw signal from watchers before correlation into issues
ApprovalPolicyv1alpha1Approval requirements for remediation actions (auto/manual/quorum)
ApprovalRequestv1alpha1Pending approval with blast radius assessment
AuditEventv1alpha1Immutable record of actions on the AIOps platform
ChaosExperimentv1alpha1Chaos engineering experiment targeting Kubernetes resources
ClusterRegistrationv1alpha1Registered cluster for multi-cluster federation
EscalationPolicyv1alpha1Escalation chains for incident management
IncidentSLAv1alpha1SLA targets for response and resolution by severity
Instancev1alpha1ChatCLI instance configuration
Issuev1alpha1Correlated operational problem detected in the cluster
NotificationPolicyv1alpha1Multi-channel notification delivery rules
PostMortemv1alpha1Full incident lifecycle report after resolution
RemediationPlanv1alpha1Remediation plan with 54+ action types
Runbookv1alpha1Operational procedures linked to issue types
ServiceLevelObjectivev1alpha1SLO with burn rate alerting and error budgets
SourceRepositoryv1alpha1Links workloads to source code for code-aware analysis
CRDs are shared between the server and operator charts. If both are installed in the same cluster, the CRDs from whichever chart was installed first will be used.

Installation via ArtifactHub

ChatCLI Server

helm install chatcli oci://ghcr.io/diillson/charts/chatcli \
  --namespace chatcli --create-namespace \
  --set llm.provider=OPENAI \
  --set secrets.openaiApiKey=sk-xxx

ChatCLI Operator

helm install chatcli-operator oci://ghcr.io/diillson/charts/chatcli-operator \
  --namespace aiops-system --create-namespace

From Source

git clone https://github.com/diillson/chatcli.git

# Server
helm install chatcli deploy/helm/chatcli \
  --namespace chatcli --create-namespace

# Operator
helm install chatcli-operator deploy/helm/chatcli-operator \
  --namespace aiops-system --create-namespace

Using an Existing Secret

kubectl create secret generic chatcli-llm-keys \
  --namespace chatcli \
  --from-literal=OPENAI_API_KEY=sk-xxx \
  --from-literal=ANTHROPIC_API_KEY=sk-ant-xxx

helm install chatcli oci://ghcr.io/diillson/charts/chatcli \
  --namespace chatcli \
  --set llm.provider=OPENAI \
  --set secrets.existingSecret=chatcli-llm-keys

Upgrade and Removal

Upgrade to Latest Version

# Server
helm upgrade chatcli oci://ghcr.io/diillson/charts/chatcli \
  --namespace chatcli --reuse-values

# Operator
helm upgrade chatcli-operator oci://ghcr.io/diillson/charts/chatcli-operator \
  --namespace aiops-system --reuse-values

Uninstall

helm uninstall chatcli -n chatcli
helm uninstall chatcli-operator -n aiops-system
CRDs are not automatically removed by Helm. To remove them manually:
kubectl get crd -o name | grep platform.chatcli.io | xargs kubectl delete

Chart Structure

Helm charts are located in deploy/helm/ in the repository:
deploy/helm/
���── chatcli/                          # Server chart
│   ��── Chart.yaml                    # Metadata + ArtifactHub annotations
│   ├── README.md                     # Documentation shown on ArtifactHub
│   ├── values.yaml                   # Default values (322 lines)
│   ├── crds/                         # 17 CRD YAML files
│   │   ├─��� platform.chatcli.io_aiinsights.yaml
│   │   ├── platform.chatcli.io_anomalies.yaml
│   │   ���── ... (15 more)
│   └── templates/
│       ├── deployment.yaml
│       ├── service.yaml
│       ├── secret.yaml
│       ├── configmap.yaml
│       ├── rbac.yaml
│       ├── hpa.yaml
│       ├── pdb.yaml
│       ├── ingress.yaml
│       ├── networkpolicy.yaml
│       ├── pvc.yaml
│       ├── serviceaccount.yaml
│       ├── servicemonitor.yaml
│       ├── mcp-configmap.yaml
│       ├── agents-configmap.yaml
│       ├── bootstrap-configmap.yaml
│       ├── skills-configmap.yaml
│       └── _helpers.tpl

└─��� chatcli-operator/                 # Operator chart
    ├── Chart.yaml
    ├── README.md
    ├── values.yaml
    ├── crds/
    └── templates/

Differences Between Charts

AspectChatCLI ServerChatCLI Operator
PurposeLLM gRPC gateway with agents and watcherAutonomous incident detection and remediation
ArtifactHub TypeApplicationOperator
artifacthub.io/operatorfalsetrue
CapabilitiesSeamless Upgrades
CRD ExamplesIssue, ApprovalPolicy, SLOIssue, ApprovalPolicy, ChaosExperiment, SLO
Keywordschatcli, llm, grpc, ai, mcp, aiopsoperator, aiops, remediation, sre, chaos-engineering
OCI Registryoci://ghcr.io/diillson/charts/chatclioci://ghcr.io/diillson/charts/chatcli-operator

Chart Security

Both charts follow Kubernetes security best practices:

Non-Root

Containers run as non-root user (UID 1000) with runAsNonRoot: true.

Read-Only Filesystem

readOnlyRootFilesystem: true — only mounted volumes are writable.

Capabilities Dropped

All Linux capabilities are dropped with drop: ["ALL"].

Seccomp

RuntimeDefault seccomp profile enabled by default.

Requirements

  • Kubernetes: 1.30+
  • Helm: 3.10+ (OCI registry support)
  • LLM Provider: At least one API key configured (OpenAI, Anthropic, Google, xAI, StackSpot, GitHub Copilot, or Ollama)

Next Steps

Docker & K8s Deploy

Complete deployment guide with Docker, Compose, and Helm.

K8s Operator

AIOps operator details with 17 CRDs.

AIOps Platform

Overview of the intelligent operations platform.