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.1.tar.gz (39.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.1-py3-none-any.whl (44.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pydeepseek_tui-0.1.1.tar.gz
  • Upload date:
  • Size: 39.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.1.tar.gz
Algorithm Hash digest
SHA256 707d7f158c78e65a47712261f18848319c0c94aa9035865b4e3293957fa6335b
MD5 3cc998f8fb50d5996ad9aacf1792602e
BLAKE2b-256 05be528cdd87f9b4877f6eed098e3a36ffe6d0ef77830e1b2d7055cba5f27811

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pydeepseek_tui-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 44.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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e953c0b80873b27ffca0679964ea782aa92c686f93751a4c6e9963c6b6d7f043
MD5 827d14805cd0eff96b628299e1eb28d5
BLAKE2b-256 4d3cc6e85798067010dbebc2c0c6494652b0553608e32467f153d5bf0ed4c18d

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