Skip to content

KyleMcLeod-Projects/Win-Dex

Repository files navigation

Win-Dex

The window to your code.

Win-Dex Banner

Win-Dex is a polished, Windows-native GUI wrapper for the OpenAI Codex CLI. Built with Tauri v2 + React + Rust for blazing performance at under 12 MB installed size and < 40 MB RAM idle.

Why Win-Dex Exists

The official Codex CLI works great... on macOS. On Windows? It's a different story. Terminal encoding issues, broken Unicode, no GUI, and that nagging feeling that you're a second-class citizen in the AI coding revolution.

Win-Dex fixes all of that — with style, spray bottles, and squeegee animations.

Features

Core

  • Full Codex CLI integration — exec mode with streaming JSON output, model selection, sandbox control
  • Multi-tab chat UI — open multiple conversations, each with full history
  • Real-time streaming — watch responses arrive character by character with typing cursor
  • Process tree cancellation — reliable taskkill /F /T /PID for clean process cleanup on Windows

Editing & History

  • Edit & resend — click edit on any user message to modify and re-send (deletes subsequent messages)
  • Regenerate response — one-click retry on the last assistant response
  • Fork conversation — duplicate any chat tab to explore alternate paths

Export

  • Markdown export — full conversation export to .md files
  • JSON export — structured export to .json for programmatic use
  • Copy as Tweet — one-click formatted tweet text for sharing on X

Magic Clean

  • Clipboard button — paste code from clipboard and auto-send it for cleaning/review
  • Token estimate — live character-based token count in the input area

Parody Mode (default ON)

  • "Thinking..." becomes "Streak-checking..."
  • Thinking levels: Mist / Wipe / Industrial Squeegee
  • "Squeegeed Clean" badges on code blocks
  • Spray particle animations on send
  • Full-screen /squeegee easter egg animation

Polish

  • Windex Blue glassmorphism theme — light and dark mode
  • Sound effects — Web Audio API tones for send, complete, error, and squeegee
  • Pinned Notes.windex/memory.md per workspace for persistent context
  • System tray — icon with live status tooltip updates
  • Error boundary — graceful crash recovery with one-click reload
  • Debug logging — toggle console logging and raw content inspection in settings
  • Settings panel — model, approval mode, sandbox, parody, sound, debug, recent directories

Keyboard Shortcuts

Shortcut Action
Ctrl+K New chat tab
Ctrl+F Search messages
Ctrl+, Open settings
Enter Send message
Shift+Enter New line in input
Escape Close overlays / Cancel run

Screenshots

Chat UI Settings Parody Mode
Chat Settings Parody

Quick Start

Prerequisites

Development

# Install dependencies
npm install

# Run in development mode (hot reload)
npm run tauri dev

# Build for production
npm run tauri build

Install (Pre-built)

Download the latest .msi or portable .exe from Releases.

Tech Stack

Component Technology
Framework Tauri v2
Backend Rust (tokio, serde, chrono)
Frontend React 19 + TypeScript
Bundler Vite
Styling Tailwind CSS
State Zustand
Markdown react-markdown + remark-gfm
Icons Lucide React
Audio Web Audio API (no external files)

Architecture

See Architecture.md for the full system overview.

Project Structure

Win-Dex/
├── src-tauri/              # Rust backend
│   ├── src/
│   │   ├── main.rs             # Entry point
│   │   ├── lib.rs              # Tauri commands + app setup
│   │   ├── windex_service.rs   # Windex (Codex) CLI detection + arg builder
│   │   ├── command_manager.rs  # PID tracking + process tree kill
│   │   ├── settings.rs         # Settings persistence (%APPDATA%)
│   │   └── types.rs            # Shared types
│   ├── Cargo.toml
│   └── tauri.conf.json
├── src/                    # React frontend
│   ├── components/
│   │   ├── Toolbar.tsx         # Top bar with actions
│   │   ├── TabBar.tsx          # Multi-tab chat tabs
│   │   ├── ChatArea.tsx        # Message list with smart scroll
│   │   ├── ChatInput.tsx       # Input area with token meter
│   │   ├── MessageBubble.tsx   # Message rendering with actions
│   │   ├── SprayParticles.tsx  # Send animation particles
│   │   ├── SqueegeeOverlay.tsx # Full-screen easter egg
│   │   ├── SettingsPanel.tsx   # Settings modal
│   │   ├── SearchOverlay.tsx   # Message search
│   │   ├── MemoryPanel.tsx     # Workspace pinned notes
│   │   ├── StatusBar.tsx       # Bottom status bar
│   │   └── ErrorBoundary.tsx   # Crash recovery
│   ├── hooks/
│   │   └── useWindex.ts       # Windex IPC + stream handling
│   ├── store/
│   │   └── appStore.ts        # Zustand state management
│   └── lib/
│       ├── types.ts            # TypeScript types
│       ├── utils.ts            # Utilities + parody text
│       ├── sounds.ts           # Web Audio API sound effects
│       └── logger.ts           # Debug logging system
├── scripts/                # Build/dev scripts
├── .github/workflows/      # CI
└── docs/

Contributing

PRs welcome! See TODO.md for the current feature roadmap.

License

MIT

About

A polished GUI for the OpenAI Codex CLI, with a Windex cleaning product parody theme. Built with Tauri 2 (React/TypeScript + Rust).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors