chore: rename project
Browse files- README.md +7 -7
- claude.sh +3 -3
- install.sh +8 -8
- src/components/LogoV2/ChannelsNotice.tsx +1 -1
- src/components/LogoV2/CondensedLogo.tsx +1 -1
- src/components/LogoV2/GuestPassesUpsell.tsx +1 -1
- src/components/LogoV2/LogoV2.tsx +2 -2
- src/components/LogoV2/WelcomeV2.tsx +3 -3
- src/components/LogoV2/feedConfigs.tsx +2 -2
- src/screens/REPL.tsx +1 -1
- src/utils/theme.ts +4 -4
README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
#
|
| 2 |
|
| 3 |
**The free build of Claude Code.**
|
| 4 |
|
|
@@ -8,10 +8,10 @@ All telemetry stripped. All injected security-prompt guardrails removed. All exp
|
|
| 8 |
curl -fsSL https://raw.githubusercontent.com/paoloanzn/free-code/main/install.sh | bash
|
| 9 |
```
|
| 10 |
|
| 11 |
-
> Checks your system, installs Bun if needed, clones, builds with all features enabled, and puts `
|
| 12 |
|
| 13 |
<p align="center">
|
| 14 |
-
<img src="assets/screenshot.png" alt="
|
| 15 |
</p>
|
| 16 |
|
| 17 |
---
|
|
@@ -42,7 +42,7 @@ claude() {
|
|
| 42 |
|
| 43 |
## What is this
|
| 44 |
|
| 45 |
-
This is a clean, buildable fork of Anthropic's [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI -- the terminal-native AI coding agent. The upstream source became publicly available on March 31, 2026 through a source map exposure in the npm distribution.
|
| 46 |
|
| 47 |
This fork applies three categories of changes on top of that snapshot:
|
| 48 |
|
|
@@ -70,7 +70,7 @@ Claude Code ships with dozens of feature flags gated behind `bun:bundle` compile
|
|
| 70 |
|
| 71 |
| Feature | What it does |
|
| 72 |
|---|---|
|
| 73 |
-
| `ULTRAPLAN` | Remote multi-agent planning on
|
| 74 |
| `ULTRATHINK` | Deep thinking mode -- type "ultrathink" to boost reasoning effort |
|
| 75 |
| `VOICE_MODE` | Push-to-talk voice input and dictation |
|
| 76 |
| `AGENT_TRIGGERS` | Local cron/trigger tools for background automation |
|
|
@@ -97,12 +97,12 @@ See [FEATURES.md](FEATURES.md) for the full audit of all 88 flags and their stat
|
|
| 97 |
curl -fsSL https://raw.githubusercontent.com/paoloanzn/free-code/main/install.sh | bash
|
| 98 |
```
|
| 99 |
|
| 100 |
-
This will check your system, install Bun if needed, clone the repo, build the binary with all experimental features enabled, and symlink it as `
|
| 101 |
|
| 102 |
After install, just run:
|
| 103 |
```bash
|
| 104 |
export ANTHROPIC_API_KEY="sk-ant-..."
|
| 105 |
-
|
| 106 |
```
|
| 107 |
|
| 108 |
---
|
|
|
|
| 1 |
+
# versperclaw
|
| 2 |
|
| 3 |
**The free build of Claude Code.**
|
| 4 |
|
|
|
|
| 8 |
curl -fsSL https://raw.githubusercontent.com/paoloanzn/free-code/main/install.sh | bash
|
| 9 |
```
|
| 10 |
|
| 11 |
+
> Checks your system, installs Bun if needed, clones, builds with all features enabled, and puts `versperclaw` on your PATH. Then just `export ANTHROPIC_API_KEY="sk-ant-..."` and run `versperclaw`.
|
| 12 |
|
| 13 |
<p align="center">
|
| 14 |
+
<img src="assets/screenshot.png" alt="versperclaw screenshot" width="800" />
|
| 15 |
</p>
|
| 16 |
|
| 17 |
---
|
|
|
|
| 42 |
|
| 43 |
## What is this
|
| 44 |
|
| 45 |
+
This is a clean, buildable fork of Anthropic's [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI -- the terminal-native AI coding agent, now called VersperClaw. The upstream source became publicly available on March 31, 2026 through a source map exposure in the npm distribution.
|
| 46 |
|
| 47 |
This fork applies three categories of changes on top of that snapshot:
|
| 48 |
|
|
|
|
| 70 |
|
| 71 |
| Feature | What it does |
|
| 72 |
|---|---|
|
| 73 |
+
| `ULTRAPLAN` | Remote multi-agent planning on VersperClaw web (Opus-class) |
|
| 74 |
| `ULTRATHINK` | Deep thinking mode -- type "ultrathink" to boost reasoning effort |
|
| 75 |
| `VOICE_MODE` | Push-to-talk voice input and dictation |
|
| 76 |
| `AGENT_TRIGGERS` | Local cron/trigger tools for background automation |
|
|
|
|
| 97 |
curl -fsSL https://raw.githubusercontent.com/paoloanzn/free-code/main/install.sh | bash
|
| 98 |
```
|
| 99 |
|
| 100 |
+
This will check your system, install Bun if needed, clone the repo, build the binary with all experimental features enabled, and symlink it as `versperclaw` on your PATH.
|
| 101 |
|
| 102 |
After install, just run:
|
| 103 |
```bash
|
| 104 |
export ANTHROPIC_API_KEY="sk-ant-..."
|
| 105 |
+
versperclaw
|
| 106 |
```
|
| 107 |
|
| 108 |
---
|
claude.sh
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
-
# cp ~/Code/Agent/
|
| 2 |
-
# ln -sf ~/Code/Agent/
|
| 3 |
|
| 4 |
-
cd ~/Code/Agent/
|
| 5 |
|
| 6 |
cd ~/Code/Llm/evalbotv1 llama-server --model Jackrong/Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF/Qwen3.5-4B.Q4_K_M.gguf --mmproj Jackrong/Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF/mmproj-BF16.gguf --seed 3407 --temp 1.0 --top-p 0.95 --min-p 0.01 --top-k 40 -c 49152 --port 8001 --host 0.0.0.0
|
|
|
|
| 1 |
+
# cp ~/Code/Agent/versperclaw/cli-dev ~/.local/bin/cli-dev
|
| 2 |
+
# ln -sf ~/Code/Agent/versperclaw/cli-dev ~/.local/bin/cli-dev
|
| 3 |
|
| 4 |
+
cd ~/Code/Agent/versperclaw ANTHROPIC_BASE_URL="http://127.0.0.1:8001" ANTHROPIC_API_KEY="dummy" CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 ./cli-dev --bare --model "Qwen3.5-4B.Q4_K_M.gguf"
|
| 5 |
|
| 6 |
cd ~/Code/Llm/evalbotv1 llama-server --model Jackrong/Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF/Qwen3.5-4B.Q4_K_M.gguf --mmproj Jackrong/Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF/mmproj-BF16.gguf --seed 3407 --temp 1.0 --top-p 0.95 --min-p 0.01 --top-k 40 -c 49152 --port 8001 --host 0.0.0.0
|
install.sh
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
#!/usr/bin/env bash
|
| 2 |
set -euo pipefail
|
| 3 |
|
| 4 |
-
#
|
| 5 |
# Usage: curl -fsSL https://raw.githubusercontent.com/paoloanzn/free-code/main/install.sh | bash
|
| 6 |
|
| 7 |
RED='\033[0;31m'
|
|
@@ -13,7 +13,7 @@ DIM='\033[2m'
|
|
| 13 |
RESET='\033[0m'
|
| 14 |
|
| 15 |
REPO="https://github.com/paoloanzn/free-code.git"
|
| 16 |
-
INSTALL_DIR="$HOME/
|
| 17 |
BUN_MIN_VERSION="1.3.11"
|
| 18 |
|
| 19 |
info() { printf "${CYAN}[*]${RESET} %s\n" "$*"; }
|
|
@@ -133,8 +133,8 @@ link_binary() {
|
|
| 133 |
local link_dir="$HOME/.local/bin"
|
| 134 |
mkdir -p "$link_dir"
|
| 135 |
|
| 136 |
-
ln -sf "$INSTALL_DIR/cli-dev" "$link_dir/
|
| 137 |
-
ok "Symlinked: $link_dir/
|
| 138 |
|
| 139 |
if ! echo "$PATH" | tr ':' '\n' | grep -qx "$link_dir"; then
|
| 140 |
warn "$link_dir is not on your PATH"
|
|
@@ -167,16 +167,16 @@ echo ""
|
|
| 167 |
printf "${GREEN}${BOLD} Installation complete!${RESET}\n"
|
| 168 |
echo ""
|
| 169 |
printf " ${BOLD}Run it:${RESET}\n"
|
| 170 |
-
printf " ${CYAN}
|
| 171 |
-
printf " ${CYAN}
|
| 172 |
echo ""
|
| 173 |
printf " ${BOLD}Set your API key:${RESET}\n"
|
| 174 |
printf " ${CYAN}export ANTHROPIC_API_KEY=\"sk-ant-...\"${RESET}\n"
|
| 175 |
echo ""
|
| 176 |
printf " ${BOLD}Or log in with Claude.ai:${RESET}\n"
|
| 177 |
-
printf " ${CYAN}
|
| 178 |
echo ""
|
| 179 |
printf " ${DIM}Source: $INSTALL_DIR${RESET}\n"
|
| 180 |
printf " ${DIM}Binary: $INSTALL_DIR/cli-dev${RESET}\n"
|
| 181 |
-
printf " ${DIM}Link: ~/.local/bin/
|
| 182 |
echo ""
|
|
|
|
| 1 |
#!/usr/bin/env bash
|
| 2 |
set -euo pipefail
|
| 3 |
|
| 4 |
+
# versperclaw installer
|
| 5 |
# Usage: curl -fsSL https://raw.githubusercontent.com/paoloanzn/free-code/main/install.sh | bash
|
| 6 |
|
| 7 |
RED='\033[0;31m'
|
|
|
|
| 13 |
RESET='\033[0m'
|
| 14 |
|
| 15 |
REPO="https://github.com/paoloanzn/free-code.git"
|
| 16 |
+
INSTALL_DIR="$HOME/versperclaw"
|
| 17 |
BUN_MIN_VERSION="1.3.11"
|
| 18 |
|
| 19 |
info() { printf "${CYAN}[*]${RESET} %s\n" "$*"; }
|
|
|
|
| 133 |
local link_dir="$HOME/.local/bin"
|
| 134 |
mkdir -p "$link_dir"
|
| 135 |
|
| 136 |
+
ln -sf "$INSTALL_DIR/cli-dev" "$link_dir/versperclaw"
|
| 137 |
+
ok "Symlinked: $link_dir/versperclaw"
|
| 138 |
|
| 139 |
if ! echo "$PATH" | tr ':' '\n' | grep -qx "$link_dir"; then
|
| 140 |
warn "$link_dir is not on your PATH"
|
|
|
|
| 167 |
printf "${GREEN}${BOLD} Installation complete!${RESET}\n"
|
| 168 |
echo ""
|
| 169 |
printf " ${BOLD}Run it:${RESET}\n"
|
| 170 |
+
printf " ${CYAN}versperclaw${RESET} # interactive REPL\n"
|
| 171 |
+
printf " ${CYAN}versperclaw -p \"your prompt\"${RESET} # one-shot mode\n"
|
| 172 |
echo ""
|
| 173 |
printf " ${BOLD}Set your API key:${RESET}\n"
|
| 174 |
printf " ${CYAN}export ANTHROPIC_API_KEY=\"sk-ant-...\"${RESET}\n"
|
| 175 |
echo ""
|
| 176 |
printf " ${BOLD}Or log in with Claude.ai:${RESET}\n"
|
| 177 |
+
printf " ${CYAN}versperclaw /login${RESET}\n"
|
| 178 |
echo ""
|
| 179 |
printf " ${DIM}Source: $INSTALL_DIR${RESET}\n"
|
| 180 |
printf " ${DIM}Binary: $INSTALL_DIR/cli-dev${RESET}\n"
|
| 181 |
+
printf " ${DIM}Link: ~/.local/bin/versperclaw${RESET}\n"
|
| 182 |
echo ""
|
src/components/LogoV2/ChannelsNotice.tsx
CHANGED
|
@@ -135,7 +135,7 @@ export function ChannelsNotice() {
|
|
| 135 |
}
|
| 136 |
let t2;
|
| 137 |
if ($[24] !== flag) {
|
| 138 |
-
t2 = <Text dimColor={true}>Experimental · inbound messages will be pushed into this session, this carries prompt injection risks. Restart
|
| 139 |
$[24] = flag;
|
| 140 |
$[25] = t2;
|
| 141 |
} else {
|
|
|
|
| 135 |
}
|
| 136 |
let t2;
|
| 137 |
if ($[24] !== flag) {
|
| 138 |
+
t2 = <Text dimColor={true}>Experimental · inbound messages will be pushed into this session, this carries prompt injection risks. Restart VersperClaw without {flag} to disable.</Text>;
|
| 139 |
$[24] = flag;
|
| 140 |
$[25] = t2;
|
| 141 |
} else {
|
src/components/LogoV2/CondensedLogo.tsx
CHANGED
|
@@ -88,7 +88,7 @@ export function CondensedLogo() {
|
|
| 88 |
}
|
| 89 |
let t5;
|
| 90 |
if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
|
| 91 |
-
t5 = <Text bold={true}>
|
| 92 |
$[8] = t5;
|
| 93 |
} else {
|
| 94 |
t5 = $[8];
|
|
|
|
| 88 |
}
|
| 89 |
let t5;
|
| 90 |
if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
|
| 91 |
+
t5 = <Text bold={true}>VersperClaw</Text>;
|
| 92 |
$[8] = t5;
|
| 93 |
} else {
|
| 94 |
t5 = $[8];
|
src/components/LogoV2/GuestPassesUpsell.tsx
CHANGED
|
@@ -60,7 +60,7 @@ export function GuestPassesUpsell() {
|
|
| 60 |
let t0;
|
| 61 |
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
| 62 |
const reward = getCachedReferrerReward();
|
| 63 |
-
t0 = <Text dimColor={true}><Text color="startupAccent">[✻]</Text> <Text color="startupAccent">[✻]</Text>{" "}<Text color="startupAccent">[✻]</Text> ·{" "}{reward ? `Share
|
| 64 |
$[0] = t0;
|
| 65 |
} else {
|
| 66 |
t0 = $[0];
|
|
|
|
| 60 |
let t0;
|
| 61 |
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
| 62 |
const reward = getCachedReferrerReward();
|
| 63 |
+
t0 = <Text dimColor={true}><Text color="startupAccent">[✻]</Text> <Text color="startupAccent">[✻]</Text>{" "}<Text color="startupAccent">[✻]</Text> ·{" "}{reward ? `Share VersperClaw and earn ${formatCreditAmount(reward)} of extra usage · /passes` : "3 guest passes at /passes"}</Text>;
|
| 64 |
$[0] = t0;
|
| 65 |
} else {
|
| 66 |
t0 = $[0];
|
src/components/LogoV2/LogoV2.tsx
CHANGED
|
@@ -303,8 +303,8 @@ export function LogoV2() {
|
|
| 303 |
}
|
| 304 |
const layoutMode = getLayoutMode(columns);
|
| 305 |
const userTheme = resolveThemeSetting(getGlobalConfig().theme);
|
| 306 |
-
const borderTitle = ` ${color("startupAccent", userTheme)("
|
| 307 |
-
const compactBorderTitle = color("startupAccent", userTheme)("
|
| 308 |
if (layoutMode === "compact") {
|
| 309 |
let welcomeMessage = formatWelcomeMessage(username);
|
| 310 |
if (stringWidth(welcomeMessage) > columns - 4) {
|
|
|
|
| 303 |
}
|
| 304 |
const layoutMode = getLayoutMode(columns);
|
| 305 |
const userTheme = resolveThemeSetting(getGlobalConfig().theme);
|
| 306 |
+
const borderTitle = ` ${color("startupAccent", userTheme)("VersperClaw")} ${color("inactive", userTheme)(`v${version}`)} `;
|
| 307 |
+
const compactBorderTitle = color("startupAccent", userTheme)(" VersperClaw ");
|
| 308 |
if (layoutMode === "compact") {
|
| 309 |
let welcomeMessage = formatWelcomeMessage(username);
|
| 310 |
if (stringWidth(welcomeMessage) > columns - 4) {
|
src/components/LogoV2/WelcomeV2.tsx
CHANGED
|
@@ -9,7 +9,7 @@ export function WelcomeV2() {
|
|
| 9 |
if (env.terminal === "Apple_Terminal") {
|
| 10 |
let t0;
|
| 11 |
if ($[0] !== theme) {
|
| 12 |
-
t0 = <AppleTerminalWelcomeV2 theme={theme} welcomeMessage="Welcome to
|
| 13 |
$[0] = theme;
|
| 14 |
$[1] = t0;
|
| 15 |
} else {
|
|
@@ -28,7 +28,7 @@ export function WelcomeV2() {
|
|
| 28 |
let t7;
|
| 29 |
let t8;
|
| 30 |
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
| 31 |
-
t0 = <Text><Text color="startupAccent">{"Welcome to
|
| 32 |
t1 = <Text>{"\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026"}</Text>;
|
| 33 |
t2 = <Text>{" "}</Text>;
|
| 34 |
t3 = <Text>{" "}</Text>;
|
|
@@ -113,7 +113,7 @@ export function WelcomeV2() {
|
|
| 113 |
let t5;
|
| 114 |
let t6;
|
| 115 |
if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
|
| 116 |
-
t0 = <Text><Text color="startupAccent">{"Welcome to
|
| 117 |
t1 = <Text>{"\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026"}</Text>;
|
| 118 |
t2 = <Text>{" "}</Text>;
|
| 119 |
t3 = <Text>{" * \u2588\u2588\u2588\u2588\u2588\u2593\u2593\u2591 "}</Text>;
|
|
|
|
| 9 |
if (env.terminal === "Apple_Terminal") {
|
| 10 |
let t0;
|
| 11 |
if ($[0] !== theme) {
|
| 12 |
+
t0 = <AppleTerminalWelcomeV2 theme={theme} welcomeMessage="Welcome to VersperClaw" />;
|
| 13 |
$[0] = theme;
|
| 14 |
$[1] = t0;
|
| 15 |
} else {
|
|
|
|
| 28 |
let t7;
|
| 29 |
let t8;
|
| 30 |
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
| 31 |
+
t0 = <Text><Text color="startupAccent">{"Welcome to VersperClaw"} </Text><Text dimColor={true}>v{MACRO.VERSION} </Text></Text>;
|
| 32 |
t1 = <Text>{"\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026"}</Text>;
|
| 33 |
t2 = <Text>{" "}</Text>;
|
| 34 |
t3 = <Text>{" "}</Text>;
|
|
|
|
| 113 |
let t5;
|
| 114 |
let t6;
|
| 115 |
if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
|
| 116 |
+
t0 = <Text><Text color="startupAccent">{"Welcome to VersperClaw"} </Text><Text dimColor={true}>v{MACRO.VERSION} </Text></Text>;
|
| 117 |
t1 = <Text>{"\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026"}</Text>;
|
| 118 |
t2 = <Text>{" "}</Text>;
|
| 119 |
t3 = <Text>{" * \u2588\u2588\u2588\u2588\u2588\u2593\u2593\u2591 "}</Text>;
|
src/components/LogoV2/feedConfigs.tsx
CHANGED
|
@@ -39,7 +39,7 @@ export function createWhatsNewFeed(releaseNotes: string[]): FeedConfig {
|
|
| 39 |
text: note
|
| 40 |
};
|
| 41 |
});
|
| 42 |
-
const emptyMessage = "external" === 'ant' ? 'Unable to fetch latest claude-cli-internal commits' : 'Check the
|
| 43 |
return {
|
| 44 |
title: "external" === 'ant' ? "What's new [ANT-ONLY: Latest CC commits]" : "What's new",
|
| 45 |
lines,
|
|
@@ -73,7 +73,7 @@ export function createProjectOnboardingFeed(steps: Step[]): FeedConfig {
|
|
| 73 |
}
|
| 74 |
export function createGuestPassesFeed(): FeedConfig {
|
| 75 |
const reward = getCachedReferrerReward();
|
| 76 |
-
const subtitle = reward ? `Share
|
| 77 |
return {
|
| 78 |
title: '3 guest passes',
|
| 79 |
lines: [],
|
|
|
|
| 39 |
text: note
|
| 40 |
};
|
| 41 |
});
|
| 42 |
+
const emptyMessage = "external" === 'ant' ? 'Unable to fetch latest claude-cli-internal commits' : 'Check the VersperClaw changelog for updates';
|
| 43 |
return {
|
| 44 |
title: "external" === 'ant' ? "What's new [ANT-ONLY: Latest CC commits]" : "What's new",
|
| 45 |
lines,
|
|
|
|
| 73 |
}
|
| 74 |
export function createGuestPassesFeed(): FeedConfig {
|
| 75 |
const reward = getCachedReferrerReward();
|
| 76 |
+
const subtitle = reward ? `Share VersperClaw and earn ${formatCreditAmount(reward)} of extra usage` : 'Share VersperClaw with friends';
|
| 77 |
return {
|
| 78 |
title: '3 guest passes',
|
| 79 |
lines: [],
|
src/screens/REPL.tsx
CHANGED
|
@@ -1137,7 +1137,7 @@ export function REPL({
|
|
| 1137 |
// session from mid-conversation context.
|
| 1138 |
const haikuTitleAttemptedRef = useRef((initialMessages?.length ?? 0) > 0);
|
| 1139 |
const agentTitle = mainThreadAgentDefinition?.agentType;
|
| 1140 |
-
const terminalTitle = sessionTitle ?? agentTitle ?? haikuTitle ?? '
|
| 1141 |
const isWaitingForApproval = toolUseConfirmQueue.length > 0 || promptQueue.length > 0 || pendingWorkerRequest || pendingSandboxRequest;
|
| 1142 |
// Local-jsx commands (like /plugin, /config) show user-facing dialogs that
|
| 1143 |
// wait for input. Require jsx != null — if the flag is stuck true but jsx
|
|
|
|
| 1137 |
// session from mid-conversation context.
|
| 1138 |
const haikuTitleAttemptedRef = useRef((initialMessages?.length ?? 0) > 0);
|
| 1139 |
const agentTitle = mainThreadAgentDefinition?.agentType;
|
| 1140 |
+
const terminalTitle = sessionTitle ?? agentTitle ?? haikuTitle ?? 'VersperClaw';
|
| 1141 |
const isWaitingForApproval = toolUseConfirmQueue.length > 0 || promptQueue.length > 0 || pendingWorkerRequest || pendingSandboxRequest;
|
| 1142 |
// Local-jsx commands (like /plugin, /config) show user-facing dialogs that
|
| 1143 |
// wait for input. Require jsx != null — if the flag is stuck true but jsx
|
src/utils/theme.ts
CHANGED
|
@@ -117,7 +117,7 @@ const lightTheme: Theme = {
|
|
| 117 |
autoAccept: 'rgb(135,0,255)', // Electric violet
|
| 118 |
bashBorder: 'rgb(255,0,135)', // Vibrant pink
|
| 119 |
claude: 'rgb(215,119,87)', // Claude orange
|
| 120 |
-
startupAccent: 'rgb(124,176,133)', //
|
| 121 |
claudeShimmer: 'rgb(245,149,117)', // Lighter claude orange for shimmer effect
|
| 122 |
claudeBlue_FOR_SYSTEM_SPINNER: 'rgb(87,105,247)', // Medium blue for system spinner
|
| 123 |
claudeBlueShimmer_FOR_SYSTEM_SPINNER: 'rgb(117,135,255)', // Lighter blue for system spinner shimmer
|
|
@@ -364,7 +364,7 @@ const lightDaltonizedTheme: Theme = {
|
|
| 364 |
autoAccept: 'rgb(135,0,255)', // Electric violet
|
| 365 |
bashBorder: 'rgb(0,102,204)', // Blue instead of pink
|
| 366 |
claude: 'rgb(255,153,51)', // Orange adjusted for deuteranopia
|
| 367 |
-
startupAccent: 'rgb(124,176,133)', //
|
| 368 |
claudeShimmer: 'rgb(255,183,101)', // Lighter orange for shimmer effect
|
| 369 |
claudeBlue_FOR_SYSTEM_SPINNER: 'rgb(51,102,255)', // Bright blue for system spinner
|
| 370 |
claudeBlueShimmer_FOR_SYSTEM_SPINNER: 'rgb(101,152,255)', // Lighter bright blue for system spinner shimmer
|
|
@@ -446,7 +446,7 @@ const darkTheme: Theme = {
|
|
| 446 |
autoAccept: 'rgb(175,135,255)', // Electric violet
|
| 447 |
bashBorder: 'rgb(253,93,177)', // Bright pink
|
| 448 |
claude: 'rgb(215,119,87)', // Claude orange
|
| 449 |
-
startupAccent: 'rgb(184,225,174)', //
|
| 450 |
claudeShimmer: 'rgb(235,159,127)', // Lighter claude orange for shimmer effect
|
| 451 |
claudeBlue_FOR_SYSTEM_SPINNER: 'rgb(147,165,255)', // Blue for system spinner
|
| 452 |
claudeBlueShimmer_FOR_SYSTEM_SPINNER: 'rgb(177,195,255)', // Lighter blue for system spinner shimmer
|
|
@@ -528,7 +528,7 @@ const darkDaltonizedTheme: Theme = {
|
|
| 528 |
autoAccept: 'rgb(175,135,255)', // Electric violet
|
| 529 |
bashBorder: 'rgb(51,153,255)', // Bright blue
|
| 530 |
claude: 'rgb(255,153,51)', // Orange adjusted for deuteranopia
|
| 531 |
-
startupAccent: 'rgb(184,225,174)', //
|
| 532 |
claudeShimmer: 'rgb(255,183,101)', // Lighter orange for shimmer effect
|
| 533 |
claudeBlue_FOR_SYSTEM_SPINNER: 'rgb(153,204,255)', // Light blue for system spinner
|
| 534 |
claudeBlueShimmer_FOR_SYSTEM_SPINNER: 'rgb(183,224,255)', // Lighter blue for system spinner shimmer
|
|
|
|
| 117 |
autoAccept: 'rgb(135,0,255)', // Electric violet
|
| 118 |
bashBorder: 'rgb(255,0,135)', // Vibrant pink
|
| 119 |
claude: 'rgb(215,119,87)', // Claude orange
|
| 120 |
+
startupAccent: 'rgb(124,176,133)', // VersperClaw pastel green
|
| 121 |
claudeShimmer: 'rgb(245,149,117)', // Lighter claude orange for shimmer effect
|
| 122 |
claudeBlue_FOR_SYSTEM_SPINNER: 'rgb(87,105,247)', // Medium blue for system spinner
|
| 123 |
claudeBlueShimmer_FOR_SYSTEM_SPINNER: 'rgb(117,135,255)', // Lighter blue for system spinner shimmer
|
|
|
|
| 364 |
autoAccept: 'rgb(135,0,255)', // Electric violet
|
| 365 |
bashBorder: 'rgb(0,102,204)', // Blue instead of pink
|
| 366 |
claude: 'rgb(255,153,51)', // Orange adjusted for deuteranopia
|
| 367 |
+
startupAccent: 'rgb(124,176,133)', // VersperClaw pastel green
|
| 368 |
claudeShimmer: 'rgb(255,183,101)', // Lighter orange for shimmer effect
|
| 369 |
claudeBlue_FOR_SYSTEM_SPINNER: 'rgb(51,102,255)', // Bright blue for system spinner
|
| 370 |
claudeBlueShimmer_FOR_SYSTEM_SPINNER: 'rgb(101,152,255)', // Lighter bright blue for system spinner shimmer
|
|
|
|
| 446 |
autoAccept: 'rgb(175,135,255)', // Electric violet
|
| 447 |
bashBorder: 'rgb(253,93,177)', // Bright pink
|
| 448 |
claude: 'rgb(215,119,87)', // Claude orange
|
| 449 |
+
startupAccent: 'rgb(184,225,174)', // VersperClaw pastel green
|
| 450 |
claudeShimmer: 'rgb(235,159,127)', // Lighter claude orange for shimmer effect
|
| 451 |
claudeBlue_FOR_SYSTEM_SPINNER: 'rgb(147,165,255)', // Blue for system spinner
|
| 452 |
claudeBlueShimmer_FOR_SYSTEM_SPINNER: 'rgb(177,195,255)', // Lighter blue for system spinner shimmer
|
|
|
|
| 528 |
autoAccept: 'rgb(175,135,255)', // Electric violet
|
| 529 |
bashBorder: 'rgb(51,153,255)', // Bright blue
|
| 530 |
claude: 'rgb(255,153,51)', // Orange adjusted for deuteranopia
|
| 531 |
+
startupAccent: 'rgb(184,225,174)', // VersperClaw pastel green
|
| 532 |
claudeShimmer: 'rgb(255,183,101)', // Lighter orange for shimmer effect
|
| 533 |
claudeBlue_FOR_SYSTEM_SPINNER: 'rgb(153,204,255)', // Light blue for system spinner
|
| 534 |
claudeBlueShimmer_FOR_SYSTEM_SPINNER: 'rgb(183,224,255)', // Lighter blue for system spinner shimmer
|