shekohex / shekohex/opencode-pty
[Bug]: can't run npm script directly in background
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 582
- Forks
- 59
- Avg merge
- 13h 20m
- Merged PRs (30d)
- 2
Description
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:
- Configure plugin in opencode.json
- Run opencode
- Use pty_spawn with '...'
- 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
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the Windows 11 case with pty_spawn: compare launching npm run dev directly against launching it through pwsh -Command. The issue is done when the direct npm invocation starts the background dev server successfully, matching the working PowerShell path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- bun, typescript
- Domain
- cli, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100