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) },