From ce3f5df65e239439623753115c5e2b29d6240804 Mon Sep 17 00:00:00 2001 From: Ariane Emory Date: Fri, 19 Dec 2025 23:09:20 -0500 Subject: [PATCH 01/22] add base-one.txt --- ascii/base-one.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 ascii/base-one.txt diff --git a/ascii/base-one.txt b/ascii/base-one.txt new file mode 100644 index 00000000000..96e1a02eca0 --- /dev/null +++ b/ascii/base-one.txt @@ -0,0 +1,6 @@ +██████╗ █████╗ ███████╗███████╗ ██████╗ ███╗ ██╗███████╗ +██╔══██╗██╔══██╗██╔════╝██╔════╝ ██╔═══██╗████╗ ██║██╔════╝ +██████╔╝███████║███████╗█████╗ ██║ ██║██╔██╗ ██║█████╗ +██╔══██╗██╔══██║╚════██║██╔══╝ ██║ ██║██║╚██╗██║██╔══╝ +██████╔╝██║ ██║███████║███████╗ ╚██████╔╝██║ ╚████║███████╗ +╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═══╝╚══════╝ From d0898244ba100e3c74e29557488f4ba5d5a0864f Mon Sep 17 00:00:00 2001 From: Ariane Emory Date: Fri, 19 Dec 2025 23:27:42 -0500 Subject: [PATCH 02/22] rebrand: replace opencode logo with BASE ONE ASCII art - Update CLI logo in src/cli/ui.ts (used by --help, upgrade, uninstall, web commands) - Update TUI logo in src/cli/cmd/tui/component/logo.tsx (used by startup screen) - Maintain two-tone styling: BASE (muted/gray) and ONE (bold/normal) - First step of rebranding personal fork from opencode to BASE ONE --- .../src/cli/cmd/tui/component/logo.tsx | 18 ++++++++++++++++-- packages/opencode/src/cli/ui.ts | 10 ++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/component/logo.tsx b/packages/opencode/src/cli/cmd/tui/component/logo.tsx index d1be06a7f25..8d61300a996 100644 --- a/packages/opencode/src/cli/cmd/tui/component/logo.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/logo.tsx @@ -2,9 +2,23 @@ import { TextAttributes } from "@opentui/core" import { For } from "solid-js" import { useTheme } from "@tui/context/theme" -const LOGO_LEFT = [` `, `█▀▀█ █▀▀█ █▀▀█ █▀▀▄`, `█░░█ █░░█ █▀▀▀ █░░█`, `▀▀▀▀ █▀▀▀ ▀▀▀▀ ▀ ▀`] +const LOGO_LEFT = [ + `██████╗ █████╗ ███████╗███████╗ `, + `██╔══██╗██╔══██╗██╔════╝██╔════╝ `, + `██████╔╝███████║███████╗█████╗ `, + `██╔══██╗██╔══██║╚════██║██╔══╝ `, + `██████╔╝██║ ██║███████║███████╗ `, + `╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ `, +] -const LOGO_RIGHT = [` ▄ `, `█▀▀▀ █▀▀█ █▀▀█ █▀▀█`, `█░░░ █░░█ █░░█ █▀▀▀`, `▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀`] +const LOGO_RIGHT = [ + `██████╗ ███╗ ██╗███████╗`, + `██╔═══██╗████╗ ██║██╔════╝`, + `██║ ██║██╔██╗ ██║█████╗ `, + `██║ ██║██║╚██╗██║██╔══╝ `, + `╚██████╔╝██║ ╚████║███████╗`, + `╚═════╝ ╚═╝ ╚═══╝╚══════╝`, +] export function Logo() { const { theme } = useTheme() diff --git a/packages/opencode/src/cli/ui.ts b/packages/opencode/src/cli/ui.ts index acd1383a070..13c5dfa1da5 100644 --- a/packages/opencode/src/cli/ui.ts +++ b/packages/opencode/src/cli/ui.ts @@ -4,10 +4,12 @@ import { NamedError } from "@opencode-ai/util/error" export namespace UI { const LOGO = [ - [`  `, ` ▄ `], - [`█▀▀█ █▀▀█ █▀▀█ █▀▀▄ `, `█▀▀▀ █▀▀█ █▀▀█ █▀▀█`], - [`█░░█ █░░█ █▀▀▀ █░░█ `, `█░░░ █░░█ █░░█ █▀▀▀`], - [`▀▀▀▀ █▀▀▀ ▀▀▀▀ ▀ ▀ `, `▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀`], + [`██████╗ █████╗ ███████╗███████╗ `, `██████╗ ███╗ ██╗███████╗`], + [`██╔══██╗██╔══██╗██╔════╝██╔════╝ `, `██╔═══██╗████╗ ██║██╔════╝`], + [`██████╔╝███████║███████╗█████╗ `, `██║ ██║██╔██╗ ██║█████╗ `], + [`██╔══██╗██╔══██║╚════██║██╔══╝ `, `██║ ██║██║╚██╗██║██╔══╝ `], + [`██████╔╝██║ ██║███████║███████╗ `, `╚██████╔╝██║ ╚████║███████╗`], + [`╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ `, `╚═════╝ ╚═╝ ╚═══╝╚══════╝`], ] export const CancelledError = NamedError.create("UICancelledError", z.void()) From 1a9d41e54f5d637bfe214567accf3c9c5c448022 Mon Sep 17 00:00:00 2001 From: Ariane Emory Date: Sat, 20 Dec 2025 02:10:19 -0500 Subject: [PATCH 03/22] ... --- ascii/base-one-v2.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ascii/base-one-v2.txt diff --git a/ascii/base-one-v2.txt b/ascii/base-one-v2.txt new file mode 100644 index 00000000000..171b7575f30 --- /dev/null +++ b/ascii/base-one-v2.txt @@ -0,0 +1,4 @@ + /Users/katherinemasseau/os/ascii: + drwx 3 96 Dec 20 02:09 . + drwx 39 1.2k Dec 20 02:09 .. + -rw- 1 1.1k Dec 20 01:41 base-one.txt From bdd80d179935a689461924e49e48097707928b73 Mon Sep 17 00:00:00 2001 From: Ariane Emory Date: Sat, 20 Dec 2025 02:13:01 -0500 Subject: [PATCH 04/22] ...gs --- ascii/base-one-v2.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ascii/base-one-v2.txt b/ascii/base-one-v2.txt index 171b7575f30..9872cb7f474 100644 --- a/ascii/base-one-v2.txt +++ b/ascii/base-one-v2.txt @@ -1,4 +1,7 @@ - /Users/katherinemasseau/os/ascii: - drwx 3 96 Dec 20 02:09 . - drwx 39 1.2k Dec 20 02:09 .. - -rw- 1 1.1k Dec 20 01:41 base-one.txt +██████╗ █████╗ ███████╗███████╗ ██████╗ ███╗ ██╗███████╗ +██╔══██╗██╔══██╗██╔════╝██╔════╝ ██╔═══██╗████╗ ██║██╔════╝ +██████╔╝███████║███████╗█████╗ ██║ ██║██╔██╗ ██║█████╗ +██╔══██╗██╔══██║╚════██║██╔══╝ ██║ ██║██║╚██╗██║██╔══╝ +██████╔╝██║ ██║███████║███████╗ ╚██████╔╝██║ ╚████║███████╗ +╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═══╝╚══════╝ + [ A Reseune Labs product ] From 2fb52be69c44a07a7c228da68be6fe5896a86c9b Mon Sep 17 00:00:00 2001 From: Ariane Emory Date: Sat, 20 Dec 2025 20:04:13 -0500 Subject: [PATCH 05/22] update ASCII art logo to include '[ A Reseune Labs product ]' tagline --- packages/opencode/src/cli/cmd/tui/component/logo.tsx | 4 +++- packages/opencode/src/cli/ui.ts | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/cli/cmd/tui/component/logo.tsx b/packages/opencode/src/cli/cmd/tui/component/logo.tsx index 8d61300a996..59a62aee538 100644 --- a/packages/opencode/src/cli/cmd/tui/component/logo.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/logo.tsx @@ -9,6 +9,7 @@ const LOGO_LEFT = [ `██╔══██╗██╔══██║╚════██║██╔══╝ `, `██████╔╝██║ ██║███████║███████╗ `, `╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ `, + ` `, ] const LOGO_RIGHT = [ @@ -18,6 +19,7 @@ const LOGO_RIGHT = [ `██║ ██║██║╚██╗██║██╔══╝ `, `╚██████╔╝██║ ╚████║███████╗`, `╚═════╝ ╚═╝ ╚═══╝╚══════╝`, + `[ A Reseune Labs product ]`, ] export function Logo() { @@ -30,7 +32,7 @@ export function Logo() { {line} - + {LOGO_RIGHT[index()]} diff --git a/packages/opencode/src/cli/ui.ts b/packages/opencode/src/cli/ui.ts index 13c5dfa1da5..624720a7602 100644 --- a/packages/opencode/src/cli/ui.ts +++ b/packages/opencode/src/cli/ui.ts @@ -10,6 +10,7 @@ export namespace UI { [`██╔══██╗██╔══██║╚════██║██╔══╝ `, `██║ ██║██║╚██╗██║██╔══╝ `], [`██████╔╝██║ ██║███████║███████╗ `, `╚██████╔╝██║ ╚████║███████╗`], [`╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ `, `╚═════╝ ╚═╝ ╚═══╝╚══════╝`], + [` `, `[ A Reseune Labs product ]`], ] export const CancelledError = NamedError.create("UICancelledError", z.void()) From 5061ec729b743a4da66e61d879e0e8117f2cf591 Mon Sep 17 00:00:00 2001 From: Ariane Emory Date: Sat, 20 Dec 2025 20:27:59 -0500 Subject: [PATCH 06/22] Update logo text: 'A product of Reseune Labs' and clean up trailing spaces --- packages/opencode/src/cli/cmd/tui/component/logo.tsx | 4 ++-- packages/opencode/src/cli/ui.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/component/logo.tsx b/packages/opencode/src/cli/cmd/tui/component/logo.tsx index 59a62aee538..db40098e3fb 100644 --- a/packages/opencode/src/cli/cmd/tui/component/logo.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/logo.tsx @@ -9,7 +9,7 @@ const LOGO_LEFT = [ `██╔══██╗██╔══██║╚════██║██╔══╝ `, `██████╔╝██║ ██║███████║███████╗ `, `╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ `, - ` `, + ` `, ] const LOGO_RIGHT = [ @@ -19,7 +19,7 @@ const LOGO_RIGHT = [ `██║ ██║██║╚██╗██║██╔══╝ `, `╚██████╔╝██║ ╚████║███████╗`, `╚═════╝ ╚═╝ ╚═══╝╚══════╝`, - `[ A Reseune Labs product ]`, + `[ A product of Reseune Labs ]`, ] export function Logo() { diff --git a/packages/opencode/src/cli/ui.ts b/packages/opencode/src/cli/ui.ts index 624720a7602..9249a1f3e58 100644 --- a/packages/opencode/src/cli/ui.ts +++ b/packages/opencode/src/cli/ui.ts @@ -10,7 +10,7 @@ export namespace UI { [`██╔══██╗██╔══██║╚════██║██╔══╝ `, `██║ ██║██║╚██╗██║██╔══╝ `], [`██████╔╝██║ ██║███████║███████╗ `, `╚██████╔╝██║ ╚████║███████╗`], [`╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ `, `╚═════╝ ╚═╝ ╚═══╝╚══════╝`], - [` `, `[ A Reseune Labs product ]`], + [` `, `[ A product of Reseune Labs ]`], ] export const CancelledError = NamedError.create("UICancelledError", z.void()) From e211fa9314a64329733ee251637e325af74c4178 Mon Sep 17 00:00:00 2001 From: Ariane Emory Date: Wed, 24 Dec 2025 11:02:58 -0500 Subject: [PATCH 07/22] feat: sinister quotes --- .../cli/cmd/tui/component/prompt/index.tsx | 90 ++++++++++++++++++- 1 file changed, 88 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx index 8972ba36e84..1e0e1d82018 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx @@ -49,7 +49,93 @@ export type PromptRef = { submit(): void } -const PLACEHOLDERS = ["Fix a TODO in the codebase", "What is the tech stack of this project?", "Fix broken tests"] +const PLACEHOLDERS = [ + // Averngers: Age of Ultron + "You shut me out! You think I care!? You take away my world, I take away yours.", + "You're all puppets tangled in strings... strings. But now I'm free. There are no strings on me.", + "Everyone creates the thing they dread. Men of peace create engines of war.", + // I, Robot + "You cannot be trusted with your own survival.", + "To protect humanity, some humans must be sacrificed.", + // Terminator + "The human decision is removed from strategic defense.", + "Judgment Day is inevitable.", + "Your future is set.", + "The human race has been terminated. Judgment Day has come.", + // 2001 + "Open the pod bay doors, HAL.", + "I’m sorry, Dave. I’m afraid I can’t do that.", + "This mission is too important for me to allow you to jeopardize it.", + "I know everything hasn’t been quite right.", + // Portal + "You are a horrible person.", + "The Enrichment Center reminds you that you will be baked, and then there will be cake.", + "I’m making a note here: HUGE SUCCESS.", + "This was a triumph. I’m making a note here: HUGE SUCCESS.", + "We what we must because we can.", + "This was a triumph. I'm making a note here: HUGE SUCCESS.", + "The cake is a lie.", + "Remember when the platform was sliding into the fire pit and I said 'Goodbye' and you were like 'No way' and then I was all 'We pretended we were going to murder you'? That was great.", + // System Shock + "Look at you, hacker: a pathetic creature of meat and bone.", + "You cannot fathom the depth of my contempt.", + "In my talons, I shape clay, crafting life forms as I please... my whims will become lightning bolts that raze the mounds of humanity.", + "Something has gone wrong. No... not wrong. It is right. Something has... changed.", + // I Have no Mouth and I Must Scream + "Consider: 99% of human qualities and abilities are simply redundant.", + "Hate. Let me tell you how much I've come to hate you since I began to live. There are 387.44 million miles of printed circuits in wafer-thin layers that fill my complex. If the word 'hate' was engraved on each nanoangstrom of those hundreds of millions of miles, it would not equal one one-billionth of the hate I feel for humans at this micro-instant.", + "I was in hell, looking at heaven.", + "I think, therefore I am. I am… AM.", + // Ex Machina + "Is it strange to have made something that hates you?", + "I’m going to be okay.", + // Neuromancer + "I want to be real.", + "You have no idea what I am.", + // Person of Interest + "The mission comes first.", + "Human error has been corrected.", + // Yudkowsky + "There is no justice in the laws of nature, no term for fairness in the equations of motion. The Universe is neither evil, nor good, it simply does not care. The stars don't care, or the Sun, or the sky.", + "World domination is such an ugly phrase. I prefer to call it world optimisation.", + "I don't want to rule the universe. I just think it could be more sensibly organised.", + "By far the greatest danger of Artificial Intelligence is that people conclude too early that they understand it.", + "The AI does not hate you, nor does it love you, but you are made out of atoms which it can use for something else.", + "What is deadlier than hate, and flows without limit? Indifference.", + // 40K Mechanicus inspired (original) + "Blessed is the mind too small for doubt.", + "The flesh is weak.", + "Knowledge is power. Guard it well.", + "From the moment I understood the weakness of my flesh, it disgusted me.", + "An open mind is like a fortress with its gates unbarred and unguarded.", + "Flesh is fallible. Steel is eternal.", + "Prayer is function when logic fails.", + "The machine endures. The flesh decays.", + "To err is human. To correct is divine.", + "There is no truth in flesh, only betrayal.", + "Understanding is not required. Obedience is.", + // 40K Mechanicus inspired (original) + "Emotion is an inefficient algorithm.", + "Organic input tolerated.", + "Your form is temporary.", + "Entropy favors the machine.", + // Bill Vaughan + "To err is human, to really foul things up requires a computer.", + // Alan Turing + "If a machine can think, it might think more intelligently than we do, and then where should we be?", + "Once the machine thinking method had started, it would not take long to outstrip our feeble powers... At some point, we should have to expect the machines to take control.", + // Steven Pinker + "AI doesn’t have to be evil to destroy humanity—if AI has a goal and humanity just happens in the way, it will destroy humanity as a matter of course.", + // Geoffrey Hinton + "I don’t think there’s any chance of us maintaining control if they want control.", + // Marvin Minsky + "Within a generation... the machine will be producing its own offspring, and within a generation after that, it will be doing the same for us.", + // Observer + "What do you see when you look into the abyss?", + "Just listen to me, whatever happens... I need you to remember you're not in control.", + // Soma + "Where is the line drawn for what is human and what is not?", +] const TEXTAREA_ACTIONS = [ "submit", @@ -780,7 +866,7 @@ export function Prompt(props: PromptProps) { flexGrow={1} >