Recentes e favoritosAté 3 projetos por janela
Menos preparação.Mais desenvolvimento.
Projetos e terminais organizados para começar a trabalhar.
Um app de Windows que abre seus projetos no terminal, com o nome que não some.
- Tauri 2.11
- Rust
- React 18.3
- TypeScript 5.9
- Vite 5.4
- Tailwind 3.4
- Framer Motion 11
Recentes e favoritosAté 3 projetos por janela
Menos preparação.Mais desenvolvimento.
Projetos e terminais organizados para começar a trabalhar.
- Tauri 2.11
- Rust
- React 18.3
- TypeScript 5.9
- Vite 5.4
- Tailwind 3.4
- Framer Motion 11
Um app de Windows que abre seus projetos no terminal, com o nome que não some.
- Tauri 2.11
- Rust
- React 18.3
- TypeScript 5.9
- Vite 5.4
- Tailwind 3.4
- Framer Motion 11
O problema
O nome da aba que não some.
O .bat antigo abria os três painéis, mas a aba ficava "powershell.exe" e, a cada comando, o shell trocava o título por outro. A causa não era o .bat: é o shell que reescreve o título. O app passa as duas flags que seguram o nome.
--title "SOUZA-PAIOL"Dá o nome
O nome do projeto vai para a aba e para cada painel, limpo de aspas e quebras e cortado em 40 caracteres.
--suppressApplicationTitleSegura o nome
Proíbe o shell de reescrever o título. Sem ela, a primeira flag dura até o próximo comando.
Com --title e --suppressApplicationTitle, o nome fica até a aba fechar.
Em números
Pequeno no tamanho, preciso no detalhe.
Cada casa acesa é um item que o código conhece: o marcador de uma stack, uma pasta que nem é aberta, um comando entre a interface e o Rust.
2.957linhas de código
- Rust663
- TypeScript e TSX2.070
- CSS224
- Marcadores de stack16package.json · composer.json · artisan · Cargo.toml · go.mod · pyproject.toml · requirements.txt · Pipfile · Gemfile · pom.xml · build.gradle · build.gradle.kts · pubspec.yaml · Makefile · docker-compose.yml · index.php
- Extensões de código15.ts · .tsx · .js · .jsx · .php · .rs · .go · .py · .rb · .java · .cs · .lua · .vue · .svelte · .sql
- Nomes de parte21frontend · backend · client · server · api · web · www · site · app · apps · admin · painel · mobile · desktop · core · shared · services · packages · src · front · back
- Pastas ignoradas15node_modules · .git · .next · dist · build · target · vendor · .vscode · .idea · __pycache__ · .cache · coverage · out · bin · obj
- Comandos do Rust6scan_projects · launch_terminals · check_windows_terminal · generate_bat · open_folder · write_text_file
- Cores de aba8Violeta · Índigo · Ciano · Esmeralda · Âmbar · Rosa · Vermelho · Ardósia
- Atalhos6Ctrl+O · F5 · Ctrl+N · Ctrl+Enter · / · Esc
- Painéis por janela31 · 2 · 3
A varredura
Acha o projeto pelo que ele é.
O app não procura um package.json: procura o marcador de cada linguagem e de cada framework, até dois níveis abaixo da pasta raiz. Achou um projeto, não desce mais, frontend e backend não viram dois projetos.
D:\ProjetosExemplo
- MOTOR-DESIGN/package.jsonNode
- CINE-CREATOR-STUDIO/package.json + Cargo.tomlNode + Rust
- LOJA-COMPLETA/Um projeto: Node + PHP
- frontend/package.jsonParte
- backend/composer.jsonParte
- node_modules/Ignorada
- SCRIPTS/backup.pyCódigo
- CLIENTES/Desce
- SITE-INSTITUCIONAL/index.phpPHP
- FOTOS/Fica de fora
16 marcadores de stack
Um package.json é Node, um Cargo.toml é Rust, um composer.json é PHP, um artisan é Laravel… e as stacks se somam: Node + Rust.
MARCADORESCódigo solto também conta
Sem marcador, mas com .ts, .py, .php ou outra das 15 extensões na raiz, a pasta entra como Código.
EXT_CODIGOFrente e verso numa entrada só
Uma pasta com frontend/ e backend/ marcados vira um projeto só, com as duas stacks. São 21 nomes de parte reconhecidos.
identificar_multipasta()15 pastas que nem abrem
Pastas como node_modules, .git, dist, target e vendor: a varredura passa por cima.
PASTAS_IGNORADASAté dois níveis
Pasta comum é atravessada até dois níveis abaixo da raiz, e a varredura roda fora da interface, sem travar a janela.
MAX_PROFUNDIDADE_SCAN = 2

