Skip to main content

open-claudecode-research

Research archive of Claude Code source and runtime artifacts reconstructed from npm source maps

インストールへ移動

ソース情報

リポジトリ
reason-machines/claude-code-skills
ソースの最終更新活動
2026年7月30日 01:01
検出された SKILL.md の言語
英語
スター
4
フォーク
1

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
open-claudecode-research
description
Research archive of Claude Code source and runtime artifacts reconstructed from npm source maps
triggers
["how does Claude Code work internally","explore Claude Code source code","understand Claude Code architecture","use open claudecode locally","run claude code from source","configure claude code settings","add plugins to claude code","reverse engineer claude code"]
# Open-ClaudeCode Research Archive > Skill by [ara.so](https://ara.so) — Claude Code Skills collection. ## What This Project Is Open-ClaudeCode is a complete research archive of Anthropic's Claude Code CLI, reconstructed from official npm package source maps. It provides: - **Full TypeScript source code** (1,902 files) for studying Claude Code's architecture - **Runnable CLI** (v2.1.88) that works identically to the npm-published version - **Official plugins** (13 plugins) for code review, feature development, security, etc. - **Configuration examples** for various use cases - **Native vendor modules** for audio capture and ripgrep This is primarily a research/learning resource, but the CLI is fully functional. ## Installation ### Clone the Repository ```bash git clone https://github.com/LING71671/Open-ClaudeCode.git cd Open-ClaudeCode ``` ### Prerequisites - **Node.js 18+** required - **API access** (one of): - Anthropic API key from console.anthropic.com - Third-party proxy with Anthropic-compatible API - Claude subscription (OAuth login) ### Verify Installation ```bash node --version # Must be >= 18.0.0 node package/cli.js --version # Should show 2.1.88 ``` ## Authentication Setup ### Option 1: API Key (Recommended for Programmatic Use) Create `~/.claude/settings.json`: ```json { "env": { "ANTHROPIC_AUTH_TOKEN": "sk-ant-your-key-here" } } ``` Or use environment variables: ```bash export ANTHROPIC_AUTH_TOKEN="sk-ant-your-key-here" node package/cli.js ``` ### Option 2: Third-Party Proxy For users in regions with API access restrictions: ```json { "env": { "ANTHROPIC_BASE_URL": "https://your-proxy-endpoint.com", "ANTHROPIC_AUTH_TOKEN": "your-proxy-api-key" } } ``` ### Option 3: OAuth (Claude Subscription) ```bash # Simply run - will open browser for login node package/cli.js ``` ## Core CLI Usage ### Interactive Mode ```bash # Start interactive session node package/cli.js # With specific model node package/cli.js --model opus # With auto-accept edits node package/cli.js --permission-mode acceptEdits ``` ### Non-Interactive Mode ```bash # Single prompt node package/cli.js -p "explain closures in JavaScript" # Process specific file node package/cli.js -p "refactor the getUserData function in src/api.ts" # JSON output for automation node package/cli.js -p "list project dependencies" --output-format json # Continue previous session node package/cli.js -c node package/cli.js -r <session-id> ``` ### Model Selection ```bash # Available model aliases node package/cli.js --model sonnet # Claude Sonnet (default, balanced) node package/cli.js --model opus # Claude Opus (most capable) node package/cli.js --model haiku # Claude Haiku (fastest) # Or full model name node package/cli.js --model claude-sonnet-4-6 ``` ## Configuration Patterns ### Project-Specific Settings Create `settings.json` in your project root: ```json { "model": "claude-sonnet-4-6", "permissionMode": "acceptEdits", "env": { "ANTHROPIC_AUTH_TOKEN": "${ANTHROPIC_API_KEY}" }, "systemPrompt": "You are a senior developer helping with a TypeScript project. Focus on type safety and best practices." } ``` Run with settings: ```bash node /path/to/Open-ClaudeCode/package/cli.js --settings settings.json ``` ### Global Configuration Settings in `~/.claude/settings.json` apply to all sessions: ```json { "model": "claude-sonnet-4-6", "theme": "dark", "vimMode": true, "env": { "ANTHROPIC_AUTH_TOKEN": "${ANTHROPIC_API_KEY}", "HTTPS_PROXY": "http://127.0.0.1:7890" } } ``` ### Permission Modes ```bash # Default: prompt for every action node package/cli.js # Auto-accept file edits (still prompts for dangerous operations) node package/cli.js --permission-mode acceptEdits # Skip all permissions (SANDBOX ONLY) node package/cli.js --dangerously-skip-permissions ``` ### Environment-Specific Configurations **Development:** ```json { "permissionMode": "acceptEdits", "model": "claude-sonnet-4-6", "systemPrompt": "Development mode - prefer speed over perfection" } ``` **Production Review:** ```json { "permissionMode": "prompt", "model": "claude-opus-4-6", "systemPrompt": "Production code review - prioritize security and correctness" } ``` ## Plugin System ### Using Official Plugins ```bash # Load single plugin node package/cli.js --plugin-dir ./plugins/code-review # Load multiple plugins node package/cli.js \ --plugin-dir ./plugins/code-review \ --plugin-dir ./plugins/commit-commands # With custom plugin node package/cli.js --plugin-dir /path/to/your/plugin ``` ### Available Official Plugins - **code-review** - Automated code review capabilities - **commit-commands** - Smart git commit message generation - **pr-review-toolkit** - Pull request analysis tools - **security-guidance** - Security best practices enforcement - **feature-dev** - Feature development workflow - **frontend-design** - UI/UX development assistance - **plugin-dev** - Tools for developing new plugins - **agent-sdk-dev** - SDK development utilities ### Plugin Structure ``` my-plugin/ ├── package.json ├── plugin.ts # Main entry point └── skills/ └── my-skill.md # Skill definitions ``` Example `plugin.ts`: ```typescript import { Plugin } from '@anthropic/sdk'; export default class MyPlugin extends Plugin { name = 'my-plugin'; version = '1.0.0'; async initialize() { this.registerCommand('analyze', async (args) => { // Command implementation }); } } ``` ## Common Workflows ### Code Generation ```bash node package/cli.js -p "Create a REST API endpoint for user authentication using Express.js and JWT" ``` In interactive mode: ``` > Create a TypeScript interface for a blog post with title, content, author, and timestamps > Add validation using zod > Generate unit tests ``` ### Code Review ```bash # Review uncommitted changes node package/cli.js --plugin-dir ./plugins/code-review -p "review my current changes" # Review specific file node package/cli.js -p "review src/auth/login.ts for security issues" ``` ### Refactoring ```typescript // Before asking Claude // src/utils/old-code.ts function processData(data: any) { // messy implementation return data.map(x => x.value).filter(x => x > 0); } ``` Prompt: ``` > Refactor processData in src/utils/old-code.ts to: > - Use proper TypeScript types > - Add error handling > - Extract reusable helpers > - Add JSDoc comments ``` ### Git Workflows ```bash # Smart commit messages node package/cli.js --plugin-dir ./plugins/commit-commands # Then in interactive mode: /commit # PR review node package/cli.js --plugin-dir ./plugins/pr-review-toolkit -p "review PR #123" ``` ### Multi-File Changes ```bash node package/cli.js -p "Add error logging to all API endpoints in src/api/" ``` Interactive workflow: ``` > Create a new feature: user profile editing > Add database schema > Create API routes > Add frontend form > Write integration tests ``` ## Source Code Exploration ### Architecture Overview ``` src/ ├── tools/ # 30+ built-in tools (file operations, git, search) ├── commands/ # 50+ CLI commands ├── services/ # API clients, MCP, OAuth ├── components/ # React UI components (389 files) ├── ink/ # Terminal UI framework ├── utils/ # Core utilities (564 files) ├── hooks/ # React hooks for state management └── bridge/ # Communication layer ``` ### Key Modules to Study **Tool System (`src/tools/`):** ```typescript // Example: Understanding the file editing tool // src/tools/edit-file.ts interface EditFileArgs { path: string; edits: Array<{ oldText: string; newText: string; }>; } ``` **Command System (`src/commands/`):** ```typescript // src/commands/commit.ts // How /commit command generates messages ``` **Service Layer (`src/services/`):** ```typescript // src/services/anthropic-api.ts // Direct API communication patterns ``` ### Analyzing Tool Implementation ```bash # Study how a specific tool works cat src/tools/ripgrep.ts cat src/tools/file-operations.ts cat src/tools/git-operations.ts ``` Example tool pattern: ```typescript export interface ToolDefinition { name: string; description: string; inputSchema: object; execute: (args: any) => Promise<any>; } export const searchTool: ToolDefinition = { name: 'search_files', description: 'Search for text in files', inputSchema: { type: 'object', properties: { pattern: { type: 'string' }, path: { type: 'string' } } }, execute: async ({ pattern, path }) => { // Implementation using vendor/ripgrep } }; ``` ## Advanced Configuration ### Custom System Prompts ```json { "systemPrompt": "You are an expert in React and TypeScript. When suggesting code:\n- Always use functional components with hooks\n- Prefer const over let\n- Use strict TypeScript types\n- Follow airbnb style guide\n- Add meaningful comments for complex logic" } ``` ### Output Formatting ```bash # Human-readable (default) node package/cli.js -p "list files" # JSON for automation node package/cli.js -p "analyze dependencies" --output-format json # Compact mode node package/cli.js -p "explain this code" --output-format compact ``` ### Session Management ```bash # List sessions node package/cli.js --list-sessions # Resume specific session node package/cli.js -r abc123 # Continue last session node package/cli.js -c # Share session # In interactive mode: /share ``` ### Token Budget Control ```json { "maxTokens": 4096, "contextWindow": 200000, "budget": { "daily": 1000000, "perRequest": 100000 } } ``` ## Troubleshooting ### Authentication Errors ```bash # Check current auth status node package/cli.js --check-auth # Re-authenticate rm -rf ~/.claude/auth node package/cli.js # Will trigger OAuth flow # Verify API key echo $ANTHROPIC_AUTH_TOKEN ``` ### Network/Proxy Issues ```bash # Set proxy export HTTPS_PROXY=http://127.0.0.1:7890 export HTTP_PROXY=http://127.0.0.1:7890 # Or in settings.json { "env": { "HTTPS_PROXY": "http://127.0.0.1:7890" } } # Test connectivity node package/cli.js -p "hello" --debug ``` ### Performance Issues ```bash # Use faster model node package/cli.js --model haiku # Reduce context node package/cli.js --max-tokens 2048 # Clear session history # In interactive mode: /clear ``` ### Plugin Loading Errors ```bash # Verify plugin structure ls -la plugins/your-plugin/ cat plugins/your-plugin/package.json # Check plugin logs node package/cli.js --plugin-dir ./plugins/your-plugin --debug ``` ### Binary Module Issues ```bash # Verify platform binaries exist ls -la package/vendor/ripgrep/
GitHubで見る
この SKILL.md は非常に大きいため、SkillsMP では最初のセクションだけを表示しています。 GitHubで見る