* fix: keep UDS peer failures structured CodeRabbit and Claude cross-review identified that timeout and raw peer connection failures should share one observable error contract. UDS peer failures now use UdsPeerConnectionError consistently, and connectToPeer hands the socket lifecycle back to the caller after a successful connection instead of retaining an internal timeout or error listener. The tests cover the real socket paths with capability files, timeout behavior, connection failure structure, post-connect listener handoff, AgentSummary rescheduling observations, and platform-specific mailbox directory errno handling. Constraint: Preserve the 5000ms production timeout default while allowing tests to exercise timeout paths quickly. Rejected: Suppress CodeRabbit warnings in tests | would hide the real timeout/error contract gap. Rejected: Keep connectToPeer post-connect error listener | it would silently swallow caller-owned socket errors. Confidence: high Scope-risk: narrow Directive: Keep UDS send/connect timeout and socket-error paths on the same structured peer error contract. Tested: bun test src/utils/__tests__/udsMessaging.test.ts src/services/AgentSummary/__tests__/agentSummary.test.ts src/utils/__tests__/teammateMailbox.test.ts Tested: bunx tsc --noEmit --pretty false Tested: bun run lint Tested: bun run test:all Tested: bun test --coverage --coverage-reporter lcov --coverage-dir coverage Tested: bun run build Tested: bun run build:vite Tested: omx ask claude simplify review artifact .omx/artifacts/claude-review-only-cross-check-for-pr-374-on-branch-codex-codecov-r-2026-04-27T08-17-47-309Z.md Tested: omx ask claude security review artifact .omx/artifacts/claude-security-review-cross-check-for-pr-374-current-working-tree--2026-04-27T08-26-54-079Z.md Not-tested: GitHub-hosted CodeRabbit refresh until pushed. * docs: clarify UDS peer socket ownership CodeRabbit's #375 pass found that connectToPeer now correctly hands socket errors to the caller, but the JSDoc needed to spell out that contract. The lifecycle test also uses a less brittle post-connect timeout so slow CI does not turn the ownership check into a connection-speed race. Constraint: The raw socket API intentionally detaches its internal listener after successful connect so caller-owned errors are not swallowed. Rejected: Keep the test timeout at 50ms | it tests scheduler speed instead of socket lifecycle ownership. Confidence: high Scope-risk: narrow Directive: connectToPeer callers must attach their own error listener immediately after awaiting the socket. Tested: bun test src/utils/__tests__/udsMessaging.test.ts Tested: bunx tsc --noEmit --pretty false Tested: bun run lint Tested: git diff --check Tested: bun run test:all Not-tested: GitHub-hosted CodeRabbit refresh until pushed. * fix: close peer socket listener handoff window CodeRabbit and Claude review found that documenting caller-owned raw socket errors still left a Promise handoff window and a stale timeout-listener risk. The peer connection API now requires a caller error handler and installs it before resolving, while cleanup removes internal error and timeout listeners on every path. Constraint: Keep the fix precise to PR #375 review feedback and avoid warning suppression or fallback behavior. Rejected: Leave the behavior documented only | still permits an unhandled socket error window between resolve and caller listener attachment. Rejected: Keep a no-op internal error listener | would silently swallow caller-owned socket errors. Confidence: high Scope-risk: narrow Directive: Do not add raw connectToPeer callers without providing a real onSocketError handler and capability handshake. Tested: bun test src/utils/__tests__/udsMessaging.test.ts src/services/AgentSummary/__tests__/agentSummary.test.ts Tested: bunx tsc --noEmit --pretty false Tested: bun run lint Tested: bun run test:all Tested: bun test --coverage --coverage-reporter lcov --coverage-dir coverage Tested: bun run build Tested: bun run build:vite Tested: bun audit Not-tested: Manual external ACP peer runtime beyond repository tests. * fix: use a deadline timer for peer connects The raw socket handoff no longer needs Socket#setTimeout; an ordinary connection deadline keeps the timeout behavior while avoiding an internal socket timeout listener that has no reliable UDS integration path to exercise. Constraint: Keep Codecov coverage honest without adding ignore pragmas, mocks, or fallback suppression. Rejected: c8 ignore on the timeout listener | hides the uncovered branch instead of simplifying the lifecycle. Rejected: keep Socket#setTimeout listener | leaves a socket listener lifecycle to manage for a connect-only deadline. Confidence: high Scope-risk: narrow Directive: Keep connectToPeer errors caller-owned via onSocketError and reject pre-connect failures with UdsPeerConnectionError. Tested: bun test src/utils/__tests__/udsMessaging.test.ts src/services/AgentSummary/__tests__/agentSummary.test.ts Tested: bunx tsc --noEmit --pretty false Tested: bun run lint Tested: bun test src/utils/__tests__/udsMessaging.test.ts --coverage --coverage-reporter lcov --coverage-dir coverage-uds Tested: bun run test:all Tested: bun test --coverage --coverage-reporter lcov --coverage-dir coverage Tested: bun run build Tested: bun run build:vite Tested: bun audit Not-tested: Manual external ACP peer runtime beyond repository tests. --------- Co-authored-by: unraid <local@unraid.local>
Claude Code Best V5 (CCB)
Which Claude do you like? The open source one is the best.
A reverse-engineered / decompiled source restoration of Anthropic's official Claude Code CLI tool. The goal is to reproduce most of Claude Code's functionality and engineering capabilities. It's abbreviated as CCB.
Documentation (Chinese) — PR contributions welcome.
Sponsor placeholder.
- v1: Basic runability and type checking pass
- V2: Complete engineering infrastructure
- Biome formatting may not be implemented first to avoid code conflicts
- Build pipeline complete, output runnable on both Node.js and Bun
- V3: Extensive documentation and documentation site improvements
- V4: Large-scale test suite for improved stability
- V5: Enterprise-grade monitoring/reporting, missing tools补全, restrictions removed
- Removed anti-distillation code
- Web search capability (using Bing) Docs
- Debug mode support Docs
- Disabled auto-updates
- Custom Sentry error reporting support Docs
- Custom GrowthBook support (GB is open source — configure your own feature flag platform) Docs
- Custom login mode — configure Claude models your way
- V6: Large-scale refactoring, full modular packaging
- V6 will be a new branch; main branch will be archived as a historical version
I don't know how long this project will survive. Star + Fork + git clone + .zip is the safest bet.
This project updates rapidly — Opus continuously optimizes in the background, with new changes almost every few hours.
Claude has burned over $1000, out of budget, switching to GLM to continue; @zai-org GLM 5.1 is quite capable.
Quick Start
Prerequisites
Make sure you're on the latest version of Bun, otherwise you'll run into all sorts of weird bugs. Run bun upgrade!
- Bun >= 1.3.11
Install Bun:
# Linux and macOS
curl -fsSL https://bun.sh/install | bash
# Windows (PowerShell)
powershell -c "irm bun.sh/install.ps1 | iex"
Post-installation steps:
-
Make
bunavailable in the current terminalThe installer adds
~/.bun/binto the matching shell configuration file. On macOS with the default zsh shell, you may see:Added "~/.bun/bin" to $PATH in "~/.zshrc"Restart the current shell as the installer suggests:
exec /bin/zshIf you use bash, reload the bash configuration:
source ~/.bashrcWindows PowerShell users can close and reopen PowerShell.
-
Verify that Bun is available:
bun --help bun --version -
Update to latest version (if already installed):
bun upgrade
- Standard Claude Code configuration — each provider has its own setup method
Command Execution Location
- Bun installation and checking commands can be run from any directory:
curl -fsSL https://bun.sh/install | bash,bun --help,bun --version,bun upgrade - Project dependency installation, development mode, and builds must be run from this repository root, the directory containing
package.json.
Install
cd /path/to/claude-code
bun install
Run
# Dev mode — if you see version 888, it's working
bun run dev
# Build
bun run build
The build uses code splitting (build.ts), outputting to dist/ (entry dist/cli.js + ~450 chunk files).
The build output runs on both Bun and Node.js — you can publish to a private registry and run directly.
If you encounter a bug, please open an issue — we'll prioritize it.
First-time Setup /login
After the first run, enter /login in the REPL to access the login configuration screen. Select Anthropic Compatible to connect to third-party API-compatible services (no Anthropic account required).
Fields to fill in:
| Field | Description | Example |
|---|---|---|
| Base URL | API service URL | https://api.example.com/v1 |
| API Key | Authentication key | sk-xxx |
| Haiku Model | Fast model ID | claude-haiku-4-5-20251001 |
| Sonnet Model | Balanced model ID | claude-sonnet-4-6 |
| Opus Model | High-performance model ID | claude-opus-4-6 |
- Tab / Shift+Tab to switch fields, Enter to confirm and move to the next, press Enter on the last field to save
- Model fields auto-fill from current environment variables
- Configuration saves to
~/.claude/settings.jsonunder theenvkey, effective immediately
You can also edit ~/.claude/settings.json directly:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.example.com/v1",
"ANTHROPIC_AUTH_TOKEN": "sk-xxx",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5-20251001",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-6",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-6"
}
}
Supports all Anthropic API-compatible services (e.g., OpenRouter, AWS Bedrock proxies, etc.) as long as the interface is compatible with the Messages API.
Feature Flags
All feature toggles are enabled via FEATURE_<FLAG_NAME>=1 environment variables, for example:
FEATURE_BUDDY=1 FEATURE_FORK_SUBAGENT=1 bun run dev
See docs/features/ for detailed descriptions of each feature. Contributions welcome.
VS Code Debugging
The TUI (REPL) mode requires a real terminal and cannot be launched directly via VS Code's launch config. Use attach mode:
Steps
-
Start inspect server in terminal:
bun run dev:inspectThis outputs an address like
ws://localhost:8888/xxxxxxxx. -
Attach debugger from VS Code:
- Set breakpoints in
src/files - Press F5 → select "Attach to Bun (TUI debug)"
- Set breakpoints in
Documentation & Links
- Online docs (Mintlify): ccb.agent-aura.top — source in
docs/, PR contributions welcome - DeepWiki: https://deepwiki.com/claude-code-best/claude-code
Contributors
Star History
License
This project is for educational and research purposes only. All rights to Claude Code belong to Anthropic.