chatcli
Health Gecti
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 88 GitHub stars
Code Uyari
- network request — Outbound network request in .agent/skills/frontend-design/scripts/ux_audit.py
- network request — Outbound network request in .agent/skills/mobile-design/scripts/mobile_audit.py
- network request — Outbound network request in .agent/skills/nextjs-react-expert/scripts/react_performance_checker.py
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
ChatCLI é uma aplicação de linha de comando que utiliza modelos de linguagem como OpenAI, GoogleAI, e outras, para conversas interativas no terminal. Suporta comandos como @history, @git, @env e @file e @command para integrar histórico do shell, Git, variáveis e conteúdos de arquivos.
ChatCLI
Plataforma de IA unificada para terminal, servidor gRPC e Kubernetes.
14 provedores · 14 agentes autônomos · pipeline de qualidade em 7 padrões · um único binário.
English • Documentação completa • Arquitetura • Observabilidade
ChatCLI conecta os maiores modelos de linguagem do mercado a uma interface única e extensível — do
chatcli -pno terminal até um operador Kubernetes com pipeline AIOps autônomo, passando por um servidor gRPC production-ready com autenticação, fallback e métricas Prometheus.
Destaques
| Multi-provider com fallback | 14 provedores de LLM (OpenAI · OpenAI Responses · Anthropic · Bedrock · Google · xAI · ZAI · MiniMax · Moonshot (Kimi) · Copilot · GitHub Models · StackSpot · OpenRouter · Ollama), com classificação inteligente de erros, backoff exponencial e cooldown por provider. |
| Agentes autônomos | 14 workers builtin coordenados por motor ReAct (Reason + Act): 12 specialists de orquestração executam em paralelo + 2 de qualidade (refiner, verifier), com pipeline de qualidade em 7 padrões. |
| Quality pipeline | Self-Refine, Chain-of-Verification (CoVe), Reflexion, RAG + HyDE, Plan-and-Solve (ReWOO), backbone de reasoning cross-provider — todos compostos por state machine thread-safe com circuit breakers e hot reload. |
| Scheduler (Chronos) | Agendamento durável com cron + wait-until + DAG + daemon mode. /schedule, /wait, /jobs + tool @scheduler para agents. WAL CRC32, snapshots, rate limiter, circuit breakers, audit JSONL, 13 métricas Prometheus. Jobs sobrevivem a crash e a fechar o CLI. |
| Reflexion durável | Fila WAL-backed com worker pool, dead letter queue, replay on boot, retry exponencial com jitter — lições sobrevivem a crash do processo. |
| Convergência semântica | Cascade char → Jaccard → embedding cosine para Self-Refine, com cache LRU/TTL e quality regression detection. |
| Production-ready | gRPC + TLS 1.3, JWT + RBAC, AES-256-GCM, rate limiting, audit logging, 50+ métricas Prometheus. |
| Kubernetes-native | Operador com 17 CRDs e pipeline AIOps autônomo (54+ ações de remediação), SLO monitoring, post-mortems. |
| Extensível | Plugins com verificação Ed25519, skills multi-registry (skills.sh, ClawHub, ChatCLI.dev), hooks de lifecycle, MCP client (stdio + SSE). |
Instalação
# Homebrew (macOS / Linux)
brew tap diillson/chatcli && brew install chatcli
# Go install
go install github.com/diillson/chatcli@latest
# Binários pre-compilados assinados (cosign)
# https://github.com/diillson/chatcli/releases
Compilação a partir do código-fonte
git clone https://github.com/diillson/chatcli.git && cd chatcli
go mod tidy && go build -o chatcli
# Com informações de versão injetadas via ldflags
VERSION=$(git describe --tags --always --dirty 2>/dev/null || echo "dev")
go build -ldflags "-X github.com/diillson/chatcli/version.Version=${VERSION}" -o chatcli
Configuração rápida
LLM_PROVIDER=OPENAI # OPENAI, CLAUDEAI, BEDROCK, GOOGLEAI, XAI, ZAI, MINIMAX, MOONSHOT,
# COPILOT, GITHUB_MODELS, OLLAMA, STACKSPOT, OPENROUTER
OPENAI_API_KEY=sk-xxx
Referência completa de variáveis por provider
| Provider | API Key | Model | Extras |
|---|---|---|---|
| OpenAI | OPENAI_API_KEY |
OPENAI_MODEL |
OPENAI_MAX_TOKENS, OPENAI_USE_RESPONSES |
| Anthropic | ANTHROPIC_API_KEY |
ANTHROPIC_MODEL |
ANTHROPIC_MAX_TOKENS |
| AWS Bedrock | IAM / Profile / credentials chain | BEDROCK_MODEL |
AWS_REGION, BEDROCK_CROSS_REGION |
| Google Gemini | GOOGLEAI_API_KEY |
GOOGLEAI_MODEL |
GOOGLEAI_MAX_TOKENS |
| xAI | XAI_API_KEY |
XAI_MODEL |
XAI_MAX_TOKENS |
| ZAI | ZAI_API_KEY |
ZAI_MODEL |
ZAI_MAX_TOKENS |
| MiniMax | MINIMAX_API_KEY |
MINIMAX_MODEL |
MINIMAX_MAX_TOKENS |
| Moonshot (Kimi) | MOONSHOT_API_KEY |
MOONSHOT_MODEL |
MOONSHOT_MAX_TOKENS, MOONSHOT_THINKING |
| GitHub Copilot | GITHUB_COPILOT_TOKEN |
COPILOT_MODEL |
ou /auth login github-copilot |
| GitHub Models | GITHUB_TOKEN |
GITHUB_MODELS_MODEL |
GH_TOKEN, GITHUB_MODELS_TOKEN |
| StackSpot | CLIENT_ID, CLIENT_KEY |
— | STACKSPOT_REALM, STACKSPOT_AGENT_ID |
| OpenRouter | OPENROUTER_API_KEY |
— | OPENROUTER_MAX_TOKENS, OPENROUTER_FALLBACK_MODELS |
| Ollama | — | OLLAMA_MODEL |
OLLAMA_ENABLED=true, OLLAMA_BASE_URL |
| OpenAI (Responses API) | OPENAI_API_KEY |
OPENAI_MODEL |
OPENAI_RESPONSES_API_URL |
Três modos de operação
CLI InterativaTerminal inteligente com TUI (Bubble Tea), contexto de projeto, tool calling e agentes autônomos.
|
Servidor gRPCBackend compartilhado com TLS 1.3, JWT/RBAC, fallback, métricas Prometheus, MCP e discovery de plugins.
|
Kubernetes OperatorPipeline AIOps autônomo com 17 CRDs, 54+ ações de remediação, SLO monitoring e post-mortems.
|
Scheduler autônomo (Chronos)
O scheduler roda embutido no CLI e, opcionalmente, como daemon. Jobs sobrevivem a reinícios via WAL + snapshot.
# Dispara um comando em 30s
/schedule ping --when +30s --do "/run curl https://api.example.com/health"
# Cron diário com retry
/schedule backup --cron "0 2 * * *" --do "shell: ./backup.sh" --max-retries 3
# Deploy + wait K8s + trigger smoke
/schedule deploy --when +0s --do "shell: terraform apply -auto-approve" \
--wait "k8s:deployment/prod/api:Available" --timeout 15m \
--triggers smoke-tests
# Daemon para rodar sozinho com o CLI fechado
chatcli daemon start --detach
chatcli daemon status
# Listar / inspecionar / cancelar
/jobs list
/jobs show <id>
/jobs tree
/jobs cancel <id>
Agents ganham a tool @scheduler e podem se auto-pausar esperando condições — veja Cookbook: automações com Scheduler e doc da feature.
Injete dados do ambiente diretamente no prompt:
| Comando | O que faz |
|---|---|
@git |
Status, branches e commits recentes |
@file <path> |
Conteúdo de arquivos/diretórios |
@env |
Variáveis de ambiente |
@history |
Últimos comandos do shell |
@command <cmd> |
Executa e injeta a saída |
apiVersion: platform.chatcli.io/v1alpha1
kind: Instance
metadata:
name: chatcli-prod
spec:
provider: ZAI
model: glm-5
replicas: 2
fallback:
enabled: true
providers:
- name: OPENAI
model: gpt-5.4
- name: MINIMAX
model: MiniMax-M2.7
helm install chatcli oci://ghcr.io/diillson/charts/chatcli \
--namespace chatcli --create-namespace \
--set llm.provider=OPENAI --set secrets.openaiApiKey=sk-xxx
Provedores suportados
14 provedores com interface unificada. Fallback automático com classificação inteligente de erros, extended thinking cross-provider e cache de prompt onde disponível.
| Provider | Default Model | Tool Calling | Vision | Reasoning / Thinking |
|---|---|---|---|---|
| OpenAI | gpt-5.4 | Nativo | Sim | reasoning_effort (o-series / gpt-5) |
| Anthropic (Claude) | claude-sonnet-4-6 | Nativo | Sim | Extended thinking com cache |
| AWS Bedrock | claude-sonnet-4-5 | Nativo | Sim | Thinking budget (Anthropic models) |
| Google Gemini | gemini-2.5-flash | Nativo | Sim | — |
| xAI (Grok) | grok-4-1 | XML fallback | — | — |
| ZAI (Zhipu AI) | glm-5 | Nativo | Sim | — |
| MiniMax | MiniMax-M2.7 | Nativo | Sim | — |
| Moonshot (Kimi) | kimi-k2.6 | Nativo | Sim | MOONSHOT_THINKING=enabled|disabled|auto |
| GitHub Copilot | gpt-4o | Nativo | Sim | — |
| GitHub Models | gpt-4o | Nativo | Sim | — |
| StackSpot AI | StackSpotAI | — | — | — |
| OpenRouter | openai/gpt-5.2 | Nativo | Sim | Passthrough |
| Ollama | (local) | XML fallback | — | Tags <thinking> normalizadas |
| OpenAI (Responses API) | gpt-5.4 | Nativo | Sim | reasoning_effort |
# Fallback chain configurável
CHATCLI_FALLBACK_PROVIDERS=OPENAI,CLAUDEAI,BEDROCK,ZAI,MINIMAX,MOONSHOT,OPENROUTER
/thinking on|off|auto ativa extended thinking / reasoning_effort em qualquer provider que suporte — o mapeamento cross-provider é automático.
Agentes autônomos
Motor ReAct (Reason + Act) com 14 agents builtin: 12 specialists de orquestração executando em paralelo (
file, coder, shell, git, search, planner, reviewer, tester, refactor, diagnostics, formatter, deps) + 2 do harness de qualidade (refiner,verifier).
/coder "Refatore o módulo auth para usar JWT"
chatcli -p "Crie testes para o pacote utils" --agent-auto-exec
| Agente | Responsabilidade |
|---|---|
| File | Leitura, escrita e manipulação de arquivos |
| Coder | Geração e edição de código |
| Shell | Execução de comandos no sistema |
| Git | Operações de versionamento |
| Search | Busca em código e arquivos |
| Planner | Decomposição de tarefas complexas (Plan-and-Solve / ReWOO) |
| Reviewer | Code review automatizado |
| Tester | Geração e execução de testes |
| Refactor | Refatoração segura de código |
| Diagnostics | Análise e debug de problemas |
| Formatter | Formatação e linting |
| Deps | Gerenciamento de dependências |
| Refiner | Self-Refine post-hook (critique → revise) |
| Verifier | Chain-of-Verification (perguntas + resposta final) |
Workers são coordenados pelo dispatcher com semáforo configurável (CHATCLI_AGENT_MAX_WORKERS), política de retry e sincronização por FileLockManager.
Harness/Quality Pipeline
Sete padrões de prompting e execução compostos por uma pipeline pluggable com state machine, hot reload e isolamento por hook.
| # | Padrão | Status | Opt-in |
|---|---|---|---|
| 1 | ReAct (Reason + Act) | ✅ core do agente | — |
| 2 | Plan-and-Solve / ReWOO | ✅ | /plan, CHATCLI_QUALITY_PLAN_FIRST_MODE |
| 3 | Reflexion (com fila durável) | ✅ | ligada por padrão |
| 4 | RAG + HyDE | ✅ | CHATCLI_QUALITY_HYDE_ENABLED=1 |
| 5 | Self-Refine (com convergência semântica) | ✅ | CHATCLI_QUALITY_REFINE_ENABLED=1 |
| 6 | Chain-of-Verification (CoVe) | ✅ | CHATCLI_QUALITY_VERIFY_ENABLED=1 |
| 7 | Reasoning backbone cross-provider | ✅ | CHATCLI_QUALITY_REASONING_MODE=auto |
Arquitetura do Pipeline
- State machine (Active → Draining → Closed) com transições via CAS atômico.
- Copy-on-Write via
atomic.Pointer[snapshot]—AddPre/AddPost/SwapConfigatômicos, zero lock no hot path. - Isolamento por hook: panic recovery, timeout enforcement (default 30s), circuit breaker (5 falhas → open por 30s).
- Priority-based ordering via interface opcional
Prioritized(backward compat — hooks sem prioridade ficam em 100). - Short-circuit sentinels:
ErrSkipExecution(cache-hit antes doagent.Execute) eErrSkipRemainingHooks(ensemble patterns). - Graceful shutdown com
DrainAndClose(timeout)respeitando in-flight.
Reflexion durável (WAL + DLQ)
Triggers de reflexion (erro, alucinação detectada pelo CoVe, baixa qualidade) passam por uma fila de lessons com garantia enterprise — lições sobrevivem a crash do processo:
- WAL com CRC32 duplo, atomic rename, dir fsync — detecta torn writes automaticamente.
- Worker pool (default 2) com per-job timeout, exponential backoff + jitter,
MaxAttemptsconfigurável. - DLQ persistente (mesmo formato WAL) com subcomandos
/reflect failed,/reflect retry <id>,/reflect purge <id>. - Drain-on-boot: lições pendentes de uma sessão anterior são reprocessadas automaticamente.
- Idempotência via
sha256(task | trigger | attempt)— re-trigger da mesma situação é no-op. - Stale discard (default 7d) — lições velhas descartadas no replay.
/reflect list # fila atual + DLQ
/reflect failed # DLQ com último erro por entrada
/reflect retry <job-id> # reenfileira uma lição que falhou
/reflect purge <job-id> # remove definitivamente da DLQ
/reflect drain # força replay do WAL
Convergência semântica (Self-Refine)
O Self-Refine usa cascade char → Jaccard → embedding para detectar quando parar iterando. Resolve "same meaning, different words" que o heurístico char-level não pegava:
| Etapa | Custo | Quando dispara |
|---|---|---|
| Char | μs | Sempre. Early-exit quando sim > 0.99 (idêntico) ou sim < 0.3 (divergiu) |
| Jaccard | ms | Borderline, sets de tokens normalizados com stop-words PT/EN |
| Embedding | ms + $ | Borderline pós-Jaccard. Opt-in via CHATCLI_QUALITY_REFINE_CONVERGENCE_EMBEDDING=1 |
- Cache LRU com TTL (default 256 entries / 5min) evita chamar embedder duas vezes pelo mesmo texto.
- Circuit breaker por scorer — provider fora do ar degrada pra Jaccard sem travar refine.
- Quality regression detection: se pass N piora (>15% sim loss vs melhor) → reverte pro melhor draft visto + marca
refine_rolled_backpra Reflexion aprender. - Modo strict: recusa declarar convergência sem embedding quando a stakes for alta.
# Master switch
CHATCLI_QUALITY_ENABLED=true
# Self-Refine (#5) + convergência semântica
CHATCLI_QUALITY_REFINE_ENABLED=false # opt-in
CHATCLI_QUALITY_REFINE_MAX_PASSES=1
CHATCLI_QUALITY_REFINE_CONVERGENCE_ENABLED=true
CHATCLI_QUALITY_REFINE_CONVERGENCE_EMBEDDING=false
CHATCLI_QUALITY_REFINE_CONVERGENCE_STRICT=false
# Chain-of-Verification (#6)
CHATCLI_QUALITY_VERIFY_ENABLED=false
CHATCLI_QUALITY_VERIFY_NUM_QUESTIONS=3
CHATCLI_QUALITY_VERIFY_REWRITE=true
# Reflexion (#3) + fila durável
CHATCLI_QUALITY_REFLEXION_ENABLED=true
CHATCLI_QUALITY_REFLEXION_QUEUE_ENABLED=true # WAL + worker pool + DLQ
CHATCLI_QUALITY_REFLEXION_QUEUE_WORKERS=2
CHATCLI_QUALITY_REFLEXION_QUEUE_MAX_ATTEMPTS=5
CHATCLI_QUALITY_REFLEXION_QUEUE_STALE_AFTER=168h
# Plan-and-Solve / ReWOO (#2)
CHATCLI_QUALITY_PLAN_FIRST_MODE=auto # off|auto|always
# HyDE (#4)
CHATCLI_QUALITY_HYDE_ENABLED=false
CHATCLI_QUALITY_HYDE_USE_VECTORS=false
# Reasoning backbone (#7)
CHATCLI_QUALITY_REASONING_MODE=auto # off|on|auto
CHATCLI_QUALITY_REASONING_BUDGET=8000
Todos expostos no /config quality com estado em tempo real (hooks registrados, queue depth, DLQ size).
Observabilidade
Prometheus end-to-end em namespace
chatcli. 50+ métricas cobrindo LLM, agentes, pipeline, queue e fila de lições.
chatcli server --port 50051 --metrics-port 9090
curl http://localhost:9090/metrics | grep chatcli_
curl http://localhost:9090/healthz
Métricas principais
| Subsystem | Métrica | Tipo |
|---|---|---|
chatcli_llm_* |
requests_total, request_duration_seconds, tokens_used_total, errors_total |
Counter, Histogram |
chatcli_quality_pipeline_* |
dispatch_total, hook_duration_seconds, hook_errors_total, hook_circuit_state, generation |
Counter, Histogram, Gauge |
chatcli_lessonq_* |
enqueue_total, queue_depth, dlq_size, processing_duration_seconds, wal_corruption_total, retry_total |
Counter, Gauge, Histogram |
chatcli_session_* |
duração, comandos executados, sinais | Counter, Gauge |
chatcli_grpc_* |
unary + stream interceptors | Counter, Histogram |
Collectors padrão do Go runtime e process_* também registrados automaticamente.
Enterprise Security
Segurança não é um feature flag. É a fundação de cada camada do ChatCLI.
|
Autenticação e autorização
Criptografia
Rede
|
Plugin e agent security
Auditoria e compliance
CI/CD security
|
/auth login openai-codex # OAuth PKCE + callback local
/auth login anthropic # OAuth PKCE + code manual
/auth login github-copilot # Device Flow (RFC 8628)
/auth status # Status de todos os providers
Credenciais armazenadas com AES-256-GCM em ~/.chatcli/auth-profiles.json.
Referência de comandos
| Categoria | Comandos |
|---|---|
| Core | /help · /version · /reload · /exit · /reset |
| Sessões | /session {save,load,list,delete,new,fork,search} · /export · /newsession · /rewind |
| Contexto | /context {create,attach,list,remove} · @git · @file · @env · @history · @command |
| Config | /config [section] · /status · /settings · /switch <provider|model> |
| Modo agente | /agent [task] · /run · /coder · /plan [query] · /moa <prompt> |
| Quality pipeline | /thinking [on|off|auto] · /refine [draft] · /verify [answer] · /reflect [list|failed|retry|purge|drain|<texto>] |
| Memória & grafo | /memory {longterm,list,profile,facts,remember,forget,profile set,compact} · @memory (remember/recall/forget/profile/neighbors/map) · /graph [assunto] · /compact [ratio] |
| Extensibilidade | /mcp {init,list,invoke,config} · /plugin {list,load,unload} · /skill <name> · /hooks {list,enable,disable,test} |
| Mensageria & Servidores | /gateway {start,status} (Telegram/Slack/Discord/WhatsApp/webhook) · chatcli mcp-server · chatcli acp |
| Remoto | /auth {login,logout,status} · /connect <server> · /disconnect |
| Ferramentas | /watch {pid|file} · /worktree {create,list,remove} · /channel {create,switch} · /websearch <query> · /lsp <arquivo> |
| Scheduler | /schedule <nome> --when <t> --do <a> · /wait --until <cond> · /jobs {list,show,tree,cancel,pause,resume,logs,daemon} · chatcli daemon {start,stop,status,ping,install} |
| Diagnóstico | /metrics · /cost · /ratelimit (/limits) |
Funcionalidades
Cada feature foi projetada para compor com as demais. Plugins descobrem skills. Hooks acionam tools. Contextos alimentam agentes.
| Feature | Descrição |
|---|---|
| Tool calling nativo | APIs nativas de OpenAI, Anthropic, Bedrock, Google, ZAI, MiniMax, Moonshot, OpenRouter. Cache ephemeral para Anthropic. XML fallback automático para providers sem suporte nativo. |
| MCP (Model Context Protocol) | Client via stdio e SSE para contexto expandido. Server (chatcli mcp-server) expõe chat, agent, coder e built-in tools; modo ACP (chatcli acp) para editores. |
| Chat Gateway | Roda como daemon de mensageria (Telegram, Slack, Discord, WhatsApp, webhook): cada mensagem passa pelo agent loop e o progresso é transmitido de volta ao chat. Mensagens de voz são transcritas (whisper local-first) e respondidas em voz por padrão (CHATCLI_GATEWAY_VOICE_REPLY=auto|always|never); cada conversa controla isso pedindo em linguagem natural ("responde em áudio" / "para de mandar áudio") via tool @voice, com preferência persistida. |
| Voz embarcada (TTS) | CHATCLI_TTS_PROVIDER=embedded — voz neural Kokoro offline, sem API key e sem cgo: baixa o engine sherpa-onnx + modelo uma única vez (~150MB) e funciona igual em Linux/macOS/Windows. Roteia pt-BR/inglês por idioma da resposta (CHATCLI_TTS_VOICE=bm_george, CHATCLI_TTS_VOICE_PT=pm_alex); demais backends (say/espeak, self-hosted, OpenAI/Groq/Gemini) seguem disponíveis. |
| Transcrição embarcada (STT) | Whisper multilíngue offline via sherpa-onnx, sem API key e sem cgo — é o fallback automático: sem nada configurado, o gateway baixa o engine + modelo ONNX uma única vez (~200MB no base; CHATCLI_TRANSCRIPTION_MODEL=tiny|base|small|…) já no startup e transcreve notas de voz detectando o idioma falado. Voice notes OGG/Opus (Telegram/WhatsApp) são decodificadas em puro Go — sem ffmpeg; só formatos residuais (mp3/m4a) pedem ffmpeg, e o preflight do gateway + /gateway status avisam com o comando de instalação da sua plataforma. CHATCLI_TRANSCRIPTION_PROVIDER=embedded força-o sobre outros backends (whisper CLI local, self-hosted, Groq/OpenAI), que seguem disponíveis. |
| Mixture-of-Agents | /moa — vários modelos propõem em paralelo e um agregador sintetiza (Wang et al., 2406.04692). |
| Diagnósticos LSP | /lsp <arquivo> — erros/avisos do compilador via Language Server Protocol (gopls, pyright, rust-analyzer, clangd, …). |
| Rate limits | /ratelimit — limites do provider parseados dos headers x-ratelimit-* (requests/tokens, % usado, reset). |
| Exportar trajetória | /export — conversa atual como JSONL ShareGPT para fine-tuning/análise. |
| Contextos persistentes | /context create, /context attach — injeta projetos inteiros no system prompt com cache hints. |
| Knowledge base (RAG keyless) | /context create docs corpus.jsonl --mode knowledge — corpora de docs ou de código/infra (ex.: JSONL da tool builtin @docs-flatten, que achata Markdown/MDX e — com kind=code — código-fonte, Terraform e YAML Kubernetes/Argo locais ou de um repo git, chunkando por estrutura) viram base de conhecimento: o attach injeta só um index card (~900 tokens fixos, mesmo com 6MB+) e trechos relevantes são recuperados por turno via BM25 puro-Go (sem API key) + embeddings quando configurados. A tool @knowledge (search/get/toc) consulta a base iterativamente no agent/coder e também no chat (exceção read-only, /config chat knowledge) — inclusive pra criar skills a partir da doc com @skill. |
| Bootstrap e Memória | SOUL.md, USER.md, IDENTITY.md, RULES.md + memória de longo prazo com facts (confiança + proveniência + reconciliação de contradições), tópicos com resumo rolante e decay. |
| Auto-evolução (self-evolution) | Skills se auto-criam e evoluem na própria passada de extração de memória (sem chamada extra de LLM): procedimentos reutilizáveis viram skills que auto-ativam; uma melhoria evolui a skill existente por merge aditivo, com backup reversível (@skill restore). CHATCLI_SELFEVOLVE_MODE=off|suggest|auto; observabilidade em /config selfevolve. |
| Grafo de conhecimento (Obsidian no core) | Facts, tópicos, projetos, skills e tags viram um grafo derivado on-demand: @memory neighbors <assunto> / map puxam backlinks e notas conectadas, um index card minúsculo entra por turno, e /graph [assunto] renderiza o grafo em imagem (go-graphviz embarcado). CHATCLI_GRAPH_INDEX=on|off. |
| Plugins | Auto-detecção, schema validation, assinatura Ed25519, plugins remotos. |
| Skills | Auto-autoria (@skill), registry multi-source (skills.sh, ClawHub, ChatCLI.dev), busca fuzzy, auditorias de segurança, preferências e instalação atômica. |
| Personas customizáveis | Markdown com frontmatter YAML (model, tools, skills). |
| Hooks | PreToolUse, PostToolUse, SessionStart/End, UserPromptSubmit, Compact pre/post — shell ou webhook. |
| WebFetch / WebSearch | DuckDuckGo + fetch com extração de texto. |
| Cost tracking | Custo por sessão com pricing tables por provider. |
| Git Worktrees | Trabalho isolado em branches paralelas. |
| K8s Watcher | Multi-target: metrics, logs, events, Prometheus scraping. |
| i18n | Português e Inglês com detecção automática. |
| Session management | Save, load, fork, export. |
Arquitetura
chatcli/
cli/
agent/
quality/ Pipeline 7 patterns (state machine + COW snapshots)
convergence/ Semantic convergence (char → jaccard → embedding)
lessonq/ Reflexion durable queue (WAL + worker pool + DLQ)
workers/ 14 agentes + dispatcher + FileLockManager
hooks/ Lifecycle events (shell/webhook)
mcp/ MCP client (stdio + SSE)
plugins/ Plugin manager + signature verification
scheduler/ Chronos — scheduler durável (WAL + cron + DAG + daemon)
condition/ 10 evaluators (shell, http, k8s, docker, tcp, llm, ...)
action/ 8 executors (slash, shell, agent, webhook, ...)
builtins/ Registro agregado de evaluators + executors
workspace/memory/ Facts, topics, patterns, vector index (HyDE)
tui/ Bubble Tea adapters
llm/
openai/ openai_responses/ openai_assistant/
claudeai/ bedrock/
googleai/ xai/ zai/ minimax/
copilot/ github_models/ stackspotai/ openrouter/ ollama/
fallback/ catalog/ registry/ token/ toolshim/ embedding/
metrics/ Prometheus registry + /metrics + /healthz
server/ gRPC + TLS + JWT + MCP + Plugin discovery
operator/ Kubernetes Operator (17 CRDs, AIOps pipeline)
k8s/ Watcher (collectors, store, summarizer)
models/ ToolDefinition, ToolCall, LLMResponse, Message
auth/ OAuth PKCE, Device Flow, AES-256-GCM store
config/ ConfigManager com migração versionada
i18n/ embed.FS + golang.org/x/text (PT / EN)
Princípio de design: cada pacote define suas interfaces e se auto-registra no sistema. O
llm/registry permite adicionar um novo provider implementando uma única interface. O pipeline de qualidade é pluggable viaAddPre/AddPostcom swap atômico. O operator coordena CRDs independentes via controller pattern.
CI/CD & Releases
- CI (
.github/workflows/1-ci.yml): golangci-lint, gofmt,go vet,go test -race -coverprofile, coverage HTML como artifact. - Security scan (
security-scan.yml): Trivy image scanning contínuo. - Release automation (
release-please+publish-release.yml): multi-platform builds, assinaturas cosign, SBOM CycloneDX, publish em ArtifactHub. - Makefile:
make build,make test,make lint,make installcom injeção deVersion,CommitHash,BuildDatevia ldflags.
Contribuição
- Fork o repositório
- Crie uma branch a partir da
main:git checkout -b feature/minha-feature - Commit e push
- Abra um Pull Request
Veja docs/ para guias detalhados de arquitetura, quality pipeline e operator.
Licença
Documentação • Releases • Helm Charts • Go Reference • Issues
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi