Editor de código moderno, 100% Python + Tkinter - sem Electron, sem Node, extremamente customizável.
🌐 Site Oficial · 🚀 Começar agora · 📖 Wiki completa · 🐛 Reportar bug · 💬 Discussões
git clone https://github.com/KillovSky/Codis.git
cd Codis
pip install -r requirements.txt # opcional, mas recomendado
python run.pyWindows →
pythonw run.py(sem janela de console) Linux/macOS →python3 run.pyRequisito: Python 3.12+ com Tkinter (sudo apt install python3-tkno Ubuntu/Debian)
Problemas para rodar? Diagnostique seu ambiente automaticamente:
python doctor.py📦 Dependências opcionais e guia de builds → 🌐 Site oficial com documentação visual →
O Codis é um editor de código desktop completo escrito do zero em Python puro com Tkinter. A proposta é provar que é possível construir uma ferramenta de desenvolvimento moderna, fluida e visualmente expressiva sem depender de Electron ou Node.js - apenas Python e criatividade.
Um editor com UI exclusiva, sistema de plugins com sandbox, assistente de IA multi-provedor, SQL Studio integrado, Vim Mode imersivo, integração LSP nativa, documentação nativa para 27 linguagens (KDocs) e highlight de sintaxe para 25 linguagens (48 reconhecidas por extensão) - tudo em Tkinter.
| Área | Destaques |
|---|---|
| ✏️ Editor | 25 linguagens com highlight (48 reconhecidas), autocomplete, snippets VSCode-style, Vim Mode, minimap, multi-cursor, smart selection, code folding |
| 🎨 Interface | 21 temas built-in, K-UI holográfico com nebulosas e animações, 40+ painéis, Activity Bar responsiva |
| 🗄 SQL Studio | SQLite · PostgreSQL · MySQL · DuckDB integrados, browser de esquema, editor com highlight e autocomplete, exportação CSV/JSON |
| 📚 Documentação | KDocs: Python Google/NumPy/Sphinx · Rust /// · Go godoc · Ruby YARD · Lua LDoc · Doxygen · C# XML · JSDoc - hover rico em qualquer linguagem |
| 🔍 Análise | ESLint · Flake8 · Mypy · Pylint · Stylelint - diagnósticos inline, no gutter e no painel de problemas |
| 🔗 LSP | Go to Definition, Find References, Rename Symbol, hover semântico via language servers externos |
| 🌿 Git | Stage, commit, push/pull, branches, diff visual, clone com progresso, blame inline, autenticação integrada |
| 🤖 IA | Anthropic (Claude) · OpenAI · OpenAI-compatível (LM Studio, Groq…) · Gemini · Ollama · GGUF local, 15 Skills especializadas e 40 ferramentas com Approval Gate, diff interativo de respostas |
| ✅ Tarefas | Kanban (Backlog / Em Andamento / Revisão / Concluído) + Agendador de comandos shell com log de execução |
| 🧩 Plugins | API com eventos com prioridade, painéis customizados, armazenamento persistente, sandbox estática |
| 🛠️ Ferramentas | Terminal integrado, REST Client, Regex Playground, Color Picker, Pomodoro, Flowchart, Scratchpad |
| 🌍 Localização | 14 idiomas de interface com PT-BR como padrão; 4.633 chaves de tradução em pt-BR/en e 4.490 nos demais idiomas (o restante cai para pt-BR) |
Por que fazer isso? Por que não? Nada do K-UI é ativado sem sua permissão e nada consome recursos até você explicitamente habilitar.
O K-UI é um modo visual completamente opcional e exclusivo do Codis, com animações em thread separada via PIL:
- Nebulosas e auroras - geradas proceduralmente, animadas em tempo real
- Sistema solar de arquivos - cada arquivo aberto orbita como planeta na tela de boas-vindas
- Partículas quânticas - reagem à velocidade de digitação
- Buracos negros - crescem proporcionalmente à quantidade de erros de lint
- Wormholes, cometas, satélites e eventos cósmicos raros
- Easter eggs - ativados por sequências de teclado no terminal
Ctrl+Alt+N → ativar / desativar K-UI
Ctrl+Space → Spotlight holográfico (paleta de comandos)
→ Documentação completa do K-UI
O SQL Studio é um ambiente completo de banco de dados integrado diretamente ao editor, acessível pela Activity Bar (🗄), pela aba inferior (🗄 SQL) ou pelo atalho Ctrl+Shift+Q.
Drivers: SQLite (built-in) · PostgreSQL (psycopg2) · MySQL (pymysql) · DuckDB (duckdb)
| Recurso | Descrição |
|---|---|
| Browser de Esquema | Árvore de tabelas → colunas (com tipo, 🔑 PK, ! NOT NULL) |
| Editor SQL | Syntax highlighting, numeração de linhas, autocomplete Ctrl+Space |
| Execução | F5 / Ctrl+Enter para query completa · botão Seleção para trecho selecionado |
| EXPLAIN | Plano de execução com um clique |
| Grid de Resultados | Ordenação por coluna, exportação CSV / JSON |
| Histórico | Até 500 queries com preview e filtro de favoritos |
| Conexões salvas | Múltiplos perfis em ~/.codis/sql_connections.json |
| Multi-thread seguro | Queries e schema loading em thread separada, lock para SQLite |
O Task Manager oferece duas visões integradas, acessíveis pelo ícone ✅ na Activity Bar (sem atalho de teclado dedicado):
Kanban - quadro visual com quatro colunas:
Backlog → Em Andamento → Revisão → Concluído
Lista - tabela filtrável com ordenação por prioridade, status e vencimento.
⏰ Agendador de Comandos - aba dedicada para executar comandos shell automaticamente:
| Modo | Exemplo |
|---|---|
| Uma vez | 2026-12-31 23:59 |
| A cada N minutos | a cada 30 min |
| A cada N horas | a cada 2 h |
| Todo dia | 08:00 |
| Toda semana | Sexta às 09:00 |
→ Documentação do Task Manager
O KDocs analisa comentários e docstrings diretamente no arquivo, sem LSP, e exibe um balloon rico ao passar o mouse sobre qualquer símbolo documentado:
| Linguagem | Estilo Detectado |
|---|---|
Python .py |
Google Style · NumPy Style · Sphinx/reST |
Rust .rs |
/// doc comments com seções Markdown |
Go .go |
godoc - comentários antes de declarações |
Ruby .rb |
YARD (@param, @return, @raise) |
Lua .lua |
LDoc (---, @tparam, @treturn) |
C / C++ .c/.cpp |
Doxygen (@param, \brief, @returns) |
C# .cs |
XML doc comments (<summary>, <param>) |
| JS / TS / Java / Kotlin / PHP / Dart | JSDoc / TSDoc completo |
| Qualquer linguagem | Anotações @kdocs: em comentários da linguagem |
→ Documentação completa do KDocs
Providers: Anthropic (Claude) · OpenAI · OpenAI-compatível · Gemini (Google) · Ollama · GGUF local
Skills: Fix · Explain · Refactor · Review · Document · Generate · Optimize · Security ···
Contexto: arquivo ativo · cursor · lint · imports · símbolos · TODOs · histórico
O Chat Panel é um cliente de mensageria multi-protocolo embutido diretamente no Codis. Use para comunicar com sua equipe sem trocar de janela enquanto programa.
Acesso: Configurações → Remoto & Colaboração → Chat ao Vivo
| Protocolo | Implementação |
|---|---|
| IRC / IRCS | RFC 1459, NickServ, TLS, SASL PLAIN, reconexão automática |
| XMPP / Jabber | XML stream RFC 6120, salas MUC, SASL PLAIN/ANON |
| Matrix | Client-Server API v3 via HTTP REST puro, login por senha ou token |
| Slack | RTM API v1 via WebSocket + REST (xoxb-*) |
| Discord | Gateway v10 via WebSocket (token Bot ou usuário) |
| Telegram | Bot API via long-polling HTTP (token do BotFather) |
| Mattermost | WebSocket API v4 com auto-detecção, self-hosted |
| MQTT | Pub/sub via socket raw; topics = canais; sem deps externas |
| WebSocket | WS/WSS genérico - protocolo JSON do Codis ou texto simples |
Matrix, Telegram e XMPP usam apenas a stdlib Python - sem dependências externas. Slack e Discord requerem pip install websockets.
Qualquer painel do Codis pode ser iniciado independentemente, sem carregar o editor completo. Útil para scripts, launchers ou uso rápido de uma ferramenta específica.
# Subcomandos diretos (recomendado)
python run.py sql # SQL Studio isolado
python run.py tasks # Gerenciador de Tarefas (Kanban)
python run.py diff A.py B.py # Diff Viewer com dois arquivos
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 (multi-aba, persistido)
python run.py flowchart src/ # Gerador de Fluxograma Python
python run.py render index.html # 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
python run.py --help # Lista todos os 29 modos (+ 4 aliases)→ Documentação dos modos standalone
| Ação | Atalho |
|---|---|
| Command Palette | Ctrl+Shift+P |
| Quick Open | Ctrl+P |
| Buscar | Ctrl+F |
| Buscar em arquivos | Ctrl+Shift+F |
| Terminal | Ctrl+` |
| SQL Studio | Ctrl+Shift+Q |
| Formatar documento | Shift+Alt+F |
| Modo Vim | Ctrl+Alt+V |
| K-UI toggle | Ctrl+Alt+N |
| Salvar | Ctrl+S |
→ Referência completa de atalhos
Toda a documentação detalhada vive em wiki/ (também publicada na GitHub Wiki e no site). Ponto de partida: wiki/Home.md.
| Para quem | Páginas |
|---|---|
| Quem vai usar | Primeiros Passos · Interface · Previews · Editor · Atalhos · Configurações · Temas |
| Recursos | IA · Git · Terminal · Linting & LSP · Debug · KDocs · K-UI · Chat · SQL Studio e Tarefas |
| Quem vai estender | Plugins · Arquitetura · Builds e CI/CD · Atualizador · Testes |
| Ajuda | FAQ · Solução de Problemas |
Projeto: CHANGELOG · ROADMAP · CONTRIBUTING · SECURITY · AUTHORS
A suíte roda totalmente headless (stub de Tkinter no conftest.py) e roda em CI/CD: 1.683 testes em 70 arquivos em tests/, mais 191 funções de teste com display real em tests_gui/.
pip install pytest pytest-cov
pytest tests/ # todos os testes
pytest tests/ --cov=src --cov-report=term-missing # com cobertura
pytest tests/test_syntax_patterns.py -v # módulo específico
pytest tests/ -x # para no primeiro falho→ Inventário completo por arquivo, fixtures e convenções
Contribuições são muito bem-vindas! Veja o Guia de Contribuição para o fluxo completo.
Áreas abertas:
- 🖼️ Screenshots - capturas em diferentes SOs, usos de IA e temas para a wiki
- 🌍 Traduções - arquivos em
src/locales/(14 idiomas ativos) - 🎨 Temas - variações como Gruvbox Hard, Tokyo Storm, Catppuccin Latte
- 🧪 Testes - expandir cobertura para
src/ui/e integração - 🧩 Plugins - veja wiki/plugins.md
- 🐛 Bugs - via Issues
Distribuído sob a licença MIT. Veja LICENSE para detalhes.
Este projeto foi desenvolvido com meta-programação assistida por IA. Curiosidade: O Codis consegue editar a si mesmo usando o sistema de API (offline) OLLAMA quando você abre seu próprio código-fonte como projeto.
LLMs utilizadas:
- Objetivo: Refatoração, Revisão e Traduções, elas foram assistidas por:
- 🦙 Llama 3.1
- 🧠 DeepSeek R1
- ⚡ Qwen 3.5
Serviços Online:
- Não exatamente LLMs, mas foi usado o serviço de tradução Google para acelerar a tradução geral dos idiomas em combinação com as LLMs. O script para auditoria pode ser encontrado na root do projeto, ele é funcional, então não abuse dos serviços Google.
Nota: Dada a complexidade do projeto (Tkinter + Python), erros residuais são esperados e corrigidos assim que possivel. Considere reportar qualquer issue encontrada!
Feito com ♥ e uma quantidade insana de por Lucas R. ~ KillovSkyafter()
⭐ Dê uma estrela se o Codis foi útil - ou apenas pareceu uma insanidade!