From 4ba2bac7a250c015a0a5c5d2e4e76853679cd3b8 Mon Sep 17 00:00:00 2001 From: Aarav Sharma Date: Thu, 11 Jun 2026 13:34:49 -0600 Subject: [PATCH 1/2] feat(cli): warn when --port is outside discovery range Print a yellow non-fatal warning when kilo console or kilo daemon start/restart is invoked with an explicit --port outside 4097-4116. Auto-discovery only scans that window, so an out-of-range port can silently break later manual or auto-connect attempts. Implementation stays entirely in Kilo-owned files to avoid touching upstream shared code: - Added packages/opencode/src/kilocode/cli/port-warning.ts helper exporting warnPort(port), which skips port 0 (auto-pick) and emits a yellow console.warn when the explicit port is outside Daemon.PortRange. - Hooks the helper from console.ts and daemon.ts (start/restart) The command still succeeds; the warning is informational only. --- packages/opencode/src/kilocode/cli/cmd/console.ts | 2 ++ packages/opencode/src/kilocode/cli/cmd/daemon.ts | 3 +++ packages/opencode/src/kilocode/cli/port-warning.ts | 11 +++++++++++ 3 files changed, 16 insertions(+) create mode 100644 packages/opencode/src/kilocode/cli/port-warning.ts diff --git a/packages/opencode/src/kilocode/cli/cmd/console.ts b/packages/opencode/src/kilocode/cli/cmd/console.ts index 8c8f6a27e8a..4cb8b2b1327 100644 --- a/packages/opencode/src/kilocode/cli/cmd/console.ts +++ b/packages/opencode/src/kilocode/cli/cmd/console.ts @@ -3,6 +3,7 @@ import { cmd } from "@/cli/cmd/cmd" import { withNetworkOptions, resolveNetworkOptions } from "@/cli/network" import { AppRuntime } from "@/effect/app-runtime" import { Daemon } from "@/kilocode/daemon/daemon" +import { warnPort } from "@/kilocode/cli/port-warning" function publicUrl(state: Daemon.State) { return new URL("/console", state.url).toString() @@ -41,6 +42,7 @@ export const KiloConsoleCommand = cmd({ builder: (yargs) => withNetworkOptions(yargs), handler: async (args) => { const opts = await AppRuntime.runPromise(resolveNetworkOptions(args)) + warnPort(opts.port) const result = await Daemon.start(opts) const state = result.state if (!state) throw new Error("Kilo daemon did not provide connection state") diff --git a/packages/opencode/src/kilocode/cli/cmd/daemon.ts b/packages/opencode/src/kilocode/cli/cmd/daemon.ts index d295d2d4d4e..4561397c247 100644 --- a/packages/opencode/src/kilocode/cli/cmd/daemon.ts +++ b/packages/opencode/src/kilocode/cli/cmd/daemon.ts @@ -3,6 +3,7 @@ import { cmd } from "@/cli/cmd/cmd" import { withNetworkOptions, resolveNetworkOptions } from "@/cli/network" import { AppRuntime } from "@/effect/app-runtime" import { Daemon } from "@/kilocode/daemon/daemon" +import { warnPort } from "@/kilocode/cli/port-warning" function withJson(yargs: Argv) { return yargs.option("json", { @@ -60,6 +61,7 @@ const StartCommand = cmd({ builder: (yargs) => withJson(withNetworkOptions(yargs)), handler: async (args) => { const opts = await AppRuntime.runPromise(resolveNetworkOptions(args)) + warnPort(opts.port) const result = await Daemon.start(opts) if (args.json) { print(result, true) @@ -99,6 +101,7 @@ const RestartCommand = cmd({ builder: (yargs) => withJson(withNetworkOptions(yargs)), handler: async (args) => { const opts = await AppRuntime.runPromise(resolveNetworkOptions(args)) + warnPort(opts.port) const result = await Daemon.restart(opts) if (args.json) { print(result, true) diff --git a/packages/opencode/src/kilocode/cli/port-warning.ts b/packages/opencode/src/kilocode/cli/port-warning.ts new file mode 100644 index 00000000000..afba3dd5632 --- /dev/null +++ b/packages/opencode/src/kilocode/cli/port-warning.ts @@ -0,0 +1,11 @@ +import { Daemon } from "@/kilocode/daemon/daemon" + +export function warnPort(port: number) { + if (port === 0) return + if (port < Daemon.PortRange.start || port > Daemon.PortRange.end) { + console.warn( + `\x1B[33mPort ${port} is outside the recommended daemon discovery range (${Daemon.PortRange.start}-${Daemon.PortRange.end}). ` + + `The console will work, but auto-discovery may not find this server.\x1B[0m`, + ) + } +} From 12144cf8275200a7dd8e29cf478c39504da59b04 Mon Sep 17 00:00:00 2001 From: Aarav Sharma Date: Thu, 11 Jun 2026 20:54:28 -0600 Subject: [PATCH 2/2] chore: add changeset for port discovery warning --- .changeset/feat-cli-port-discovery-warning.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/feat-cli-port-discovery-warning.md diff --git a/.changeset/feat-cli-port-discovery-warning.md b/.changeset/feat-cli-port-discovery-warning.md new file mode 100644 index 00000000000..2cd4bbb1511 --- /dev/null +++ b/.changeset/feat-cli-port-discovery-warning.md @@ -0,0 +1,5 @@ +--- +"@kilocode/cli": patch +--- + +Warn when `kilo console` or `kilo daemon` is invoked with an explicit `--port` outside the discovery range (4097–4116).