Skip to content

[Bug]: can't run npm script directly in background #37

@MarvinXu

Description

@MarvinXu

Description

If I say run dev server in the background it will fail, but when I say run pwsh in background and run dev server it will succeed.

Reproduction Steps

Steps to reproduce the behavior:

  1. Configure plugin in opencode.json
  2. Run opencode
  3. Use pty_spawn with '...'
  4. See error

Expected Behavior

will succeed with the first prompt

Environment

  • OS: [Windows 11]
  • OpenCode Version: [1.14.46]
  • Plugin Version: [1.1.0]
  • Bun Version: [1.3.2]

OpenCode Configuration

opencode.json (sanitized)
{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["opencode-pty"],
}

Debug Logs

Click to expand debug logs

To get debug logs, run OpenCode with debug logging enabled:

opencode --log-level DEBUG --print-logs

Or check log files in ~/.local/share/opencode/logs/.

[Paste relevant log output here]

Additional Context

Run dev server in background

Session ID: ses_1edb97631ffe6ZvMa6sfEGGija
Created: 2026/5/10 22:24:33
Updated: 2026/5/10 22:26:26


User

run npm dev in background


Assistant (Build · MiniMax M2.5 Free · 22.2s)

Thinking:

The user wants to run npm dev in the background. Based on the AGENTS.md file, the dev server is started with npm run dev which runs wrangler dev. I'll spawn a PTY session to run this in the background.

Tool: pty_spawn

Input:

{
  "args": [
    "npm",
    "run",
    "dev"
  ],
  "command": "npm",
  "description": "Start wrangler dev server",
  "title": "Dev Server",
  "workdir": "C:\\Users\\marv\\workspace\\web-push\\web-push-demo"
}

Error:

PTY spawn failed

Assistant (Build · MiniMax M2.5 Free · 7.0s)

Thinking:

The PTY spawn failed. Let me try using the regular bash tool instead.

Tool: bash

Input:

{}

Error:

Tool execution aborted

User

run pwsh in background and run npm run dev


Assistant (Build · MiniMax M2.5 Free · 38.7s)

Thinking:

The user wants me to run PowerShell in background and execute npm run dev inside it.

Tool: pty_spawn

Input:

{
  "args": [
    "-Command",
    "npm run dev"
  ],
  "command": "pwsh",
  "description": "Start PowerShell and run npm dev",
  "title": "PowerShell - npm dev",
  "workdir": "C:\\Users\\marv\\workspace\\web-push\\web-push-demo"
}

Output:

<pty_spawned>
ID: pty_de4e9361
Title: PowerShell - npm dev
Command: pwsh -Command npm run dev
Workdir: C:\Users\marv\workspace\web-push\web-push-demo
PID: 17544
Status: running
NotifyOnExit: false
</pty_spawned>

Assistant (Build · MiniMax M2.5 Free · 13.3s)

Thinking:

Good, the PTY is now running. Let me read the output to see what happened.

Tool: pty_read

Input:

{
  "id": "pty_de4e9361"
}

Output:

<pty_output id="pty_de4e9361" status="running">
00001| �[?9001h�[?1004h�[?25l�[2J�[m�[H�]0;C:\Program Files\PowerShell\7\pwsh.EXE��[?25h�]0;npm��]0;npm run dev��[?25l
00002| > web-push-demo@1.0.0 dev
00003| > wrangler dev�[5;1H�[?25h�[?25l�[33m▲ �[43m[�[30mWARNING�[33m]�[m �[1mProxy environment variables detected. We'll use your proxy for fetch requests.�[8;1H�[?25h�[22m
00004|  ⛅️ wrangler 4.90.0�[38;2;255;136;0m
00005| ───────────────────
00006| �[mUsing secrets defined in .dev.vars
00007| �[?25lYour Worker has access to the following bindings:�[2m
00008| Binding�[22m�[65X�[2m�[65CResource�[22m�[18X�[2m�[18CMode�[37m�[22m
00009| env.SUBSCRIPTIONS �[m(�[2m5d719287afde409cb0d1b14a6ac35b6f�[22m)�[20X�[38;2;189;91;8m�[20CKV Namespace�[14X�[34m�[14Clocal�[37m
00010| env.VAPID_PUBLIC_KEY �[m(�[2m"BPmnIMURw_-4ZhdbSFwOo2omSCGYXsJm-SIe4..."�[22m)       �[38;2;189;91;8mEnvironment Variable      �[34mlocal�[37m
00011| env.VAPID_SUBJECT �[m(�[2m"mailto:272077995@qq.com"�[22m)�[27X�[38;2;189;91;8m�[27CEnvironment Variable      �[34mlocal�[37m
00012| env.VAPID_PRIVATE_KEY �[m(�[2m"(hidden)"�[22m)�[38X�[38;2;189;91;8m�[38CEnvironment Variable      �[34mlocal�[19;1H�[?25h�[m╭──────────────────────────────────────────────────────────────────────────────────────────────╮
00013| │  [b] �[2mopen a browser�[22m [d] �[2mopen devtools�[22m [e] �[2mopen local explorer�[22m [c] �[2mclear console�[22m [x] �[2mto exit�[22m  │
00014| ╰──────────────────────────────────────────────────────────────────────────────────────────────╯
00015| �[2m⎔ Starting local server...
00016| �[22m�[?25l�[33m▲ �[43m[�[30mWARNING�[33m]�[m �[1mScheduled Workers are not automatically triggered during local development.�[22m�[25;1H  To manually trigger a scheduled event, run:
00017|     curl "http://127.0.0.1:8787/cdn-cgi/handler/scheduled"
00018|   For more details, see
00019|   �[4mhttps://developers.cloudflare.com/workers/configuration/cron-triggers/#test-cron-triggers-locally�[31;1H�[?25h�[24m�[32m[wrangler:info] �[mReady on �[32mhttp://127.0.0.1:8787

(End of buffer - total 19 lines)
</pty_output>

Assistant (Build · MiniMax M2.5 Free · 7.9s)

Thinking:

The dev server is running successfully on http://127.0.0.1:8787


Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions