Skip to main content

AI-powered coding assistant CLI — powered by Kimi K2.6 via the BantuByte platform (more models coming)

Project description

BantuByte CLI

Assistente de programação com IA, no teu terminal. Conversa em streaming, edição de ficheiros, execução de comandos, sub-agentes e integração Model Context Protocol (MCP) — tudo a partir da linha de comandos.

Atualmente com o modelo Kimi K2.6; a camada de modelos é extensível e novos modelos vão ficar selecionáveis em versões futuras.

BantuByte é um serviço. O acesso requer uma conta e um plano ativo em bantubyte.dev.


Início rápido

1. Instalar

pip install bantubyte

Requer Python 3.10 – 3.13. Funciona em macOS, Linux e Windows.

2. Autenticar

bantubyte login

Abre o browser, corre o fluxo OAuth2 (PKCE) com a tua conta Google e guarda os tokens em ~/.bantubyte/auth.json (permissão 0600 em sistemas POSIX). O CLI renova os tokens automaticamente antes de expirarem.

3. Começar a conversar

bantubyte                       # REPL interativo
bantubyte --resume              # escolher uma sessão anterior de uma lista
bantubyte --resume <session-id> # retomar uma sessão específica

O REPL aceita:

  • Texto simples — enviado ao modelo como mensagem.
  • /<comando> — um comando (ver abaixo).
  • Entrada multilinha com Esc-Enter (um único Enter envia quando ainda não há nova linha).

Comandos

Comando Descrição
/help Lista todos os comandos.
/clear Inicia uma sessão nova no mesmo REPL.
/exit, /quit Sai do REPL de forma limpa.
/login, /logout Re-autentica ou revoga as credenciais.
/config Ver e editar ~/.bantubyte/config.json.
/model Trocar de modelo.
/theme Alternar entre tema escuro e claro.
/permissions Editar as listas allow/deny de ferramentas do projeto.
/session Ver, retomar ou apagar sessões anteriores.
/usage Uso de tokens + quota mensal do teu plano.
/cost Custo estimado da sessão atual.
/compact Forçar uma compactação de contexto.
/mcp ... Gerir servidores MCP — ver secção seguinte.

MCP — Model Context Protocol

O MCP permite ligar servidores de ferramentas externos ao CLI sem alterar o BantuByte. A comunidade publica servidores para sistemas de ficheiros, git, postgres, sqlite, GitHub, Puppeteer, Slack e muitos mais — ver o catálogo oficial.

Configurar servidores

Cria ~/.bantubyte/mcp.json com um mapa mcpServers. Cada entrada declara como arrancar um servidor e quanto tempo esperar por ele.

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "${HOME}/Projects"
      ],
      "timeout_ms": 15000,
      "tool_timeout_ms": 60000
    },

    "time": {
      "command": "uvx",
      "args": ["mcp-server-time"]
    }
  }
}

Referência de campos:

Campo Default Notas
command obrigatório Executável (resolvido via PATH, incl. .cmd/.bat no Windows) ou caminho absoluto.
args [] Argumentos passados ao command.
env {} Variáveis de ambiente adicionais.
enabled true Define false para ignorar o servidor no arranque.
timeout_ms 10000 Timeout do handshake + tools/list (máx 120 s).
tool_timeout_ms 1800000 (30 min) Timeout por chamada (tools/call). Intervalo: 1 s – 4 h.

A expansão ${VAR} é suportada em command, args e env com a sintaxe ${VAR} (erro se não definida) e ${VAR:-default}.

Overrides por projeto

Coloca um .bantubyte/mcp.json na pasta de um projeto. O CLI procura subindo a partir da pasta atual e funde-o sobre a config global. As entradas do projeto sobrepõem-se às globais com o mesmo nome.

Gerir servidores a partir do REPL

/mcp                          # alias de /mcp list
/mcp list                     # mostra cada servidor com estado, versão, nº de ferramentas
/mcp info <name>              # detalhe completo
/mcp logs <name>              # último stderr desse servidor
/mcp reload                   # relê o mcp.json e reinicia tudo
/mcp enable <name>            # ativa e recarrega
/mcp disable <name>           # desativa e recarrega
/mcp prompts [server]         # lista templates de prompt
/mcp prompt <server> <name> [key=value ...]