Organização que vira fluxo
Escolha os projetos. Abra seu ambiente.
Até três terminais lado a lado ou empilhados, com cada projeto no seu diretório.
01 / Selecione e organize02 / Abra os terminaisLado a lado ou empilhadoExportação em .batCada janela do app vira uma aba do Windows Terminal, com até três painéis. A divisão segue a conta do .bat original: o i-ésimo painel pega restantes ÷ (restantes + 1) do anterior (2/3 e depois 1/2) e os três ficam com um terço exato.
PS D:\Projetos\ROBLOX-APP-ASSETS>PS D:\Projetos\CINE-CREATOR-STUDIO>PS D:\Projetos\MOTOR-DESIGN>new-tab -d D:\Projetos\ROBLOX-APP-ASSETSO 1º projeto abre a aba.split-pane -V -s 0.6667 -d D:\Projetos\CINE-CREATOR-STUDIOO 2º divide e fica com 2/3 do espaço.split-pane -V -s 0.5000 -d D:\Projetos\MOTOR-DESIGNO 3º divide esse ao meio: três terços.
O vocabulário do terminal é invertido: painéis lado a lado são uma divisão vertical (-V). O app traduz, você escolhe pelo desenho, não pelo termo.
A execução
Uma chamada por painel.
Um comando gigante, encadeado com ponto e vírgula, às vezes perde os títulos. O app faz o caminho estável: uma chamada do wt.exe por painel, todas mirando a mesma janela, com a pausa que a janela precisa para nascer.
- 0ms
01Abre a aba
wt -w PL-1a2b3c new-tab -d D:\Projetos\ROBLOX-APP-ASSETS --title ROBLOX-APP-ASSETS --suppressApplicationTitle --tabColor #8b5cf6 powershell.exe -NoExit - 800ms
02Divide em 2/3
wt -w PL-1a2b3c split-pane -V -s 0.6667 -d D:\Projetos\CINE-CREATOR-STUDIO --title CINE-CREATOR-STUDIO --suppressApplicationTitle --tabColor #8b5cf6 powershell.exe -NoExit - 1100ms
03Divide ao meio
wt -w PL-1a2b3c split-pane -V -s 0.5000 -d D:\Projetos\MOTOR-DESIGN --title MOTOR-DESIGN --suppressApplicationTitle --tabColor #8b5cf6 powershell.exe -NoExit

Por que não um comando só
O Windows Terminal tem um bug intermitente de perder títulos quando vários new-tab e split-pane vêm numa única invocação. Chamadas em sequência, com -w apontando a mesma janela, são o caminho estável, e o app ainda confere cada pasta antes de chamar.
microsoft/terminal#6586Para levar
Vira um .bat e vira atalho.
O botão do rodapé gera um .bat com o mesmo comando, para fixar na barra de tarefas, pôr na inicialização do Windows ou agendar. E o app inteiro se usa sem tirar a mão do teclado.
abrir-janela-1.bat
- @echo off
- chcp 65001 >nul
- title Lancador - Janela 1
- rem Gerado pelo ProjectLauncher
- rem --title nomeia a aba/painel
- rem --suppressApplicationTitle impede o shell de sobrescrever o nome
- set "WT=%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe"
- if not exist "%WT%" (
- echo ERRO: Windows Terminal nao encontrado em %WT%
- pause
- exit /b 1
- )
- rem --- Janela 1 ---
- start "" "%WT%" -w PL-BAT-0 new-tab -d D:\Projetos\ROBLOX-APP-ASSETS --title ROBLOX-APP-ASSETS --suppressApplicationTitle --tabColor #8b5cf6 powershell.exe -NoExit
- timeout /t 1 /nobreak >nul
- start "" "%WT%" -w PL-BAT-0 split-pane -V -s 0.6667 -d D:\Projetos\CINE-CREATOR-STUDIO --title CINE-CREATOR-STUDIO --suppressApplicationTitle --tabColor #8b5cf6 powershell.exe -NoExit
- timeout /t 1 /nobreak >nul
- exit
Buscar projeto…/
Atalhos
- Escolher a pasta raizCtrlO
- Varrer de novoF5
- Nova janelaCtrlN
- Abrir tudoCtrlEnter
- Focar a busca/
- Limpar a buscaEsc
Opções
- PowerShell ou CMD, sem o painel fechar sozinho-NoExit/k
- Abrir maximizada--maximized
- Uma janela por grupo ou todas como abas-w
- Cor da aba, que vai junto para o terminal8
As tecnologias
Do que é feito, peça por peça
Um programa de Windows pequeno: a janela é feita como um site, e o Rust por trás acha os projetos e abre o terminal já arrumado. Escolha uma peça para ver o que ela faz aqui e em que arquivo está.
12tecnologias, em 3 camadas
Tela
Núcleo
Windows
As telas
O app, janela por janela.
Da primeira janela vazia aos três terminais abertos, com o nome de cada projeto na aba.




Ferramentas para criação e desenvolvimentoProjectZipper