Pular para o conteúdo principal
Nesta receita, você vai configurar um servidor ChatCLI centralizado que atende toda a equipe de desenvolvimento. Cada membro pode conectar do seu terminal e usar a IA sem precisar gerenciar API keys individuais.

Cenário

Equipe Pequena

5-10 desenvolvedores compartilhando recursos

API Keys Corporativas

Servidor central com chaves gerenciadas

Acesso via Terminal

Cada dev conecta do seu terminal local

Autenticação Flexível

Token compartilhado ou credenciais próprias

1

Configurar o Servidor

Crie um arquivo .env no servidor:
# .env
CHATCLI_SERVER_TOKEN=equipe-token-2024
LLM_PROVIDER=CLAUDEAI
ANTHROPIC_API_KEY=sk-ant-xxx-chave-corporativa
ANTHROPIC_MODEL=claude-sonnet-4-5
LOG_LEVEL=info
Inicie com Docker Compose:
docker compose up -d
2

Distribuir Acesso

Compartilhe com a equipe:
# Adicione ao .bashrc ou .zshrc de cada dev
export CHATCLI_REMOTE_ADDR=servidor-ia:50051
export CHATCLI_REMOTE_TOKEN=equipe-token-2024

# Alias para acesso rapido
alias cia='chatcli connect'
3

Cada Dev Conecta

# Modo interativo
chatcli connect

# One-shot rapido
chatcli connect -p "Explique o padrão Repository em Go"
4

Permitir Credenciais Próprias (Opcional)

Devs que preferem usar suas próprias credenciais podem faze-lo:
# Dev que tem assinatura Claude Pro
chatcli connect --use-local-auth

# Dev que prefere OpenAI
chatcli connect --provider OPENAI --llm-key sk-minha-chave-pessoal

# Dev que usa GitHub Copilot
chatcli connect --use-local-auth --provider COPILOT
O servidor aceita ambos os modos simultaneamente. Devs podem usar as credenciais do servidor (padrão) ou fornecer suas próprias.
5

Adicionar TLS (Produção)

Para ambientes de produção, adicione TLS:
# Gerar certificados (ex: com Let's Encrypt ou certbot)
# Ou usar mkcert para desenvolvimento

# Iniciar com TLS
chatcli server \
  --tls-cert /etc/chatcli/cert.pem \
  --tls-key /etc/chatcli/key.pem \
  --token equipe-token-2024
Devs conectam com:
chatcli connect servidor:50051 --tls --token equipe-token-2024
6

Múltiplos Provedores

Configure o servidor com múltiplas API keys. Devs podem escolher o provedor:
# Servidor com OpenAI, Claude, Google AI e Copilot
export OPENAI_API_KEY=sk-xxx
export ANTHROPIC_API_KEY=sk-ant-xxx
export GOOGLEAI_API_KEY=AIzaSy-xxx
export GITHUB_COPILOT_TOKEN=ghu_xxx  # ou use /auth login github-copilot
export LLM_PROVIDER=CLAUDEAI  # padrão
chatcli server
# Dev escolhe o provedor
chatcli connect --provider OPENAI
chatcli connect --provider GOOGLEAI
chatcli connect --provider COPILOT --use-local-auth
chatcli connect  # usa o padrão (CLAUDEAI)
7

Compartilhar Agents, Skills e Plugins (Opcional)

Provisione agents, skills e plugins no servidor para que toda a equipe tenha acesso aos mesmos recursos:
helm install chatcli deploy/helm/chatcli \
  --namespace tools --create-namespace \
  --set llm.provider=CLAUDEAI \
  --set secrets.anthropicApiKey=sk-ant-xxx \
  --set server.token=equipe-token-2024 \
  --set agents.enabled=true \
  --set-file agents.definitions.devops-senior\\.md=agents/devops-senior.md \
  --set skills.enabled=true \
  --set-file skills.definitions.k8s-best-practices\\.md=skills/k8s-best-practices.md \
  --set plugins.enabled=true \
  --set plugins.initImage=myregistry/chatcli-plugins:latest
Quando os devs conectam, eles veem automaticamente os recursos do servidor:
Connected to ChatCLI server (version: 1.3.0, provider: CLAUDEAI, model: claude-sonnet-4-5)
 Server has 2 plugins, 2 agents, 3 skills available

Dicas de Operação

# Docker
docker logs chatcli-server -f

# Kubernetes
kubectl logs -f deployment/chatcli -n tools
# O Dockerfile inclui health check integrado
docker inspect chatcli-server --format='{{.State.Health.Status}}'
Configure LOG_LEVEL=info no servidor para registrar cada request com provider e modelo utilizado.
# Docker: volumes persistentes
docker cp chatcli-server:/home/chatcli/.chatcli/sessions ./backup/

# Kubernetes: PVC já configurado no Helm chart
Quando conectado a um servidor, os comandos /session interagem com ambos local e remoto:
  • /session save pergunta onde salvar: local, remoto ou ambos
  • /session list exibe sessões de ambos em seções separadas
  • /session load busca em ambos; se encontrada nos dois, pergunta de qual carregar
  • /session delete verifica ambos; se encontrada nos dois, pergunta de qual remover
Isso permite que devs salvem sessões no servidor para compartilhar com a equipe, ou localmente para uso offline.

Resumo

ComponenteConfiguração
Servidorchatcli server --token X
Clientechatcli connect --token X
Env VarsCHATCLI_REMOTE_ADDR, CHATCLI_REMOTE_TOKEN
TLS--tls-cert, --tls-key (servidor) / --tls (cliente)
CredenciaisServidor (padrão) ou cliente (--llm-key / --use-local-auth)
Agents/Skillsagents.enabled=true + ConfigMap (Helm) ou agents.configMapRef (Operator)
Pluginsplugins.enabled=true + init container ou PVC (Helm) ou plugins.image (Operator)