Skip to main content

Interface TUI rica no terminal para interagir com IA via DeepSeek/OpenAI

Project description

PyDeepSeek TUI

Interface de terminal (TUI) moderna, assíncrona e multi-provedor para interagir com IAs como DeepSeek, OpenAI e Anthropic. Construída com Python e Textual.

Funcionalidades

  • Multi-provedor — suporte a DeepSeek, OpenAI e Anthropic com seleção por linha de comando ou configuração
  • Function Calling — agente autónomo capaz de ler/escrever ficheiros, executar comandos shell, pesquisar na web, extrair texto de URLs, listar diretórios, pesquisar em ficheiros e operações git
  • Modos de operação — Plan (leitura), Agent (confirmação de ações destrutivas) e YOLO (execução automática)
  • Interface rica no terminal — construída com Textual 8.x, com suporte a cores, scroll e atalhos de teclado
  • Rastreio de sessão — cada execução gera um registo persistente com contagem de tokens, custos em USD e logs de interação
  • Encriptação da chave API — chave protegida com PBKDF2 + Fernet (via cryptography)
  • Internacionalização — suporte a Português (Brasil) e Inglês
  • Segurança — sandbox de ficheiros que restringe operações ao diretório de trabalho

Instalação

Requer Python 3.13+.

pip install pydeepseek-tui

Na primeira execução, o sistema pede a chave da API e guarda-a encriptada em ~/.deepseek-tui/.env.

Instalação para desenvolvimento

git clone https://github.com/natanfiuza/pydeepseek-tui.git
cd pydeepseek-tui
pipenv install --dev

Uso

# Iniciar com o provedor padrão (deepseek)
pydeepseek start

# Escolher provedor
pydeepseek start --provider openai
pydeepseek start --provider anthropic

# Escolher modelo e modo
pydeepseek start --provider deepseek --model deepseek-v4 --mode yolo

# Escolher idioma
pydeepseek start --lang en_US

# Assistente de configuração interativo
pydeepseek config

# Listar sessões salvas
pydeepseek sessions

Atalhos de teclado

Tecla Ação
q Sair (guarda a sessão)
c Limpar o chat
m Alternar modo (Plan → Agent → YOLO)

Modos de operação

Modo Comportamento
Plan Apenas ferramentas de leitura. Bloqueia shell, escrita e git.
Agent Pergunta antes de executar ferramentas destrutivas via modal interativo.
YOLO Executa todas as ferramentas sem confirmação.

Dependências

O projeto utiliza as seguintes bibliotecas:

Runtime

Biblioteca Versão Uso
textual 8.x Framework TUI
openai 2.x Cliente para DeepSeek e OpenAI
anthropic 0.x Cliente para Anthropic
httpx 0.x HTTP client para web tools
cryptography 48.x Encriptação da chave API
click 8.x CLI
python-dotenv 1.x Leitura do ficheiro .env
beautifulsoup4 4.x Extração de texto de URLs
duckduckgo-search 8.x Pesquisa web

Desenvolvimento

Ferramenta Uso
pipenv Gestão de ambiente virtual e dependências
pytest Testes automatizados
pytest-asyncio Suporte a testes assíncronos
pytest-cov Cobertura de testes
ruff Linting e formatação
black Formatação de código
mypy Verificação de tipos

Desenvolvimento

# Instalar dependências de desenvolvimento
make dev

# Executar testes
make test

# Linting
make lint

# Formatação automática
make format

# Construir distribuição
make build

Estrutura do projeto

pydeepseek-tui/
├── src/pydeepseek_tui/
│   ├── agent/          # Loop do agente, modos, sessões, activity logger
│   ├── cli/            # Comandos CLI (click)
│   ├── config/         # Settings, encriptação, debug logger
│   ├── i18n/           # Traduções (pt_BR, en_US)
│   ├── providers/      # DeepSeek, OpenAI, Anthropic
│   ├── tools/          # Ferramentas do agente (8 tools)
│   └── tui/            # Interface Textual (app, widgets, screens)
├── tests/              # Testes automatizados
├── Makefile            # Comandos de desenvolvimento
└── pyproject.toml      # Configuração do projeto

Contribuição

Contribuições são bem-vindas. Para contribuir:

  1. Faz um fork do repositório
  2. Cria um branch para a tua feature (git checkout -b feature/nova-funcionalidade)
  3. Instala o ambiente de desenvolvimento (pipenv install --dev)
  4. Faz as alterações e garante que os testes passam (make test)
  5. Verifica a formatação (make lint)
  6. Submete um pull request

Antes de submeter, confirma que:

  • Testes novos cobrem a funcionalidade adicionada
  • make lint não reporta erros
  • make test passa com sucesso
  • O código segue o estilo do projeto (black + ruff)

Agradecimentos

Este projeto é mantido por Nataniel Fiuza — obrigado por usar o PyDeepSeek TUI.

Se o projeto te foi útil, deixa uma estrela no repositório.

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

pydeepseek_tui-0.1.2.tar.gz (40.2 kB view details)

Uploaded Source

Built Distribution

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

pydeepseek_tui-0.1.2-py3-none-any.whl (45.2 kB view details)

Uploaded Python 3

File details

Details for the file pydeepseek_tui-0.1.2.tar.gz.

File metadata

  • Download URL: pydeepseek_tui-0.1.2.tar.gz
  • Upload date:
  • Size: 40.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for pydeepseek_tui-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d5b5b812c86a889092d93d0c4770e0330a30c089472de0cc652d4eeb20bc3b46
MD5 1ecfcd40a6bed7bee2ac0f33458cdc98
BLAKE2b-256 1ea876dc41ce7bcabd0a015c256ee28557dd24334b6b961a6e1bc22ced6b3c77

See more details on using hashes here.

File details

Details for the file pydeepseek_tui-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pydeepseek_tui-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 45.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for pydeepseek_tui-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 750004a05ad881a6f8a0d780d2a0edae4c24395b99dc26c4b0193e82f410d098
MD5 723324b6cc682c2e0cca3c0d69524b53
BLAKE2b-256 2acb2cbf24b0bf2c208c553550e799a9b6e77f12022d5ff8c293f2655e992dd4

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