🚀 Primeiros Passos#

Este guia cobre tudo que você precisa para instalar e rodar o Codis pela primeira vez.


Requisitos#

Componente Versão mínima Notas
Python 3.12+ Latest recomendado
Tkinter Incluso no Python sudo apt install python3-tk no Ubuntu/Debian
Git qualquer Opcional - necessário apenas para o painel Git
Node.js qualquer Opcional - necessário para linting JS/TS

O Codis não possui dependências Python obrigatórias. Funciona com a stdlib pura. Todos os pacotes em requirements.txt são opcionais e ativam funcionalidades extras.

Dependências opcionais#

Ferramenta Instalação Funcionalidade
send2trash pip install send2trash Lixeira nativa do SO (sem ela: lixeira do projeto em .codis_trash/)
Pillow pip install Pillow Nebulosas/auroras no K-UI (recomendado)
pylsp pip install python-lsp-server LSP para Python
pyright npm i -g pyright LSP TypeScript/Python (alternativa)
eslint npm i -g eslint Linting JavaScript/TypeScript
prettier npm i -g prettier Formatação JS/TS/CSS/HTML/JSON
pylint pip install pylint Análise aprofundada de Python
mypy pip install mypy Checagem de tipos Python
flake8 pip install flake8 Estilo + erros Python
typescript-language-server npm i -g typescript-language-server LSP JS/TS
rust-analyzer via rustup LSP Rust
gopls go install golang.org/x/tools/gopls@latest LSP Go
psycopg2-binary pip install psycopg2-binary SQL Studio - PostgreSQL
pymysql pip install pymysql SQL Studio - MySQL / MariaDB
duckdb pip install duckdb SQL Studio - DuckDB
psutil pip install psutil Monitor de CPU/RAM no gerenciador de processos
websockets pip install websockets Colaboração em tempo real, painéis de chat
Pygments pip install Pygments Exportação de código com highlight em HTML
charset-normalizer pip install charset-normalizer Detecção automática de encoding (senão usa chardet como fallback)
chardet pip install chardet Fallback de detecção de encoding (sem ele, UTF-8 é assumido para tudo)
py7zr pip install py7zr Suporte a arquivos .7z no painel de arquivos
rarfile pip install rarfile Suporte a arquivos .rar no painel de arquivos
pywinpty pip install pywinpty Terminal PTY completo no Windows (senão usa subprocess simples)
tomli pip install tomli Parser TOML em Python < 3.11 (desnecessário em 3.11+)

Nenhuma dessas ferramentas é obrigatória. O Codis funciona sem elas, mas recursos específicos ficam indisponíveis.

Lixeira: Por padrão o Codis move os arquivos excluídos para .codis_trash/ dentro do projeto. Um ícone 🗑 na barra lateral permite restaurar ou excluir permanentemente os arquivos deletados.


Matriz de Compatibilidade#

Python#

Versão Suporte Observação
3.12.x ✅ Oficial Versão de desenvolvimento e CI
3.13.x ✅ Testado CI executa em 3.13 a cada push
3.11.x ❌ Não suportado f-strings com aspas aninhadas (PEP 701) requerem 3.12+
3.10.x e anteriores ❌ Não suportado -
PyPy ⚠️ Não testado Tkinter no PyPy tem comportamentos diferentes

Windows#

Versão Arquitetura Suporte Binário oficial
Windows 11 x64 ✅ ✅
Windows 11 ARM64 ✅ ✅
Windows 10 (21H2+) x64 ✅ ✅
Windows 10 x86 (32-bit) ✅ ✅
Windows 10 < 21H2 x64 ⚠️ ✅ (não testado sistematicamente)
Windows 8.1 e anteriores - ❌ ❌

Requisitos: Python 3.12+ com Tkinter (incluso no instalador oficial) e Visual C++ Redistributable 2015–2022 (para algumas dependências opcionais).

Linux#

Distribuição Versão Arquitetura Suporte
Ubuntu 22.04 LTS (Jammy) x64 ✅ Testado no CI
Ubuntu 24.04 LTS (Noble) x64, ARM64 ✅ Testado no CI
Debian 12 (Bookworm) x64 ✅
Fedora 39+ x64 ✅
Arch Linux Rolling x64 ✅
openSUSE Leap 15.5+ x64 ⚠️ Não testado sistematicamente
Alpine Linux - - ❌ musl libc incompatível com binário PyInstaller
# Ubuntu / Debian
sudo apt install python3-tk python3.12 libx11-6 libxft2 libfontconfig1

# Fedora
sudo dnf install python3-tkinter python3.12 libX11 libXft fontconfig

Display: X11 tem suporte completo; Wayland funciona via XWayland com GDK_BACKEND=x11; Wayland puro (sem XWayland) não funciona, pois o Tkinter requer X11.

macOS#

Versão Arquitetura Suporte Binário oficial
macOS 14 Sonoma ARM64 (Apple Silicon) ✅ ✅
macOS 13 Ventura ARM64 (Apple Silicon) ✅ ✅
macOS 12 Monterey ARM64 ⚠️ ✅ (não testado sistematicamente)
macOS (qualquer) Intel x64 ⚠️ Sem binário Execute via Python local
macOS < 12 - ❌ ❌

macOS Intel: os runners macos-13 (Intel) foram descontinuados pelo GitHub Actions em janeiro de 2025, portanto não há binário oficial para Intel. Usuários Intel podem compilar localmente com pip install pyinstaller && python package_codis.py pyinstaller.

Requisitos: brew install python@3.12 tcl-tk.

Funcionalidades por plataforma#

Funcionalidade Windows Linux macOS
Editor de código completo ✅ ✅ ✅
Terminal integrado (PTY) ✅ (com pywinpty) ✅ ✅
Terminal integrado (subprocess) ✅ (fallback) ✅ (fallback) ✅ (fallback)
Git panel completo ✅ ✅ ✅
LSP (autocomplete, hover, etc.) ✅ ✅ ✅
DAP (debug adapter) ✅ ✅ ✅
File watcher (mudanças externas) ✅ ✅ ✅
Lixeira nativa (send2trash) ✅ ✅ ✅
DPI awareness automático ✅ ⚠️ (parcial) ⚠️ (parcial)
Notificações do sistema ⚠️ (via messagebox) ⚠️ (via messagebox) ⚠️ (via messagebox)
Suporte a .rar / .7z ✅ (com deps) ✅ (com deps) ✅ (com deps)
Player de vídeo (mpv/vlc) ✅ (manual) ✅ (manual) ✅ (manual)

Legenda: ✅ Suportado/testado · ⚠️ Funcional com limitações · ❌ Não suportado


Instalação#

# Clonar o repositório
git clone https://github.com/KillovSky/Codis.git
cd Codis

# Executar direto (sem nenhuma dependência extra)
python run.py

# Opcional: instalar pacotes que habilitam funcionalidades extras
pip install -r requirements.txt        # todos os opcionais
pip install send2trash                 # só a lixeira nativa
pip install Pillow markdown            # só K-UI + preview Markdown

Windows: pythonw run.py (sem janela de console)
Linux/macOS: python3 run.py
Alternativo: python -m src


Primeiro Uso - Wizard de Configuração#

Na primeira execução, o Wizard de Primeiro Uso é exibido automaticamente. Ele permite:

  • Escolher o tema inicial (Dark, Light, Monokai, Catppuccin etc.)
  • Definir o idioma da interface (14 idiomas disponíveis)
  • Configurar o shell padrão do terminal integrado
  • Ajustar tamanho de fonte e preferências básicas do editor

Após o wizard, as configurações são salvas em ~/.codis/config.json. Para reexibir o wizard, delete config.json e reinicie o Codis.


Abrindo via Linha de Comando#

python run.py caminho/para/arquivo.py           # um arquivo
python run.py caminho/para/minha-pasta/         # workspace
python run.py arquivo1.py arquivo2.js           # múltiplos arquivos

Tela de Boas-Vindas#

Após o wizard (ou nas execuções seguintes), a Tela de Boas-Vindas exibe:

  • Ações rápidas: Novo Arquivo, Abrir Arquivo, Abrir Pasta
  • Lista de arquivos e pastas recentes (até 20 entradas armazenadas em config.json, mas a Welcome Screen exibe apenas as 12 mais recentes)
  • Opção de clonar repositório Git diretamente

Com o K-UI ativo, a tela de boas-vindas transforma-se em um cosmos completo com sistema solar de arquivos, cada arquivo recente orbitando como planeta. Ver K-UI.

A tela pode ser reexibida a qualquer momento via Ajuda → Tela de Boas-Vindas.


Estrutura de Diretórios#

Ao iniciar, o Codis cria automaticamente em ~/.codis/:

~/.codis/
├── config.json          ← Configurações do usuário
├── session.json         ← Sessão (arquivos abertos, workspace)
├── keybindings.json     ← Atalhos personalizados
├── plugins/             ← Plugins instalados
├── snippets/            ← Snippets personalizados por linguagem
├── themes/              ← Criado na inicialização, reservado para uso futuro (não escaneado automaticamente; temas customizados são registrados via plugin com `api.register_theme()`)
├── skills/              ← Skills de IA personalizadas (.md)
├── plugin_data/         ← Storage persistente por plugin
├── trash/               ← Pseudo-lixeira (usada quando send2trash ausente)
├── notes_*.txt          ← Notas de sessão por workspace
└── trusted_plugins.json ← Lista de plugins confiáveis

Restauração de Sessão#

A restauração automática está desativada por padrão. Para ativar:

  1. Abra Arquivo → Configurações (Ctrl+,)
  2. Ative a opção session_restore

Com ela ativa, o Codis reabrirá automaticamente o workspace e os arquivos da sessão anterior ao reiniciar.


Executando os Testes#

pip install pytest pytest-cov
pytest tests/ -v
pytest tests/ --cov=src --cov-report=term-missing

A suíte roda headless (sem display gráfico), adequada para CI/CD. Ver tests/README.md para documentação completa.


Próximos Passos#

  • Interface - conheça o layout completo da UI
  • Editor - recursos do editor de código
  • Atalhos - referência rápida de atalhos
  • K-UI - ative o modo visual holográfico
  • Temas - personalize a aparência
  • Configurações - todas as opções disponíveis

Modos Standalone#

O Codis permite abrir qualquer módulo individualmente sem iniciar o editor completo. São 29 modos disponíveis (mais 4 aliases).

# Subcomandos diretos (preferido)
python run.py sql              # SQL Studio
python run.py tasks            # Gerenciador de Tarefas (Kanban)
python run.py diff A.py B.py   # Diff Viewer
python run.py paint img.png    # Editor de Imagens
python run.py rest             # REST Client
python run.py regex            # Regex Playground
python run.py terminal .       # Terminal integrado
python run.py git .            # Painel Git
python run.py pip              # Gerenciador de Pacotes Pip
python run.py scratch          # Bloco de Notas (persistido)
python run.py flowchart src/   # Fluxograma AST Python
python run.py render doc.md    # Preview HTML/Markdown/SVG
python run.py stats src/       # Estatísticas de Código
python run.py pomodoro         # Timer Pomodoro
python run.py todo             # Lista de Tarefas Rápidas
python run.py output           # Painel de Output
python run.py processes        # Gerenciador de Processos
python run.py calculator       # Calculadora Científica (alias: calc)
python run.py clock            # Relógio / Alarmes / Cronômetro
python run.py calendar         # Calendário com Lembretes
python run.py env              # Variáveis de Ambiente
python run.py formatter        # Formatador JSON/YAML/TOML/XML
python run.py snippets         # Gerenciador de Snippets
python run.py color-picker     # Seletor de Cores
python run.py player           # Zen Media Player
python run.py accessibility    # Painel de Acessibilidade (alias: a11y)
python run.py plugins          # Gerenciador de Plugins
python run.py ssh              # Conexão SSH Remota
python run.py archive arq.zip  # Visualizador de ZIP/RAR/7z

# Também via python -m src
python -m src sql
python -m src paint

# Flags legadas (ainda funcionam)
python run.py --sql
python run.py --paint

Cada modo carrega apenas as dependências necessárias (tema, i18n, configuração) e abre uma janela autônoma. Fechar a janela encerra o processo.

→ Documentação completa dos modos standalone