From f5015017911c81c6d89d0a3dcdbe475b948c6829 Mon Sep 17 00:00:00 2001 From: Aiden Cline Date: Mon, 3 Nov 2025 22:36:01 -0600 Subject: [PATCH] fix: piping --- packages/opencode/src/cli/cmd/tui/app.tsx | 3 +++ packages/opencode/src/cli/cmd/tui/thread.ts | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/cli/cmd/tui/app.tsx b/packages/opencode/src/cli/cmd/tui/app.tsx index 03aa5df6..7938ec86 100644 --- a/packages/opencode/src/cli/cmd/tui/app.tsx +++ b/packages/opencode/src/cli/cmd/tui/app.tsx @@ -30,6 +30,9 @@ import { TuiEvent } from "./event" import { KVProvider, useKV } from "./context/kv" async function getTerminalBackgroundColor(): Promise<"dark" | "light"> { + // can't set raw mode if not a TTY + if (!process.stdin.isTTY) return "dark" + return new Promise((resolve) => { let timeout: NodeJS.Timeout diff --git a/packages/opencode/src/cli/cmd/tui/thread.ts b/packages/opencode/src/cli/cmd/tui/thread.ts index 1c2baeff..0ceb87ea 100644 --- a/packages/opencode/src/cli/cmd/tui/thread.ts +++ b/packages/opencode/src/cli/cmd/tui/thread.ts @@ -52,6 +52,12 @@ export const TuiThreadCommand = cmd({ default: "127.0.0.1", }), handler: async (args) => { + const prompt = await (async () => { + const piped = !process.stdin.isTTY ? await Bun.stdin.text() : undefined + if (!args.prompt) return piped + return piped ? piped + "\n" + args.prompt : args.prompt + })() + const cwd = args.project ? path.resolve(args.project) : process.cwd() try { process.chdir(cwd) @@ -106,7 +112,7 @@ export const TuiThreadCommand = cmd({ sessionID, model: args.model, agent: args.agent, - prompt: args.prompt, + prompt, onExit: async () => { await client.call("shutdown", undefined) },