diff --git a/packages/opencode/src/cli/cmd/serve.ts b/packages/opencode/src/cli/cmd/serve.ts index 657f9196c96..e5b309f311d 100644 --- a/packages/opencode/src/cli/cmd/serve.ts +++ b/packages/opencode/src/cli/cmd/serve.ts @@ -1,13 +1,21 @@ import { Server } from "../../server/server" import { cmd } from "./cmd" import { withNetworkOptions, resolveNetworkOptions } from "../network" +import path from "path" export const ServeCommand = cmd({ - command: "serve", - builder: (yargs) => withNetworkOptions(yargs), + command: "serve [cwd]", + builder: (yargs) => + withNetworkOptions(yargs).positional("cwd", { + type: "string", + describe: "path to start opencode server in", + }), describe: "starts a headless opencode server", handler: async (args) => { const opts = await resolveNetworkOptions(args) + if (args.cwd) { + process.chdir(args.cwd) + } const server = Server.listen(opts) console.log(`opencode server listening on http://${server.hostname}:${server.port}`) await new Promise(() => {})