Documentation
¶
Overview ¶
ChatCLI is a multi-provider AI platform for terminal, server, and Kubernetes.
It connects 11 LLM providers (OpenAI, Anthropic Claude, Google Gemini, xAI Grok, ZAI, MiniMax, GitHub Copilot, GitHub Models, StackSpot AI, Ollama, and OpenAI Assistants) to a unified interface with autonomous agents, native tool calling, automatic provider failover, and a full AIOps pipeline.
Three Modes of Operation ¶
- Interactive CLI: Terminal-based TUI (Bubble Tea) with context injection, 12 specialized agents running in parallel, and tool calling.
- gRPC Server: Centralized server with JWT + RBAC authentication, TLS 1.3, rate limiting, Prometheus metrics, MCP integration, and plugin/agent discovery.
- Kubernetes Operator: 17 CRDs powering an autonomous AIOps pipeline with anomaly detection, AI-driven root cause analysis, 54+ automated remediation actions, approval workflows, SLO monitoring, and auto-generated post-mortems.
Key Features ¶
- Multi-provider with automatic failover and exponential backoff
- ReAct engine with 12 specialized agents (File, Coder, Shell, Git, Search, Planner, Reviewer, Tester, Refactor, Diagnostics, Formatter, Deps)
- Native tool calling via OpenAI, Anthropic, Google, ZAI, and MiniMax APIs
- MCP (Model Context Protocol) for extending LLM capabilities
- OAuth PKCE + Device Flow authentication with AES-256-GCM encrypted storage
- Plugin system with Ed25519 signature verification
- Persistent contexts, bootstrap files (SOUL.md, USER.md), and long-term memory
- Session management with AES-256-GCM encryption at rest
- Cost tracking per session and provider
- Internationalization (Portuguese and English)
Enterprise Security ¶
- JWT authentication with RBAC roles (admin, user, readonly)
- AES-256-GCM encryption for credentials and sessions
- TLS 1.3 enforcement with mTLS support
- SSRF prevention blocking private IPs and cloud metadata endpoints
- Per-client token-bucket rate limiting
- Ed25519 plugin signature verification
- Agent command allowlist (150+ pre-approved commands)
- Structured audit logging (JSON lines)
- Automated security scanning (govulncheck, gosec, Dependabot)
Installation ¶
brew tap diillson/chatcli && brew install chatcli
Or:
go install github.com/diillson/chatcli@latest
Full documentation: https://chatcli.edilsonfreitas.com
Source code: https://github.com/diillson/chatcli
- ChatCLI - Command Line Interface for LLM interaction
- Copyright (c) 2024 Edilson Freitas
- License: Apache-2.0
Directories
¶
| Path | Synopsis |
|---|---|
|
Package auth provides OAuth authentication flows and secure credential storage for ChatCLI's multi-provider LLM integration.
|
Package auth provides OAuth authentication flows and secure credential storage for ChatCLI's multi-provider LLM integration. |
|
agent
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
ctxmgr
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
metrics
Go Multi-Agent - Metrics Display
|
Go Multi-Agent - Metrics Display |
|
paste
* ChatCLI - Paste Detection * cli/paste/detector.go * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Paste Detection * cli/paste/detector.go * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
plugins
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
client
|
|
|
remote
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
Package config provides configuration management for ChatCLI with environment variable loading, versioned migration, and runtime defaults.
|
Package config provides configuration management for ChatCLI with environment variable loading, versioned migration, and runtime defaults. |
|
Package i18n provides internationalization support for ChatCLI with automatic locale detection and embedded translation files.
|
Package i18n provides internationalization support for ChatCLI with automatic locale detection and embedded translation files. |
|
llm
|
|
|
claudeai
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
client
Package client defines the LLMClient interface that all LLM providers must implement, along with shared types for tool calling, streaming, and metrics instrumentation.
|
Package client defines the LLMClient interface that all LLM providers must implement, along with shared types for tool calling, streaming, and metrics instrumentation. |
|
copilot
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
fallback
Package fallback implements the provider fallback chain for automatic failover between LLM providers.
|
Package fallback implements the provider fallback chain for automatic failover between LLM providers. |
|
github_models
* ChatCLI - GitHub Models marketplace provider * Uses OpenAI-compatible API at models.inference.ai.azure.com * Auth: GitHub Personal Access Token (PAT) * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - GitHub Models marketplace provider * Uses OpenAI-compatible API at models.inference.ai.azure.com * Auth: GitHub Personal Access Token (PAT) * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
googleai
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
manager
Package manager provides the LLM provider manager that creates and caches LLM clients based on provider name and model configuration.
|
Package manager provides the LLM provider manager that creates and caches LLM clients based on provider name and model configuration. |
|
minimax
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
ollama
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
openai
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
openai_assistant
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
openai_responses
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
registry
Package registry provides the auto-register mechanism for LLM providers.
|
Package registry provides the auto-register mechanism for LLM providers. |
|
stackspotai
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
token
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
xai
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
zai
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
Package models defines the shared data types used across all ChatCLI components — CLI, server, operator, and LLM providers.
|
Package models defines the shared data types used across all ChatCLI components — CLI, server, operator, and LLM providers. |
|
operator
module
|
|
|
pkg
|
|
|
persona
* ChatCLI - Persona System * pkg/persona/builder.go * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Persona System * pkg/persona/builder.go * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
registry
* ChatCLI - ChatCLI.dev Registry Adapter * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 * * Implements SkillRegistry for the official ChatCLI skill registry.
|
* ChatCLI - ChatCLI.dev Registry Adapter * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 * * Implements SkillRegistry for the official ChatCLI skill registry. |
|
plugins-examples
|
|
|
chatcli-coder
command
|
|
|
chatcli-docker-clean
command
|
|
|
chatcli-docker-list
command
|
|
|
chatcli-dockerhub
command
|
|
|
chatcli-dockerps
command
|
|
|
chatcli-dockerrun
command
|
|
|
chatcli-docs-flatten
command
|
|
|
chatcli-gobenchgen
command
|
|
|
chatcli-gobenchrun
command
|
|
|
chatcli-hackernews
command
|
|
|
chatcli-lotus-scan
command
|
|
|
chatcli-lotus-write
command
|
|
|
chatcli-wikipedia
command
|
|
|
proto
|
|
|
tools
|
|
|
docgen
command
|
|
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0
|
* ChatCLI - Command Line Interface for LLM interaction * Copyright (c) 2024 Edilson Freitas * License: Apache-2.0 |
Click to show internal directories.
Click to hide internal directories.