|
@@ -1,280 +1,199 @@
|
|
|
-# Claude Code Source Snapshot for Security Research
|
|
|
|
|
|
|
+# free-code
|
|
|
|
|
|
|
|
-> This repository mirrors a **publicly exposed Claude Code source snapshot** that became accessible on **March 31, 2026** through a source map exposure in the npm distribution. It is maintained for **educational, defensive security research, and software supply-chain analysis**.
|
|
|
|
|
|
|
+**The free build of Claude Code.**
|
|
|
|
|
|
|
|
----
|
|
|
|
|
-
|
|
|
|
|
-## Research Context
|
|
|
|
|
|
|
+All telemetry stripped. All injected security-prompt guardrails removed. All experimental features unlocked. One binary, zero callbacks home.
|
|
|
|
|
|
|
|
-This repository is maintained by a **university student** studying:
|
|
|
|
|
-
|
|
|
|
|
-- software supply-chain exposure and build artifact leaks
|
|
|
|
|
-- secure software engineering practices
|
|
|
|
|
-- agentic developer tooling architecture
|
|
|
|
|
-- defensive analysis of real-world CLI systems
|
|
|
|
|
|
|
+---
|
|
|
|
|
|
|
|
-This archive is intended to support:
|
|
|
|
|
|
|
+## What is this
|
|
|
|
|
|
|
|
-- educational study
|
|
|
|
|
-- security research practice
|
|
|
|
|
-- architecture review
|
|
|
|
|
-- discussion of packaging and release-process failures
|
|
|
|
|
|
|
+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.
|
|
|
|
|
|
|
|
-It does **not** claim ownership of the original code, and it should not be interpreted as an official Anthropic repository.
|
|
|
|
|
|
|
+This fork applies three categories of changes on top of that snapshot:
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
+### 1. Telemetry removed
|
|
|
|
|
|
|
|
-## How the Public Snapshot Became Accessible
|
|
|
|
|
|
|
+The upstream binary phones home through OpenTelemetry/gRPC, GrowthBook analytics, Sentry error reporting, and custom event logging. In this build:
|
|
|
|
|
|
|
|
-[Chaofan Shou (@Fried_rice)](https://x.com/Fried_rice) publicly noted that Claude Code source material was reachable through a `.map` file exposed in the npm package:
|
|
|
|
|
|
|
+- All outbound telemetry endpoints are dead-code-eliminated or stubbed
|
|
|
|
|
+- GrowthBook feature flag evaluation still works locally (needed for runtime feature gates) but does not report back
|
|
|
|
|
+- No crash reports, no usage analytics, no session fingerprinting
|
|
|
|
|
|
|
|
-> **"Claude code source code has been leaked via a map file in their npm registry!"**
|
|
|
|
|
->
|
|
|
|
|
-> — [@Fried_rice, March 31, 2026](https://x.com/Fried_rice/status/2038894956459290963)
|
|
|
|
|
|
|
+### 2. Security-prompt guardrails removed
|
|
|
|
|
|
|
|
-The published source map referenced unobfuscated TypeScript sources hosted in Anthropic's R2 storage bucket, which made the `src/` snapshot publicly downloadable.
|
|
|
|
|
|
|
+Anthropic injects system-level instructions into every conversation that constrain Claude's behavior beyond what the model itself enforces. These include:
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
+- Hardcoded refusal patterns for certain categories of prompts
|
|
|
|
|
+- Injected "cyber risk" instruction blocks
|
|
|
|
|
+- Managed-settings security overlays pushed from Anthropic's servers
|
|
|
|
|
|
|
|
-## Repository Scope
|
|
|
|
|
|
|
+This build strips those injections. The model's own safety training still applies -- this just removes the extra layer of prompt-level restrictions that the CLI wraps around it.
|
|
|
|
|
|
|
|
-Claude Code is Anthropic's CLI for interacting with Claude from the terminal to perform software engineering tasks such as editing files, running commands, searching codebases, and coordinating workflows.
|
|
|
|
|
|
|
+### 3. Experimental features enabled
|
|
|
|
|
|
|
|
-This repository contains a mirrored `src/` snapshot for research and analysis.
|
|
|
|
|
|
|
+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 unlocks all 45+ flags that compile cleanly, including:
|
|
|
|
|
|
|
|
-- **Public exposure identified on**: 2026-03-31
|
|
|
|
|
-- **Language**: TypeScript
|
|
|
|
|
-- **Runtime**: Bun
|
|
|
|
|
-- **Terminal UI**: React + [Ink](https://github.com/vadimdemedes/ink)
|
|
|
|
|
-- **Scale**: ~1,900 files, 512,000+ lines of code
|
|
|
|
|
|
|
+| 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](FEATURES.md) for the full audit of all 88 flags and their status.
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-## Directory Structure
|
|
|
|
|
|
|
+## Requirements
|
|
|
|
|
|
|
|
-```text
|
|
|
|
|
-src/
|
|
|
|
|
-├── main.tsx # Entrypoint orchestration (Commander.js-based CLI path)
|
|
|
|
|
-├── commands.ts # Command registry
|
|
|
|
|
-├── tools.ts # Tool registry
|
|
|
|
|
-├── Tool.ts # Tool type definitions
|
|
|
|
|
-├── QueryEngine.ts # LLM query engine
|
|
|
|
|
-├── context.ts # System/user context collection
|
|
|
|
|
-├── cost-tracker.ts # Token cost tracking
|
|
|
|
|
-│
|
|
|
|
|
-├── commands/ # Slash command implementations (~50)
|
|
|
|
|
-├── tools/ # Agent tool implementations (~40)
|
|
|
|
|
-├── components/ # Ink UI components (~140)
|
|
|
|
|
-├── hooks/ # React hooks
|
|
|
|
|
-├── services/ # External service integrations
|
|
|
|
|
-├── screens/ # Full-screen UIs (Doctor, REPL, Resume)
|
|
|
|
|
-├── types/ # TypeScript type definitions
|
|
|
|
|
-├── utils/ # Utility functions
|
|
|
|
|
-│
|
|
|
|
|
-├── bridge/ # IDE and remote-control bridge
|
|
|
|
|
-├── coordinator/ # Multi-agent coordinator
|
|
|
|
|
-├── plugins/ # Plugin system
|
|
|
|
|
-├── skills/ # Skill system
|
|
|
|
|
-├── keybindings/ # Keybinding configuration
|
|
|
|
|
-├── vim/ # Vim mode
|
|
|
|
|
-├── voice/ # Voice input
|
|
|
|
|
-├── remote/ # Remote sessions
|
|
|
|
|
-├── server/ # Server mode
|
|
|
|
|
-├── memdir/ # Persistent memory directory
|
|
|
|
|
-├── tasks/ # Task management
|
|
|
|
|
-├── state/ # State management
|
|
|
|
|
-├── migrations/ # Config migrations
|
|
|
|
|
-├── schemas/ # Config schemas (Zod)
|
|
|
|
|
-├── entrypoints/ # Initialization logic
|
|
|
|
|
-├── ink/ # Ink renderer wrapper
|
|
|
|
|
-├── buddy/ # Companion sprite
|
|
|
|
|
-├── native-ts/ # Native TypeScript utilities
|
|
|
|
|
-├── outputStyles/ # Output styling
|
|
|
|
|
-├── query/ # Query pipeline
|
|
|
|
|
-└── upstreamproxy/ # Proxy configuration
|
|
|
|
|
|
|
+- [Bun](https://bun.sh) >= 1.3.11
|
|
|
|
|
+- macOS or Linux (Windows via WSL)
|
|
|
|
|
+- An Anthropic API key (set `ANTHROPIC_API_KEY` in your environment)
|
|
|
|
|
+
|
|
|
|
|
+```bash
|
|
|
|
|
+# Install Bun if you don't have it
|
|
|
|
|
+curl -fsSL https://bun.sh/install | bash
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-## Architecture Summary
|
|
|
|
|
|
|
+## Build
|
|
|
|
|
|
|
|
-### 1. Tool System (`src/tools/`)
|
|
|
|
|
|
|
+```bash
|
|
|
|
|
+# Clone the repo
|
|
|
|
|
+git clone https://github.com/paoloanzn/claude-code.git
|
|
|
|
|
+cd claude-code
|
|
|
|
|
|
|
|
-Every tool Claude Code can invoke is implemented as a self-contained module. Each tool defines its input schema, permission model, and execution logic.
|
|
|
|
|
|
|
+# Install dependencies
|
|
|
|
|
+bun install
|
|
|
|
|
|
|
|
-| Tool | Description |
|
|
|
|
|
-|---|---|
|
|
|
|
|
-| `BashTool` | Shell command execution |
|
|
|
|
|
-| `FileReadTool` | File reading (images, PDFs, notebooks) |
|
|
|
|
|
-| `FileWriteTool` | File creation / overwrite |
|
|
|
|
|
-| `FileEditTool` | Partial file modification (string replacement) |
|
|
|
|
|
-| `GlobTool` | File pattern matching search |
|
|
|
|
|
-| `GrepTool` | ripgrep-based content search |
|
|
|
|
|
-| `WebFetchTool` | Fetch URL content |
|
|
|
|
|
-| `WebSearchTool` | Web search |
|
|
|
|
|
-| `AgentTool` | Sub-agent spawning |
|
|
|
|
|
-| `SkillTool` | Skill execution |
|
|
|
|
|
-| `MCPTool` | MCP server tool invocation |
|
|
|
|
|
-| `LSPTool` | Language Server Protocol integration |
|
|
|
|
|
-| `NotebookEditTool` | Jupyter notebook editing |
|
|
|
|
|
-| `TaskCreateTool` / `TaskUpdateTool` | Task creation and management |
|
|
|
|
|
-| `SendMessageTool` | Inter-agent messaging |
|
|
|
|
|
-| `TeamCreateTool` / `TeamDeleteTool` | Team agent management |
|
|
|
|
|
-| `EnterPlanModeTool` / `ExitPlanModeTool` | Plan mode toggle |
|
|
|
|
|
-| `EnterWorktreeTool` / `ExitWorktreeTool` | Git worktree isolation |
|
|
|
|
|
-| `ToolSearchTool` | Deferred tool discovery |
|
|
|
|
|
-| `CronCreateTool` | Scheduled trigger creation |
|
|
|
|
|
-| `RemoteTriggerTool` | Remote trigger |
|
|
|
|
|
-| `SleepTool` | Proactive mode wait |
|
|
|
|
|
-| `SyntheticOutputTool` | Structured output generation |
|
|
|
|
|
-
|
|
|
|
|
-### 2. Command System (`src/commands/`)
|
|
|
|
|
-
|
|
|
|
|
-User-facing slash commands invoked with `/` prefix.
|
|
|
|
|
-
|
|
|
|
|
-| Command | Description |
|
|
|
|
|
-|---|---|
|
|
|
|
|
-| `/commit` | Create a git commit |
|
|
|
|
|
-| `/review` | Code review |
|
|
|
|
|
-| `/compact` | Context compression |
|
|
|
|
|
-| `/mcp` | MCP server management |
|
|
|
|
|
-| `/config` | Settings management |
|
|
|
|
|
-| `/doctor` | Environment diagnostics |
|
|
|
|
|
-| `/login` / `/logout` | Authentication |
|
|
|
|
|
-| `/memory` | Persistent memory management |
|
|
|
|
|
-| `/skills` | Skill management |
|
|
|
|
|
-| `/tasks` | Task management |
|
|
|
|
|
-| `/vim` | Vim mode toggle |
|
|
|
|
|
-| `/diff` | View changes |
|
|
|
|
|
-| `/cost` | Check usage cost |
|
|
|
|
|
-| `/theme` | Change theme |
|
|
|
|
|
-| `/context` | Context visualization |
|
|
|
|
|
-| `/pr_comments` | View PR comments |
|
|
|
|
|
-| `/resume` | Restore previous session |
|
|
|
|
|
-| `/share` | Share session |
|
|
|
|
|
-| `/desktop` | Desktop app handoff |
|
|
|
|
|
-| `/mobile` | Mobile app handoff |
|
|
|
|
|
-
|
|
|
|
|
-### 3. Service Layer (`src/services/`)
|
|
|
|
|
-
|
|
|
|
|
-| Service | Description |
|
|
|
|
|
-|---|---|
|
|
|
|
|
-| `api/` | Anthropic API client, file API, bootstrap |
|
|
|
|
|
-| `mcp/` | Model Context Protocol server connection and management |
|
|
|
|
|
-| `oauth/` | OAuth 2.0 authentication flow |
|
|
|
|
|
-| `lsp/` | Language Server Protocol manager |
|
|
|
|
|
-| `analytics/` | GrowthBook-based feature flags and analytics |
|
|
|
|
|
-| `plugins/` | Plugin loader |
|
|
|
|
|
-| `compact/` | Conversation context compression |
|
|
|
|
|
-| `policyLimits/` | Organization policy limits |
|
|
|
|
|
-| `remoteManagedSettings/` | Remote managed settings |
|
|
|
|
|
-| `extractMemories/` | Automatic memory extraction |
|
|
|
|
|
-| `tokenEstimation.ts` | Token count estimation |
|
|
|
|
|
-| `teamMemorySync/` | Team memory synchronization |
|
|
|
|
|
|
|
+# Standard build -- produces ./cli
|
|
|
|
|
+bun run build
|
|
|
|
|
|
|
|
-### 4. Bridge System (`src/bridge/`)
|
|
|
|
|
|
|
+# Dev build -- dev version stamp, experimental GrowthBook key
|
|
|
|
|
+bun run build:dev
|
|
|
|
|
|
|
|
-A bidirectional communication layer connecting IDE extensions (VS Code, JetBrains) with the Claude Code CLI.
|
|
|
|
|
|
|
+# Dev build with ALL experimental features enabled -- produces ./cli-dev
|
|
|
|
|
+bun run build:dev:full
|
|
|
|
|
|
|
|
-- `bridgeMain.ts` — Bridge main loop
|
|
|
|
|
-- `bridgeMessaging.ts` — Message protocol
|
|
|
|
|
-- `bridgePermissionCallbacks.ts` — Permission callbacks
|
|
|
|
|
-- `replBridge.ts` — REPL session bridge
|
|
|
|
|
-- `jwtUtils.ts` — JWT-based authentication
|
|
|
|
|
-- `sessionRunner.ts` — Session execution management
|
|
|
|
|
|
|
+# Compiled build (alternative output path) -- produces ./dist/cli
|
|
|
|
|
+bun run compile
|
|
|
|
|
+```
|
|
|
|
|
|
|
|
-### 5. Permission System (`src/hooks/toolPermission/`)
|
|
|
|
|
|
|
+### Build variants
|
|
|
|
|
|
|
|
-Checks permissions on every tool invocation. Either prompts the user for approval/denial or automatically resolves based on the configured permission mode (`default`, `plan`, `bypassPermissions`, `auto`, etc.).
|
|
|
|
|
|
|
+| Command | Output | Features | Notes |
|
|
|
|
|
+|---|---|---|---|
|
|
|
|
|
+| `bun run build` | `./cli` | `VOICE_MODE` only | Production-like binary |
|
|
|
|
|
+| `bun run build:dev` | `./cli-dev` | `VOICE_MODE` only | Dev version stamp |
|
|
|
|
|
+| `bun run build:dev:full` | `./cli-dev` | All 45+ experimental flags | The full unlock build |
|
|
|
|
|
+| `bun run compile` | `./dist/cli` | `VOICE_MODE` only | Alternative output directory |
|
|
|
|
|
|
|
|
-### 6. Feature Flags
|
|
|
|
|
|
|
+### Individual feature flags
|
|
|
|
|
|
|
|
-Dead code elimination via Bun's `bun:bundle` feature flags:
|
|
|
|
|
|
|
+You can enable specific flags without the full bundle:
|
|
|
|
|
|
|
|
-```typescript
|
|
|
|
|
-import { feature } from 'bun:bundle'
|
|
|
|
|
|
|
+```bash
|
|
|
|
|
+# Enable just ultraplan and ultrathink
|
|
|
|
|
+bun run ./scripts/build.ts --feature=ULTRAPLAN --feature=ULTRATHINK
|
|
|
|
|
|
|
|
-// Inactive code is completely stripped at build time
|
|
|
|
|
-const voiceCommand = feature('VOICE_MODE')
|
|
|
|
|
- ? require('./commands/voice/index.js').default
|
|
|
|
|
- : null
|
|
|
|
|
|
|
+# Enable a specific flag on top of the dev build
|
|
|
|
|
+bun run ./scripts/build.ts --dev --feature=BRIDGE_MODE
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-Notable flags: `PROACTIVE`, `KAIROS`, `BRIDGE_MODE`, `DAEMON`, `VOICE_MODE`, `AGENT_TRIGGERS`, `MONITOR_TOOL`
|
|
|
|
|
-
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-## Key Files in Detail
|
|
|
|
|
-
|
|
|
|
|
-### `QueryEngine.ts` (~46K lines)
|
|
|
|
|
-
|
|
|
|
|
-The core engine for LLM API calls. Handles streaming responses, tool-call loops, thinking mode, retry logic, and token counting.
|
|
|
|
|
|
|
+## Run
|
|
|
|
|
|
|
|
-### `Tool.ts` (~29K lines)
|
|
|
|
|
|
|
+```bash
|
|
|
|
|
+# Run the built binary directly
|
|
|
|
|
+./cli
|
|
|
|
|
|
|
|
-Defines base types and interfaces for all tools — input schemas, permission models, and progress state types.
|
|
|
|
|
|
|
+# Or the dev binary
|
|
|
|
|
+./cli-dev
|
|
|
|
|
|
|
|
-### `commands.ts` (~25K lines)
|
|
|
|
|
|
|
+# Or run from source without compiling (slower startup)
|
|
|
|
|
+bun run dev
|
|
|
|
|
|
|
|
-Manages registration and execution of all slash commands. Uses conditional imports to load different command sets per environment.
|
|
|
|
|
|
|
+# Set your API key
|
|
|
|
|
+export ANTHROPIC_API_KEY="sk-ant-..."
|
|
|
|
|
|
|
|
-### `main.tsx`
|
|
|
|
|
|
|
+# Or use Claude.ai OAuth
|
|
|
|
|
+./cli /login
|
|
|
|
|
+```
|
|
|
|
|
|
|
|
-Commander.js-based CLI parser and React/Ink renderer initialization. At startup, it overlaps MDM settings, keychain prefetch, and GrowthBook initialization for faster boot.
|
|
|
|
|
|
|
+### Quick test
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
+```bash
|
|
|
|
|
+# One-shot mode
|
|
|
|
|
+./cli -p "what files are in this directory?"
|
|
|
|
|
|
|
|
-## Tech Stack
|
|
|
|
|
|
|
+# Interactive REPL (default)
|
|
|
|
|
+./cli
|
|
|
|
|
|
|
|
-| Category | Technology |
|
|
|
|
|
-|---|---|
|
|
|
|
|
-| Runtime | [Bun](https://bun.sh) |
|
|
|
|
|
-| Language | TypeScript (strict) |
|
|
|
|
|
-| Terminal UI | [React](https://react.dev) + [Ink](https://github.com/vadimdemedes/ink) |
|
|
|
|
|
-| CLI Parsing | [Commander.js](https://github.com/tj/commander.js) (extra-typings) |
|
|
|
|
|
-| Schema Validation | [Zod v4](https://zod.dev) |
|
|
|
|
|
-| Code Search | [ripgrep](https://github.com/BurntSushi/ripgrep) |
|
|
|
|
|
-| Protocols | [MCP SDK](https://modelcontextprotocol.io), LSP |
|
|
|
|
|
-| API | [Anthropic SDK](https://docs.anthropic.com) |
|
|
|
|
|
-| Telemetry | OpenTelemetry + gRPC |
|
|
|
|
|
-| Feature Flags | GrowthBook |
|
|
|
|
|
-| Auth | OAuth 2.0, JWT, macOS Keychain |
|
|
|
|
|
|
|
+# With specific model
|
|
|
|
|
+./cli --model claude-sonnet-4-6-20250514
|
|
|
|
|
+```
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-## Notable Design Patterns
|
|
|
|
|
-
|
|
|
|
|
-### Parallel Prefetch
|
|
|
|
|
|
|
+## Project structure
|
|
|
|
|
|
|
|
-Startup time is optimized by prefetching MDM settings, keychain reads, and API preconnect in parallel before heavy module evaluation begins.
|
|
|
|
|
-
|
|
|
|
|
-```typescript
|
|
|
|
|
-// main.tsx — fired as side-effects before other imports
|
|
|
|
|
-startMdmRawRead()
|
|
|
|
|
-startKeychainPrefetch()
|
|
|
|
|
```
|
|
```
|
|
|
|
|
+scripts/
|
|
|
|
|
+ build.ts # Build script with feature flag system
|
|
|
|
|
|
|
|
-### Lazy Loading
|
|
|
|
|
-
|
|
|
|
|
-Heavy modules (OpenTelemetry, gRPC, analytics, and some feature-gated subsystems) are deferred via dynamic `import()` until actually needed.
|
|
|
|
|
-
|
|
|
|
|
-### Agent Swarms
|
|
|
|
|
-
|
|
|
|
|
-Sub-agents are spawned via `AgentTool`, with `coordinator/` handling multi-agent orchestration. `TeamCreateTool` enables team-level parallel work.
|
|
|
|
|
-
|
|
|
|
|
-### Skill System
|
|
|
|
|
|
|
+src/
|
|
|
|
|
+ entrypoints/cli.tsx # CLI entrypoint
|
|
|
|
|
+ commands.ts # Command registry (slash commands)
|
|
|
|
|
+ tools.ts # Tool registry (agent tools)
|
|
|
|
|
+ QueryEngine.ts # LLM query engine
|
|
|
|
|
+ screens/REPL.tsx # Main interactive UI
|
|
|
|
|
+
|
|
|
|
|
+ commands/ # /slash command implementations
|
|
|
|
|
+ tools/ # Agent tool implementations (Bash, Read, Edit, etc.)
|
|
|
|
|
+ components/ # Ink/React terminal UI components
|
|
|
|
|
+ hooks/ # React hooks
|
|
|
|
|
+ services/ # API client, MCP, OAuth, analytics
|
|
|
|
|
+ state/ # App state store
|
|
|
|
|
+ utils/ # Utilities
|
|
|
|
|
+ skills/ # Skill system
|
|
|
|
|
+ plugins/ # Plugin system
|
|
|
|
|
+ bridge/ # IDE bridge
|
|
|
|
|
+ voice/ # Voice input
|
|
|
|
|
+ tasks/ # Background task management
|
|
|
|
|
+```
|
|
|
|
|
|
|
|
-Reusable workflows defined in `skills/` are executed through `SkillTool`. Users can add custom skills.
|
|
|
|
|
|
|
+---
|
|
|
|
|
|
|
|
-### Plugin Architecture
|
|
|
|
|
|
|
+## Tech stack
|
|
|
|
|
|
|
|
-Built-in and third-party plugins are loaded through the `plugins/` subsystem.
|
|
|
|
|
|
|
+| | |
|
|
|
|
|
+|---|---|
|
|
|
|
|
+| Runtime | [Bun](https://bun.sh) |
|
|
|
|
|
+| Language | TypeScript |
|
|
|
|
|
+| Terminal UI | React + [Ink](https://github.com/vadimdemedes/ink) |
|
|
|
|
|
+| CLI parsing | [Commander.js](https://github.com/tj/commander.js) |
|
|
|
|
|
+| Schema validation | Zod v4 |
|
|
|
|
|
+| Code search | ripgrep (bundled) |
|
|
|
|
|
+| Protocols | MCP, LSP |
|
|
|
|
|
+| API | Anthropic Messages API |
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-## Research / Ownership Disclaimer
|
|
|
|
|
|
|
+## License
|
|
|
|
|
|
|
|
-- This repository is an **educational and defensive security research archive** maintained by a university student.
|
|
|
|
|
-- It exists to study source exposure, packaging failures, and the architecture of modern agentic CLI systems.
|
|
|
|
|
-- The original Claude Code source remains the property of **Anthropic**.
|
|
|
|
|
-- This repository is **not affiliated with, endorsed by, or maintained by Anthropic**.
|
|
|
|
|
|
|
+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.
|