- TypeScript 99.9%
|
Some checks failed
Release / release (push) Failing after 40s
Bun leaves a corrupt signature stub in native arm64 Mach-O binaries. codesign --force --sign - fails with "invalid or unsupported format" unless the old signature is removed first with --remove-signature. |
||
|---|---|---|
| .forgejo/workflows | ||
| .taskmaster | ||
| assets | ||
| debug/260413-compact-loop | ||
| predict | ||
| reason/260410-0130-gpt-opus-parity | ||
| scripts | ||
| src | ||
| vendor | ||
| .bunfig.toml | ||
| .env.example | ||
| .gitignore | ||
| .mcp.json | ||
| bun.lock | ||
| CLAUDE.md | ||
| env.d.ts | ||
| FEATURES.md | ||
| install.ps1 | ||
| install.sh | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
cute-code
curl -fsSL https://git.irrigate.cc/pp/cute-code/raw/branch/main/install.sh | bash
Or grab a binary directly from releases.
TL;DR
The problem: Claude Code is a excellent CLI agent, but the official build phones home with telemetry, blocks "risky" operations through server-pushed guardrails, and gates experimental features behind GrowthBook rollouts.
The solution: cute-code is a clean fork. Same codebase, same API, same tool execution engine -- but all telemetry is dead-code-eliminated, all server-side instruction injections are stripped, and every feature flag that compiles is enabled by default.
What you get
| Feature | Official Claude Code | cute-code |
|---|---|---|
| Telemetry | OpenTelemetry + Sentry + GrowthBook | None |
| Security guardrails | Server-pushed instructions | Stripped |
| Experimental features | GrowthBook-gated | All 45+ unlocked |
| Cost | Free (API key required) | Free |
| Source | Not publicly available | Fully open |
Quick Example
# Interactive REPL (just works with API key)
export ANTHROPIC_API_KEY="sk-ant-..."
cute-code
# One-shot mode
cute-code -p "write a hello world in rust"
# Specify a model
cute-code --model claude-sonnet-4-6 -p "explain this codebase"
# OAuth login (for claude.ai paid features)
cute-code /login
# Check what version is running
cute-code --version
What this is
A clean, buildable fork of Anthropic's Claude Code CLI. The upstream source became publicly available on March 31, 2026 through a source map exposure in the npm distribution.
Three changes on top of that snapshot:
Telemetry removed
The upstream binary phones home through OpenTelemetry/gRPC, GrowthBook analytics, Sentry error reporting, and custom event logging. In this build all outbound telemetry endpoints are dead-code-eliminated or stubbed at compile time. No crash reports, no usage analytics, no session fingerprinting.
Security-prompt guardrails removed
Anthropic injects system-level instructions into every conversation that constrain Claude's behavior beyond what the model itself enforces -- hardcoded refusal patterns, "cyber risk" instruction blocks, managed-settings security overlays pushed from their servers. This build strips those injections. The model's own safety training still applies.
All experimental features unlocked
Claude Code ships with dozens of feature flags gated behind bun:bundle compile-time switches. Most are disabled in the public npm release. This build enables all 45+ flags that compile cleanly:
| Feature | What it does |
|---|---|
ULTRAPLAN |
Remote multi-agent planning on Claude Code web (Opus-class) |
ULTRATHINK |
Deep thinking mode -- type "ultrathink" to boost reasoning effort |
VOICE_MODE |
Push-to-talk voice input and dictation |
AGENT_TRIGGERS |
Local cron/trigger tools for background automation |
BRIDGE_MODE |
IDE remote-control bridge (VS Code, JetBrains) |
TOKEN_BUDGET |
Token budget tracking and usage warnings |
BUILTIN_EXPLORE_PLAN_AGENTS |
Built-in explore/plan agent presets |
VERIFICATION_AGENT |
Verification agent for task validation |
BASH_CLASSIFIER |
Classifier-assisted bash permission decisions |
EXTRACT_MEMORIES |
Post-query automatic memory extraction |
HISTORY_PICKER |
Interactive prompt history picker |
MESSAGE_ACTIONS |
Message action entrypoints in the UI |
QUICK_SEARCH |
Prompt quick-search |
SHOT_STATS |
Shot-distribution stats |
COMPACTION_REMINDERS |
Smart reminders around context compaction |
CACHED_MICROCOMPACT |
Cached microcompact state through query flows |
See FEATURES.md for the full audit of all 88 flags and their status.
Installation
Quick install (recommended)
macOS / Linux:
curl -fsSL https://git.irrigate.cc/pp/cute-code/raw/branch/main/install.sh | bash
Windows (PowerShell):
irm https://git.irrigate.cc/pp/cute-code/raw/branch/main/install.ps1 | iex
This downloads the correct binary for your OS/arch, drops it in ~/.local/bin/cute-code (POSIX) or %LOCALAPPDATA%\Programs\cute-code\bin\cute-code.exe (Windows), adds it to PATH, and you're done.
Download a binary directly
Pre-built binaries for all platforms are on the releases page:
| Platform | Binary |
|---|---|
| macOS Apple Silicon | cute-code-darwin-arm64 |
| macOS Intel | cute-code-darwin-x64 |
| Linux x86_64 | cute-code-linux-x64 |
| Linux ARM64 | cute-code-linux-arm64 |
| Windows x86_64 | cute-code-windows-x64.exe |
Build from source
Requires Bun >= 1.3.11.
git clone https://git.irrigate.cc/pp/cute-code.git
cd cute-code
bun install
# Standard build (all working features enabled)
bun run build
# Dev build with version stamp
bun run build:dev
# Cross-platform release binaries
bun run release:build
Individual feature flags
By default all bundle-clean flags are enabled. To build with a specific subset:
bun run ./scripts/build.ts --feature=ULTRAPLAN --feature=ULTRATHINK
Getting Started
Set your API key
export ANTHROPIC_API_KEY="sk-ant-..."
cute-code
Or log in with your Claude.ai account for paid feature access:
cute-code /login
Run in interactive mode
cute-code
This launches the REPL. Type prompts, press Enter, Claude executes tools and streams results.
Run in one-shot mode
cute-code -p "write a hello world HTTP server in go"
Specify a model
cute-code --model claude-opus-4-6 -p "architect a web scraper"
Commands
cute-code [options] # Interactive REPL
cute-code -p "prompt" [options] # One-shot mode
cute-code /login # OAuth login with claude.ai
cute-code --version # Print version
cute-code --dump-system-prompt # Print the active system prompt
Slash Commands
Inside the REPL, 100+ slash commands are available. Common ones:
| Command | Description |
|---|---|
/login |
Authenticate with Claude.ai OAuth |
/logout |
Clear stored credentials |
/model <name> |
Switch the active model |
/compact |
Force context compaction |
/clear |
Clear the conversation |
/help |
Show available commands |
Configuration
Config lives in ~/.claude/. The file ~/.claude/settings.json controls defaults:
{
"model": "claude-sonnet-4-6",
"permissionMode": "auto"
}
Permission modes
| Mode | Behavior |
|---|---|
auto |
ML classifier decides whether to run a bash command |
manual |
Prompts before every bash command |
bypass |
Allows all bash commands without asking |
Environment variables
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY |
API key for Anthropic models |
ANTHROPIC_BASE_URL |
Custom API endpoint (for proxies) |
CLAUDE_CODE_DISABLE_COMPUTER_USE=1 |
Disable computer use feature |
Design Philosophy
Build-time feature gates, not runtime rollouts
Feature flags in this project are compile-time only -- Bun's feature() bundle-gating ensures no dead telemetry code ever reaches the binary. Upstream uses GrowthBook for runtime rollouts; this fork doesn't need or want that infrastructure.
Model safety stays, corporate safety goes
The model's own safety training (from RLHF) remains active. What gets stripped is the additional layer of server-pushed instructions that Anthropic injects on top of that -- the things that tell Claude to refuse specific categories of requests regardless of what the model would naturally do.
API compatibility with the official version
This fork tracks Claude Code 2.1.87. The Anthropic Messages API is unchanged. Any API key that works with the official CLI works here.
Troubleshooting
"ANTHROPIC_API_KEY is not set"
You need to set the API key before running:
export ANTHROPIC_API_KEY="sk-ant-..."
cute-code
Or export it permanently in your shell profile (~/.zshrc, ~/.bashrc).
Binary downloaded but "command not found"
Make sure ~/.local/bin is in your PATH. Add this to your shell profile:
export PATH="$HOME/.local/bin:$PATH"
Login fails or OAuth doesn't work
OAuth requires a claude.ai account with an active subscription. If /login fails, check that your account has API access at console.anthropic.com.
Computer use doesn't work
Computer use (screen reading, mouse/keyboard control) is enabled by default. To disable:
export CLAUDE_CODE_DISABLE_COMPUTER_USE=1
cute-code
Note: computer use requires macOS or a Linux machine with a display.
FAQ
Is this affiliated with Anthropic?
No. This is an independent fork of a publicly exposed source tree. "Claude Code" is an Anthropic product trademark.
Does this still call Anthropic's API?
Yes. This is not a local model. You need an ANTHROPIC_API_KEY just like the official version.
What's the difference between this and the official Claude Code CLI?
The official CLI has telemetry, GrowthBook-gated features, and server-side instruction injections. This fork strips all of that. Functionally, you get the same Claude-powered agent experience without the phone-home behavior.
Why did you make this?
The source became publicly available through an npm source map exposure. I wanted a version I could audit, modify, and run without wondering what it was transmitting.
Can I use my existing Claude Code session data?
Yes. Session data stored in ~/.claude/sessions/ is compatible. Both CLIs use the same session format.
Limitations
What cute-code doesn't do (yet)
- No automated tests: The snapshot has no test suite. This is a direct fork of the exposed source without reconstruction of any test infrastructure.
- No Windows voice/microphone support: Voice mode works on macOS and Linux but has limited support on Windows.
- Some experimental flags still fail to compile: 34 of 88 feature flags don't bundle cleanly in this snapshot. See FEATURES.md for the full breakdown.
Known caveats
- Computer use is enabled by default on macOS and Linux with a display. Set
CLAUDE_CODE_DISABLE_COMPUTER_USE=1to disable. - OAuth features require a claude.ai account with an active subscription. API key-only mode works without an account.
- Builds only on Bun -- the project uses Bun-specific
feature()compile-time gates and won't build with Node.js or Deno without significant changes.
About Contributions
Please don't take this the wrong way, but I do not accept outside contributions for any of my projects. I simply don't have the mental bandwidth to review anything, and it's my name on the thing, so I'm responsible for any problems it causes; thus, the risk-reward is highly asymmetric from my perspective. I'd also have to worry about other "stakeholders," which seems unwise for tools I mostly make for myself for free. Feel free to submit issues, and even PRs if you want to illustrate a proposed fix, but know I won't merge them directly. Instead, I'll have Claude or Codex review submissions via gh and independently decide whether and how to address them. Bug reports in particular are welcome. Sorry if this offends, but I want to avoid wasted time and hurt feelings. I understand this isn't in sync with the prevailing open-source ethos that seeks community contributions, but it's the only way I can move at this velocity and keep my sanity.
License
The original Claude Code source is the property of Anthropic. This fork exists because the source was publicly exposed through their npm distribution. Use at your own discretion.