summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAiden Cline <[email protected]>2025-11-03 22:36:01 -0600
committerAiden Cline <[email protected]>2025-11-03 22:36:10 -0600
commitf5015017911c81c6d89d0a3dcdbe475b948c6829 (patch)
tree2d60d5254a123c3bc472a9b30a4fd70b153b7605
parentc103052f937362c6a01aee896c0e37e886f8f467 (diff)
downloadopencode-f5015017911c81c6d89d0a3dcdbe475b948c6829.tar.gz
opencode-f5015017911c81c6d89d0a3dcdbe475b948c6829.zip
fix: piping
-rw-r--r--packages/opencode/src/cli/cmd/tui/app.tsx3
-rw-r--r--packages/opencode/src/cli/cmd/tui/thread.ts8
2 files changed, 10 insertions, 1 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/app.tsx b/packages/opencode/src/cli/cmd/tui/app.tsx
index 03aa5df60..7938ec86f 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 1c2baeff4..0ceb87ea6 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)
},