O subsistema MCP é resiliente: auto-reconexão com backoff em falhas transitórias, encerramento gracioso dos subprocessos, propagação de cancelamento (Ctrl-C), e sanitização Unicode das descrições de ferramentas para defesa contra ataques de injeção.


Configuração

As definições vivem em camadas, com precedência env > projeto > utilizador > defaults:

Camada Ficheiro Propósito
Defaults código Valores sensatos por omissão.
Utilizador ~/.bantubyte/config.json Preferências (tema, modelo, etc.).
Projeto <cwd>/.bantubyte/config.json Listas allow/deny de ferramentas do projeto.
Env variáveis BANTUBYTE_* Override no arranque.

Variáveis de ambiente úteis:

  • BANTUBYTE_MODEL — sobrepõe o modelo default.
  • BANTUBYTE_VERBOSE=1 — ativa logging detalhado para ficheiro.
  • BANTUBYTE_TOOL_PERMISSION_MODEdefault, auto-allow ou always-ask.
  • BANTUBYTE_CONFIG_DIR — sobrepõe ~/.bantubyte/.

Sessões

Cada conversa é uma sessão, persistida como JSONL em ~/.bantubyte/sessions/<id>.jsonl. Retoma com bantubyte --resume para escolher de uma lista, ou bantubyte --resume <id> para ir direto.

A corrupção de uma sessão (uma linha má, fim truncado) não impede o carregamento — o CLI regista cada entrada descartada e continua com as mensagens recuperadas. O /session e o seletor de resume marcam sessões danificadas com .


Armazenamento

~/.bantubyte/
├── config.json            # definições do utilizador
├── auth.json              # tokens OAuth (0600 em POSIX)
├── mcp.json               # declarações de servidores MCP
├── sessions/              # transcrições JSONL, uma por sessão
├── logs/                  # logs rotativos
└── history                # histórico de input do REPL

Cada diretório é criado com permissões restritivas (0700 em POSIX).


Resolução de problemas

Not authenticated. Run 'bantubyte login' first. — o token expirou ou nunca foi criado. Corre bantubyte login. Se o browser não abrir, copia o URL impresso no terminal.

Servidor MCP preso em "reconnecting" — corre /mcp logs <name> para ver o stderr. Causas comuns: argumento em falta, caminho de comando errado no Windows, ou download de dependência do servidor a exceder o timeout (sobe o timeout_ms).

Onde estão os logs?~/.bantubyte/logs/bantubyte.log, rotado diariamente. Define BANTUBYTE_VERBOSE=1 para granularidade DEBUG.


Compatibilidade

  • Python: 3.10 – 3.13.
  • SO: macOS, Linux, Windows.
  • Transportes MCP (v1): stdio. HTTP / SSE / WebSocket planeados para v2.

Licença

Proprietário — Todos os direitos reservados. © BantuByte / Pilartes Lander.

Este pacote é distribuído para uso com o serviço BantuByte. Não é software livre nem open-source. A utilização está sujeita aos termos em bantubyte.dev.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bantubyte-1.2.8.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bantubyte-1.2.8-py3-none-any.whl (845.2 kB view details)

Uploaded Python 3

File details

Details for the file bantubyte-1.2.8.tar.gz.

File metadata

  • Download URL: bantubyte-1.2.8.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for bantubyte-1.2.8.tar.gz
Algorithm Hash digest
SHA256 460957f16b6ffa47acbfaab2604ad6aaaf56a44dc20168d3510743f2d17e1712
MD5 deb7eb71694a03f620ca878c5caec341
BLAKE2b-256 e152bf13e85a9aa1ffe58720ddb577c91c8b69071dc345f620a24f55832286fc

See more details on using hashes here.

File details

Details for the file bantubyte-1.2.8-py3-none-any.whl.

File metadata

  • Download URL: bantubyte-1.2.8-py3-none-any.whl
  • Upload date:
  • Size: 845.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for bantubyte-1.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 2f49b90e1bc0cc899bef75507082b6722b0d2b7757264170c0eb4361df36a200
MD5 8d8f5f64a68cb5c6018dc96519ed15b3
BLAKE2b-256 eb6fac18835b2b38b07119c82d5986125726676b9c07a417813d22ec6c8a21c2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page