pingdotgg / pingdotgg/t3code

[Bug]: Windows reports every provider CLI not found even when they are on User PATH

Open
#7,360 5 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
23k
Forks
5.9k
Avg merge
11h 14m
Merged PRs (30d)
357

Description

Before submitting
  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.
Area

apps/desktop

Steps to reproduce
  1. On Windows, install any T3 provider CLI so it is on User PATH (winget, official irm installer, npm). Confirm a new PowerShell window can run it (Get-Command opencode, grok, codex, cursor-agent, …).
  2. Launch T3 Code from the desktop shortcut / Start Menu (not from that shell).
  3. Open Settings → Providers.
Expected behavior

Each installed CLI is found (opencode, grok, codex, cursor-agent, claude, …) without setting an absolute binaryPath.

Actual behavior

Every local provider stays red / Not found, even when the same binaries were on User PATH before T3 was installed. A refreshed PowerShell session finds them. Restarting T3 does not help.

This is Windows-only. Electron inherits a stale process PATH. The Windows environment probe uses [Environment]::GetEnvironmentVariable('PATH') (process env), not User/Machine registry. macOS/Linux login-shell probing is a different path and is not this bug.

On this machine the CLIs are present:

cursor-agent → %LOCALAPPDATA%\cursor-agent\cursor-agent.cmd
opencode     → %LOCALAPPDATA%\Microsoft\WinGet\Links\opencode.exe
grok         → %LOCALAPPDATA%\Microsoft\WinGet\Links\grok.exe
codex        → %LOCALAPPDATA%\Microsoft\WinGet\Links\codex.exe

T3 looks for cursor-agent, opencode, grok, codex, and claude. User PATH includes %LOCALAPPDATA%\Microsoft\WinGet\Links and %LOCALAPPDATA%\cursor-agent.

Impact

Major degradation or frequent failure

Version or commit

Current Windows desktop (reproduced 2026-08-17)

Environment
  • OS: Windows 11 (Build 26200)
  • Shell: PowerShell 7
  • T3 Code desktop Settings → Providers
  • Provider CLIs on User PATH via WinGet Links and the official Cursor CLI installer
Workaround

Set each provider binaryPath to the absolute executable, or launch T3 from a shell whose process PATH already includes User PATH.

Related
  • #4846 (closed) — same stale User PATH probe; Claude was papered over by adding ~\.local\bin
  • #6352 — mid-session install + Refresh still misses a newly added User PATH entry
  • #4569 — adds %LOCALAPPDATA%\cursor-agent in packages/shared only

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Windows environment probe that calls [Environment]::GetEnvironmentVariable('PATH') and trace how its result is used by Settings → Providers. Compare the process PATH with User and Machine PATH handling, then verify that the listed provider CLIs are found after launching from the desktop shortcut and after Refresh.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, powershell, typescript
Domain
cli, desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.