Historical prototype material — not the current P0 compatibility promise. The explicitly labelled feature and mapping sections below describe the pre-cutover prototype and include behavior outside the target. See the prototype/target boundary and target compatibility contract.
Current release-candidate status (2026-08-20): Familiar starts
PAUSED. At a validated Windows PowerShell 5.1 prompt,familiar onenables the contracted P0 Rust-runner set:pwd,clear,which,ls/ll,find,cat,head,tail,wc -l,grep,sort,uniq,mkdir,touch,cp,mv, andrm, with only their documented pipelines and redirection.cmd.exeis a supported native terminal session but remains pass-through; it does not receive Familiar conversion. Final release acceptance and the external Windows matrix remain open.
Wingman is a lightweight native terminal candidate for Windows. It keeps the
real PowerShell or cmd.exe process and adds a deliberately small Unix-command
familiarity layer at validated PowerShell prompts—without providing WSL, Bash,
or a Linux runtime.
Stack: Tauri 2, Rust (portable-pty), Vite, TypeScript, and xterm.js.
Wingman reduces a few common sources of friction in Windows terminals:
- The context-switching cost of opening PowerShell and cmd separately.
- Missing Linux command muscle memory, such as
ls,pwd, andcat. - Having to infer the active shell, compatibility mode, and starting directory.
This MVP deliberately focuses on a fast, local terminal experience; it does not include AI features.
- Start a root session with Windows PowerShell 5.1 or native
cmd.exe. - Preserve native shell syntax, environment, current directory, permissions, foreground children, and external programs.
- Opt into the documented P0 Familiar grammar at a validated PowerShell prompt.
- Run supported P0 commands through a packaged Rust sidecar with bounded paths, streams, resources, cancellation, and session isolation.
- Confirm any paste containing a line break before sending its original bytes.
- Launch installed windows with
wingman [--shell powershell|cmd] [--] [PATH].
Current verification: release test matrix, manual release smoke, and recorded performance baselines.
The following list is retained as migration evidence. It is not the current P0 support promise.
- Enter cmd from PowerShell in the same terminal session;
exitreturns to the parent PowerShell. - Toggle Linux Familiar mode on or off.
- PowerShell Linux Familiar compatibility layer:
grep,head,tail,find,sort,uniq, andwccut,tr, commonsedusage, andxargswith safe argument passingls,ll,cat,touch,which,mkdir -p, andrm -rf- Pipelines such as
cat file | grep text | head -n 10
- cmd Linux Familiar mappings:
ls,pwd,cat,grep,head,tail,sort,wc -l,rm,mv, andcp- Text pipelines and
<,>, and>>redirection, includingcat file | grep text | head -n 10
- Status bar showing the shell, Familiar mode, and starting directory.
- Keyboard shortcuts:
Ctrl+Shift+Cto copyCtrl+VorCtrl+Shift+Vto pasteCtrl+Shift+Rto start a new sessionCtrl++/-to change font size
- Acrylic/glass demo UI with UTF-8 code-page configuration.
| Layer | Technology |
|---|---|
| Desktop shell | Tauri 2 |
| PTY backend | Rust + portable-pty |
| Frontend | Vite + TypeScript |
| Terminal UI | xterm.js + FitAddon |
| Shells | PowerShell, cmd |
wingman/
src/
main.ts # terminal UI, session-tagged input, shortcuts
styles.css # glass UI
src-tauri/
src/lib.rs # PTY/session, broker, launch, and Tauri boundary
tauri.conf.json # Tauri configuration
docs/ # test plan and manual smoke-test guide
index.html
package.json
README.md
- Windows 11 for the currently recorded local evidence; the final supported Windows matrix remains an external release gate
- Node.js 18+
- Rust (
rustcandcargo) - WebView2 (normally included with Windows)
git clone https://github.com/spark142857142857/wingman.git
cd wingman
npm installnpm run tauri devThe app starts in PowerShell by default. Entering cmd opens an ordinary native
foreground child and exit returns to PowerShell. To start a cmd.exe root
session, use the public release CLI with --shell cmd. Familiar interception is
available only at a validated Windows PowerShell 5.1 prompt.
npm run tauri buildBuild artifacts are generated under src-tauri/target/release/.
npm run verifynpm run verify runs type checking, frontend input/security checks, Windows
layout and packaging checks, the complete non-ignored Rust contract suite, the
production frontend build, formatting, and warning-free Clippy.
- Current release matrix: docs/RELEASE_TEST_MATRIX.md
- Current manual app gate: docs/RELEASE_SMOKE_TEST.md
- Historical prototype matrix: docs/TEST_MATRIX.md
- Historical prototype smoke: docs/MANUAL_SMOKE_TEST.md
This table records the old shell-specific prototype. In the current P0
candidate, only the documented PowerShell adapter may intercept Familiar input;
cmd.exe remains native pass-through.
| Input | PowerShell | cmd |
|---|---|---|
ls |
Get-ChildItem |
dir |
ll |
Get-ChildItem ... Format-Table ... |
dir |
pwd |
Get-Location |
cd |
clear |
Clear-Host |
cls |
cat file |
Get-Content file |
type file |
rm path |
Remove-Item -Force path |
del /f path |
mv a b |
Move-Item a b |
move a b |
cp a b |
Copy-Item a b |
copy a b |
- This MVP has no AI features.
- Windows only.
- Non-ASCII characters in the project path can make Windows
RC.EXEresource compilation fail.- Example problem path:
D:\Agent-projects\wingman - Workaround: copy or move the project to an ASCII-only path, such as
C:\dev\wingman.
- Example problem path:
- Start a PowerShell session
- Switch to cmd
- Run
lsandpwdwithLinux Familiarenabled - Confirm the status bar reflects the shell, compatibility mode, and directory
- Confirm
Ctrl+Shift+C,Ctrl+V, andCtrl+Shift+Vwork