Skip to content

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

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


Activity

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

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions