diff --git a/packages/opencode/src/cli/cmd/serve.ts b/packages/opencode/src/cli/cmd/serve.ts index 5b2a867e9..bf9ec8f6a 100644 --- a/packages/opencode/src/cli/cmd/serve.ts +++ b/packages/opencode/src/cli/cmd/serve.ts @@ -3,12 +3,29 @@ import { cmd } from "./cmd" import { withNetworkOptions, resolveNetworkOptions } from "../network" import { Flag } from "../../flag/flag" import { Instance } from "../../project/instance" // kilocode_change +import path from "path" export const ServeCommand = cmd({ - command: "serve", - builder: (yargs) => withNetworkOptions(yargs), + command: "serve [project]", + builder: (yargs) => + withNetworkOptions(yargs).positional("project", { + type: "string", + describe: "path to start kilo server in", // kilocode_change + }), describe: "starts a headless kilo server", // kilocode_change handler: async (args) => { + if (args.project) { + const cwd = path.resolve(args.project) + try { + process.chdir(cwd) + } catch (error) { + const message = error instanceof Error ? error.message : "unknown error" + console.error(`Failed to change directory to ${cwd}: ${message}`) + process.exitCode = 1 + return + } + } + if (!Flag.KILO_SERVER_PASSWORD) { console.log("Warning: KILO_SERVER_PASSWORD is not set; server is unsecured.") }