summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-04-01 22:27:09 -0400
committerGitHub <[email protected]>2026-04-02 02:27:09 +0000
commit2e8e278441e185d6282352b2fa27e0205406ed46 (patch)
tree557b505dfd1b8afce7372aa70dadbd40b2fcf1b1
parent0bae38c0622dca3235ae4f88f0d8af68085c1eb8 (diff)
downloadopencode-2e8e278441e185d6282352b2fa27e0205406ed46.tar.gz
opencode-2e8e278441e185d6282352b2fa27e0205406ed46.zip
fix(cli): use simple logo in CLI (#20585)
-rw-r--r--packages/opencode/src/cli/ui.ts54
1 files changed, 11 insertions, 43 deletions
diff --git a/packages/opencode/src/cli/ui.ts b/packages/opencode/src/cli/ui.ts
index 39396997c..c592d4206 100644
--- a/packages/opencode/src/cli/ui.ts
+++ b/packages/opencode/src/cli/ui.ts
@@ -1,9 +1,15 @@
import z from "zod"
import { EOL } from "os"
import { NamedError } from "@opencode-ai/util/error"
-import { logo as glyphs } from "./logo"
export namespace UI {
+ const wordmark = [
+ `⠀ ▄ `,
+ `█▀▀█ █▀▀█ █▀▀█ █▀▀▄ █▀▀▀ █▀▀█ █▀▀█ █▀▀█`,
+ `█ █ █ █ █▀▀▀ █ █ █ █ █ █ █ █▀▀▀`,
+ `▀▀▀▀ █▀▀▀ ▀▀▀▀ ▀ ▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀`,
+ ]
+
export const CancelledError = NamedError.create("UICancelledError", z.void())
export const Style = {
@@ -41,50 +47,12 @@ export namespace UI {
}
export function logo(pad?: string) {
- const result: string[] = []
- const reset = "\x1b[0m"
- const left = {
- fg: "\x1b[90m",
- shadow: "\x1b[38;5;235m",
- bg: "\x1b[48;5;235m",
- }
- const right = {
- fg: reset,
- shadow: "\x1b[38;5;238m",
- bg: "\x1b[48;5;238m",
- }
- const gap = " "
- const draw = (line: string, fg: string, shadow: string, bg: string) => {
- const parts: string[] = []
- for (const char of line) {
- if (char === "_") {
- parts.push(bg, " ", reset)
- continue
- }
- if (char === "^") {
- parts.push(fg, bg, "▀", reset)
- continue
- }
- if (char === "~") {
- parts.push(shadow, "▀", reset)
- continue
- }
- if (char === " ") {
- parts.push(" ")
- continue
- }
- parts.push(fg, char, reset)
- }
- return parts.join("")
- }
- glyphs.left.forEach((row, index) => {
+ const result = []
+ for (const row of wordmark) {
if (pad) result.push(pad)
- result.push(draw(row, left.fg, left.shadow, left.bg))
- result.push(gap)
- const other = glyphs.right[index] ?? ""
- result.push(draw(other, right.fg, right.shadow, right.bg))
+ result.push(row)
result.push(EOL)
- })
+ }
return result.join("").trimEnd()
}