From 718103a9a1fbe4ef03900a5c2a47fc04a300a252 Mon Sep 17 00:00:00 2001 From: lixuetao <694429613@qq.com> Date: Sat, 21 Feb 2026 21:59:32 +0800 Subject: [PATCH] feat(cli): add --global flag to session list command - Add --global / -g option to list sessions across all projects - Reuse formatSessionTable/JSON for output (directory field shows project) --- packages/opencode/src/cli/cmd/session.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/opencode/src/cli/cmd/session.ts b/packages/opencode/src/cli/cmd/session.ts index 4aa702359d17..158e993baeb4 100644 --- a/packages/opencode/src/cli/cmd/session.ts +++ b/packages/opencode/src/cli/cmd/session.ts @@ -77,6 +77,12 @@ export const SessionListCommand = cmd({ describe: "limit to N most recent sessions", type: "number", }) + .option("global", { + alias: "g", + describe: "list sessions across all projects", + type: "boolean", + default: false, + }) .option("format", { describe: "output format", type: "string", @@ -86,18 +92,15 @@ export const SessionListCommand = cmd({ }, handler: async (args) => { await bootstrap(process.cwd(), async () => { - const sessions = [...Session.list({ roots: true, limit: args.maxCount })] + const sessions = args.global + ? [...Session.listGlobal({ limit: args.maxCount })] + : [...Session.list({ roots: true, limit: args.maxCount })] if (sessions.length === 0) { return } - let output: string - if (args.format === "json") { - output = formatSessionJSON(sessions) - } else { - output = formatSessionTable(sessions) - } + const output = args.format === "json" ? formatSessionJSON(sessions) : formatSessionTable(sessions) const shouldPaginate = process.stdout.isTTY && !args.maxCount && args.format === "table"