Recents and favoritesUp to 3 projects per window
Project Launcher

Less setup.More building.

Projects and terminals organized to get to work.

A Windows app that opens your projects in the terminal, with a name that sticks.

Desktop appWindows TerminalIn-house tool

  • Tauri 2.11
  • Rust
  • React 18.3
  • TypeScript 5.9
  • Vite 5.4
  • Tailwind 3.4
  • Framer Motion 11
Recents and favoritesUp to 3 projects per window
Project Launcher

Less setup.More building.

Projects and terminals organized to get to work.

  • Tauri 2.11
  • Rust
  • React 18.3
  • TypeScript 5.9
  • Vite 5.4
  • Tailwind 3.4
  • Framer Motion 11

A Windows app that opens your projects in the terminal, with a name that sticks.

Desktop appWindows TerminalIn-house tool

  • Tauri 2.11
  • Rust
  • React 18.3
  • TypeScript 5.9
  • Vite 5.4
  • Tailwind 3.4
  • Framer Motion 11

The problem

The tab name that sticks.

The old .bat opened the three panes, but the tab stayed "powershell.exe" and, with every command, the shell replaced the title with something else. The .bat was not the cause: the shell rewrites the title. The app passes the two flags that hold the name.

  • --title "SOUZA-PAIOL"

    Sets the name

    The project name goes to the tab and to each pane, cleaned of quotes and line breaks and cut at 40 characters.

  • --suppressApplicationTitle

    Holds the name

    Stops the shell from rewriting the title. Without it, the first flag lasts until the next command.

In numbers

Small in size, precise in detail.

Every lit cell is an item the code knows: a stack marker, a folder that is never even opened, a command between the interface and Rust.

2,957lines of code

  • Rust663
  • TypeScript and TSX2,070
  • CSS224
  1. Stack markers16package.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
  2. Code extensions15.ts · .tsx · .js · .jsx · .php · .rs · .go · .py · .rb · .java · .cs · .lua · .vue · .svelte · .sql
  3. Part names21frontend · backend · client · server · api · web · www · site · app · apps · admin · painel · mobile · desktop · core · shared · services · packages · src · front · back
  4. Ignored folders15node_modules · .git · .next · dist · build · target · vendor · .vscode · .idea · __pycache__ · .cache · coverage · out · bin · obj
  5. Rust commands6scan_projects · launch_terminals · check_windows_terminal · generate_bat · open_folder · write_text_file
  6. Tab colors8Violet · Indigo · Cyan · Emerald · Amber · Pink · Red · Slate
  7. Shortcuts6Ctrl+O · F5 · Ctrl+N · Ctrl+Enter · / · Esc
  8. Panes per window31 · 2 · 3

The scan

Finds the project by what it is.

The app does not look for a package.json: it looks for the marker of each language and framework, up to two levels below the root folder. Once it finds a project, it stops going down, frontend and backend do not become two projects.

D:\ProjetosExample

  1. MOTOR-DESIGN/package.jsonNode
  2. CINE-CREATOR-STUDIO/package.json + Cargo.tomlNode + Rust
  3. LOJA-COMPLETA/One project: Node + PHP
  4. frontend/package.jsonPart
  5. backend/composer.jsonPart
  6. node_modules/Ignored
  7. SCRIPTS/backup.pyCode
  8. CLIENTES/Goes down
  9. SITE-INSTITUCIONAL/index.phpPHP
  10. FOTOS/Left out
  • 16 stack markers

    A package.json means Node, a Cargo.toml means Rust, a composer.json means PHP, an artisan means Laravel… and stacks add up: Node + Rust.

    MARCADORES
  • Loose code counts too

    No marker, but .ts, .py, .php or another of the 15 extensions at the root: the folder comes in as Code.

    EXT_CODIGO
  • Front and back in one entry

    A folder with marked frontend/ and backend/ becomes a single project, with both stacks. It recognizes 21 part names.

    identificar_multipasta()
  • 15 folders never opened

    Folders like node_modules, .git, dist, target and vendor: the scan skips right over them.

    PASTAS_IGNORADAS
  • Up to two levels

    A plain folder is crossed up to two levels below the root, and the scan runs off the interface thread, without freezing the window.

    MAX_PROFUNDIDADE_SCAN = 2
The app with three projects in a window, next to Windows Terminal open with the three panes

Organization that becomes flow

Pick the projects. Open your workspace.

Up to three terminals side by side or stacked, each project in its own folder.

01 / Select and organize02 / Open the terminalsSide by side or stackedExport to .bat

Each app window becomes a Windows Terminal tab, with up to three panes. The split follows the original .bat math: the i-th pane takes remaining ÷ (remaining + 1) of the previous one (2/3 then 1/2) and all three end up with an exact third.

ROBLOX-APP-ASSETSPS D:\Projetos\ROBLOX-APP-ASSETS>
CINE-CREATOR-STUDIOPS D:\Projetos\CINE-CREATOR-STUDIO>
MOTOR-DESIGNPS D:\Projetos\MOTOR-DESIGN>
  1. new-tab -d D:\Projetos\ROBLOX-APP-ASSETSThe 1st project opens the tab.
  2. split-pane -V -s 0.6667 -d D:\Projetos\CINE-CREATOR-STUDIOThe 2nd splits and takes 2/3 of the space.
  3. split-pane -V -s 0.5000 -d D:\Projetos\MOTOR-DESIGNThe 3rd splits that in half: three thirds.

The terminal's vocabulary is inverted: side-by-side panes are a vertical split (-V). The app translates, you choose by the drawing, not the term.

The execution

One call per pane.

One giant command, chained with semicolons, sometimes loses the titles. The app takes the stable path: one wt.exe call per pane, all aimed at the same window, with the pause the window needs to be born.

  1. 0ms

    01Opens the tab

    wt -w PL-1a2b3c new-tab -d D:\Projetos\ROBLOX-APP-ASSETS --title ROBLOX-APP-ASSETS --suppressApplicationTitle --tabColor #8b5cf6 powershell.exe -NoExit
  2. 800ms

    02Splits into 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
  3. 1100ms

    03Splits in half

    wt -w PL-1a2b3c split-pane -V -s 0.5000 -d D:\Projetos\MOTOR-DESIGN --title MOTOR-DESIGN --suppressApplicationTitle --tabColor #8b5cf6 powershell.exe -NoExit
The app with the three-project window and Windows Terminal open with the three named panes
The result: three panes, each with its project's name.

Why not a single command

Windows Terminal has an intermittent bug that loses titles when several new-tab and split-pane come in a single invocation. Sequential calls, with -w aimed at the same window, are the stable path, and the app still checks each folder before calling.

microsoft/terminal#6586

To go

Becomes a .bat, becomes a shortcut.

The footer button generates a .bat with the same command, to pin to the taskbar, add to Windows startup or schedule. And the whole app is used without taking your hands off the keyboard.

abrir-janela-1.bat

  1. @echo off
  2. chcp 65001 >nul
  3. title Lancador - Janela 1
  4. rem Gerado pelo ProjectLauncher
  5. rem --title nomeia a aba/painel
  6. rem --suppressApplicationTitle impede o shell de sobrescrever o nome
  7. set "WT=%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe"
  8. if not exist "%WT%" (
  9. echo ERRO: Windows Terminal nao encontrado em %WT%
  10. pause
  11. exit /b 1
  12. )
  13. rem --- Janela 1 ---
  14. start "" "%WT%" -w PL-BAT-0 new-tab -d D:\Projetos\ROBLOX-APP-ASSETS --title ROBLOX-APP-ASSETS --suppressApplicationTitle --tabColor #8b5cf6 powershell.exe -NoExit
  15. timeout /t 1 /nobreak >nul
  16. 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
  17. timeout /t 1 /nobreak >nul
  18. exit

Search project…/

Shortcuts

  • Choose the root folderCtrlO
  • Scan againF5
  • New windowCtrlN
  • Open everythingCtrlEnter
  • Focus the search/
  • Clear the searchEsc

Options

  • PowerShell or CMD, without the pane closing by itself-NoExit/k
  • Open maximized--maximized
  • One window per group or all as tabs-w
  • Tab color, carried over to the terminal8

The technologies

What it is made of, piece by piece

A small Windows program: the window is built like a website, and the Rust behind it finds the projects and opens the terminal already arranged. Pick a piece to see what it does here and which file it is in.

12technologies, in 3 layers

Screen

Core

Windows

The screens

The app, window by window.

From the first empty window to the three open terminals, with each project's name on the tab.