Skip to content

WSL support #192

Description

@patchzyy

When running on windows it would be nice to have the app use codex through WSL since codex (and other harnesses) do seem to run better in linux , or atleast an option for it to enable and disable it (so either using it through windows powershell nativally or WSL)

Activity

  1. sebherrerabe commented on Mar 7, 2026

    @sebherrerabe

    Up! I use windows but basically all my development projects live in wsl2 (ubuntu).

  2. SandGiant-Lunarchild commented on Mar 7, 2026

    @SandGiant-Lunarchild

    As a suggestion, if you're smart with the remote agent / runner implementation, you can just implement WSL support as a remote server, but instead of say using ssh to start the remote runner you use the wsl command with distro selection.

    Codex did recently release their Windows app with WSL support, but one of the downsides of it is that you are stuck with either running on WSL or local windows, instead of having it as a per project and/or per thread setup.

  3. sebherrerabe commented on Mar 7, 2026

    @sebherrerabe

    As a suggestion, if you're smart with the remote agent / runner implementation, you can just implement WSL support as a remote server, but instead of say using ssh to start the remote runner you use the wsl command with distro selection.

    Codex did recently release their Windows app with WSL support, but one of the downsides of it is that you are stuck with either running on WSL or local windows, instead of having it as a per project and/or per thread setup.

    I still believe that it would be great to have native support for WSL and therefore enhance that config per project feature in t3code that the codex app is missing.

    I get errors like this when trying to work in a WSL project

    Image
  4. SandGiant-Lunarchild commented on Mar 7, 2026

    @SandGiant-Lunarchild

    Hmm, so you want your Windows copy of Codex to run over the special WSL exposed network paths? Curious. Though that particular error seems to be a problem with your git installation rather than anything to do with t3 code.

    What I'm talking about is having the "remote agent" support run the codex inside of WSL instead, using the WSL installation of Codex. That way you wouldn't need to use the wsl network path.

  5. citricguy commented on Mar 7, 2026

    @citricguy

    I’ve been testing the Codex app (the one from Open AI) for Windows. It looks like they’ve integrated it with WSL, but the app itself is extremely slow (the entire point of T3Code yes?). The Codex CLI runs perfectly inside WSL with no problems. The slowness seems to be specific to the Codex desktop app.

    Image

    If the T3Code app supported a proper WSL mode, it could get Linux-like performance and behavior while still running inside the Windows environment. I'm very excited for all of this, T3code is the absolute opposite of 'slugsh' even in it's alpha state.

  6. linuxdropout commented on Mar 7, 2026

    @linuxdropout

    Has anyone managed to get it running with Xlaunch by just running the linux version under wsl2 directly? I'm going to give that a shot and post instructions here if it works

  7. tewbamohammed-arch commented on Mar 8, 2026

    @tewbamohammed-arch

    Has anyone managed to get it running with Xlaunch by just running the linux version under wsl2 directly?

    Yupp. I think. 🤷

    Here's what I did. Provided that you're on wsl 2 and I used ubuntu 24.04.1 LTS for this but you can use any compatible distro.

    1. Update and install xlaunch

    sudo apt update
    sudo apt install -y libfuse2t64
    sudo apt install -y x11-apps

    2. Verify xlaunch is installed via xeyes

    xeyes

    A simple ubuntu-looking app should pop-up inside windows, it should respond to and follow your mouse pointer.

    3. Download latest app image and prepare to run

    wget https://github.com/pingdotgg/t3code/releases/download/v0.0.4/T3-Code-0.0.4-x86_64.AppImage
    mkdir -p ~/apps/t3code
    mv T3-Code-0.0.4-x86_64.AppImage ~/apps/t3code
    cd ~/apps/t3code
    chmod +x T3-Code-0.0.4-x86_64.AppImage
    echo "alias t3code='cd ~/apps/t3code/ && ./T3-Code-0.0.4-x86_64.AppImage'" >> ~/.bash_aliases
    source ~/.bash_aliases
    t3code

    You should have an instance of t3code running by this point.

    I am no expert of xlaunch or even wsl ins-and-outs but I have been met with quite a few issues with the UX in general:

    • dark mode is not default - could be an xlaunch or wsl problem
    • change diffs are completely broken, including codex checkpoints
    Image
  8. Dastari commented on Mar 8, 2026

    @Dastari

    I’ve been testing the Codex app (the one from Open AI) for Windows. It looks like they’ve integrated it with WSL, but the app itself is extremely slow (the entire point of T3Code yes?). The Codex CLI runs perfectly inside WSL with no problems. The slowness seems to be specific to the Codex desktop app.

    Image If the T3Code app supported a proper WSL mode, it could get Linux-like performance and behavior while still running inside the Windows environment. I'm _very_ excited for all of this, T3code is the absolute opposite of '_slugsh'_ even in it's alpha state.

    It does support WSL, but it still seems to run a lot of PowerShell commands and pretty much executes "bash " from the windows side to execute everything.

    I agree that the T3 team should add WSL integrated support.

  9. a12233 commented on Mar 8, 2026

    @a12233

    Opus suggested this for me:

     Got the Windows app running with WSL projects. Two things broke, here's how I fixed both:
      1. "codex not recognized"
    
      Create a file called codex.cmd in C:\Users\<you>\AppData\Local\Microsoft\WindowsApps\ (already on your
       PATH, no extra setup):
    
      @echo off
      wsl codex %*
    
      That's it. Windows will now forward codex calls to your WSL install automatically.
    
      2. Checkpoint git errors
    
      If you see fatal: detected dubious ownership in repository at '//wsl.localhost/...', add this to
      C:\Users\<you>\.gitconfig:
    
      [safe]
          directory = %(prefix)///wsl.localhost/Ubuntu-24.04/mnt/data/your-project
    
      ⚠️ Don't quote the value — git will break with a not absolute error if you do (learned that the hard
      way).
    
      Or via command line (run from PowerShell/cmd, not WSL):
      git config --global --add safe.directory %(prefix)///wsl.localhost/Ubuntu-24.04/mnt/data/your-project
    

    Seems to be working for me now.

  10. irian-codes commented on Mar 9, 2026

    @irian-codes

    Ooooh wanted to use it, but all my development is inside WSL 🥴

    EDIT: I see if I run it with npx t3 inside WSL a browser opens and I can use it. Well, for now it works.

  11. Dastari commented on Mar 9, 2026

    @Dastari

    Ooooh wanted to use it, but all my development is inside WSL 🥴

    EDIT: I see if I run it with npx t3 inside WSL a browser opens and I can use it. Well, for now it works.

    Yes this is how I'm running it. What is SUPER cool is that if you port setup port forwarding, I can monitor and code from my iPad in bed :) Which is just.. game changing.

  12. GabeAl commented on Mar 10, 2026

    @GabeAl

    I run it in WSL.

    1. Open wsl terminal and type in npx t3
    2. The app opens in a browser window.
    3. Enjoy.

    Of course, it has limitations:

    1. Needs the browser
    2. all paths are garbage and do nothing.
    Image

    ^ ^ that's an example.

  13. shurkanTwo commented on Mar 28, 2026

    @shurkanTwo

    @t3dotgg any update on when we might see an update on WSL integration?

  14. johan149 commented on Apr 6, 2026

    @johan149

    fuck I also have in my WSL env

  15. phob commented on Apr 6, 2026

    @phob

    The best UI in the world still doesn't support WSL?

  16. archasek commented on Apr 6, 2026

    @archasek

    Wtf guys, waiting for it for weeks already

  17. Tokolosk commented on Apr 6, 2026

    @Tokolosk

    Gents... patience. You are getting this for free. Look at the ticket content, this is not an easy fix.

    I'm also waiting, but if this is like any of the other t3 products we're in for a treat.

  18. AveshLutchman commented on Apr 28, 2026

    @AveshLutchman

    Not sure if this helps, but adding my comment here to show support for the feature.

  19. yutamago commented on May 5, 2026

    @yutamago

    I tried connecting my WSL2 environment via SSH, resulted in #2534
    Maybe you guys are having more luck than me.

  20. AbdelhamidQ commented on May 12, 2026

    @AbdelhamidQ

    Workaround that’s working well for me on Windows + WSL:

    I run T3 Code from inside WSL, but prevent it from opening my default browser. My WSL script starts the server with:

    npx t3 start --no-browser --mode web --host 127.0.0.1 --port 3773

    The script waits until http://localhost:3773 is reachable, then opens it in Microsoft Edge using --app and a dedicated --user-data-dir. That gives me a separate T3 Code window/profile instead of another tab in my normal browser.

    On Windows, AutoHotkey handles shortcuts: Alt+3 focuses the existing T3 window or starts it through WSL, and Alt+Shift+3 stops the T3 server.

    Scripts

    t3code-app

    #!/usr/bin/env bash
    set -Eeuo pipefail
    
    export NVM_DIR="${NVM_DIR:-$HOME/.nvm}"
    if [[ -s "$NVM_DIR/nvm.sh" ]]; then
      . "$NVM_DIR/nvm.sh"
    fi
    
    port="${T3CODE_APP_PORT:-3773}"
    host="${T3CODE_APP_HOST:-127.0.0.1}"
    url="http://localhost:${port}"
    
    browser_exe="/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"
    profile_dir="${T3CODE_APP_PROFILE:-/mnt/c/Users/abdul/AppData/Local/T3CodeEdgeProfile}"
    
    mkdir -p "$profile_dir"
    profile_win="$(wslpath -w "$profile_dir")"
    
    is_t3_up() {
      curl --silent --fail --max-time 1 "$url" >/dev/null 2>&1
    }
    
    open_t3_window() {
      "$browser_exe" \
        --user-data-dir="$profile_win" \
        --no-first-run \
        --no-default-browser-check \
        --app="$url" \
        >/dev/null 2>&1 &
    }
    
    if is_t3_up; then
      open_t3_window
      exit 0
    fi
    
    npx t3 start \
      --no-browser \
      --mode web \
      --host "$host" \
      --port "$port" &
    
    t3_pid=$!
    
    for _ in {1..80}; do
      if is_t3_up; then
        open_t3_window
        break
      fi
      sleep 0.25
    done
    
    wait "$t3_pid"

    t3code-stop

    #!/usr/bin/env bash
    set -u
    
    pkill -f 'node .*t3' >/dev/null 2>&1 || true

    AutoHotkey v2

    ; Alt + 3 → T3Code
    !3:: {
        if WinExist("T3 Code ahk_exe msedge.exe") {
            WinActivate()
        } else {
            Run("C:\Users\abdul\t3code.cmd",, "Hide")
        }
    }
    
    ; Alt + Shift + 3 → Stop T3Code server
    !+3:: {
        Run("C:\Users\abdul\t3code-stop.cmd",, "Hide")
    }

    t3code.cmd

    @echo off
    wsl.exe -d Ubuntu --cd ~ --exec /home/zorex/.local/bin/t3code-app

    t3code-stop.cmd

    @echo off
    wsl.exe -d Ubuntu --exec /home/zorex/.local/bin/t3code-stop
  21. archasek commented on May 12, 2026

    @archasek

    @AbdelhamidQ but what's the reason for you to do this?

  22. AbdelhamidQ commented on May 13, 2026

    @AbdelhamidQ

    @archasek It’s so I can have a separate T3 Code instance/app on Windows, instead of keeping it in my main browser where I do other work.

    This way it feels and behaves more like a standalone Windows app, while the actual T3 Code server/tools still run inside WSL.

  23. benjaminlgur commented on May 14, 2026

    @benjaminlgur

    This PR should likely solve the issue hopefully it is merged soon.

    #2353

  24. extreme4all commented on May 14, 2026

    @extreme4all

    in wsl this seems to work

    npx t3

    or in my case i ran

    bunx t3
    
  25. mpaulo-ciandt commented on Jun 9, 2026

    @mpaulo-ciandt

    For those looking, launching the backend in WSL using npx t3 and using the remote environment on the desktop app with the pairing code works reliably.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementRequested improvement or new capability.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions