Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Bug]: Provider agent sessions inherit ELECTRON_RUN_AS_NODE=1 on macOS, so Electron apps launched from agent shells run as Node and exit

Open Beginner friendly
#26,966 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
76/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
electron, macos, typescript
Domain
backend

Research direction

Start with mergeProviderInstanceEnvironment and the provider session adapters in apps/server; the issue says they build session environments through this helper. Compare that path with TERMINAL_ENV_BLOCKLIST in apps/server/src/terminal/Manager.ts and the existing environment handling described in the issue. Done means provider shells no longer inherit ELECTRON_RUN_AS_NODE while helpers that need Node mode can still set it themselves.

Written by the indexing model from the issue text.

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/server

Steps to reproduce
  1. On macOS, start a Claude (or Codex) thread in the desktop app.
  2. Ask the agent to run echo $ELECTRON_RUN_AS_NODE with its shell tool. It prints 1.
  3. Ask it to launch any Electron app from that shell, for example /Applications/Slack.app/Contents/MacOS/Slack --remote-debugging-port=9222.
Expected behavior

Agent shells don't have ELECTRON_RUN_AS_NODE, so an Electron app launched from one opens normally.

Actual behavior

The Electron app starts as plain Node and exits without opening a window. Agents that drive desktop apps over CDP (Slack, VS Code, Discord, etc.) can't start them.

The desktop app starts the server with ELECTRON_RUN_AS_NODE=1 on purpose (apps/desktop/src/backend/DesktopBackendConfiguration.ts), and mergeProviderInstanceEnvironment passes it through unchanged to provider sessions, so every tool shell inherits it. The integrated terminal (TERMINAL_ENV_BLOCKLIST in apps/server/src/terminal/Manager.ts) and the external launcher (#20206) already drop it; provider sessions are the remaining path.

This is the provider-session part of #16456, which was closed with a request for a new issue covering only that part. It isn't Linux-specific: the same leak happens on macOS without any AppImage variables.

#16679 (maintainer takeover) fixes this: its mergeProviderInstanceEnvironment deletes ELECTRON_RUN_AS_NODE on every platform before applying provider overrides, and Claude, Codex, Grok, Antigravity and the ACP registry adapters all build their session environment through it. T3's own helpers that need Node mode (agent-device wrappers since #18301, the Claude history worker, document text extraction) set the variable themselves, so they're unaffected.

Impact

Major degradation or frequent failure

Version or commit

T3 Code (Nightly) 0.1.5-nightly.20261029.3877; code references are upstream/main at 20497e4890.

Environment

macOS 27 (Apple Silicon), desktop app, Claude provider. Same code path for Codex.

Logs or stack traces
$ echo "ELECTRON_RUN_AS_NODE=${ELECTRON_RUN_AS_NODE-<unset>}"   # inside a Claude agent's Bash tool
ELECTRON_RUN_AS_NODE=1
Workaround

Prefix the launch with env -u ELECTRON_RUN_AS_NODE, or unset ELECTRON_RUN_AS_NODE in the agent's shell first.

Dominant language
TypeScript
Stars
24.8k
Forks
6.4k
Avg merge
3h 20m
Merged PRs (30d)
208

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

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.

More from pingdotgg/t3code

All issues in pingdotgg/t3code

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.