Claude Code Extended is an enhanced version of Anthropic's Claude Code that adds mobile remote access capabilities. It includes a backend server that enables secure remote access to Claude Code functionality through mobile applications, along with the original terminal-based agentic coding tool.
Features:
- Original Claude Code terminal functionality
- Remote access server for mobile applications
- WebSocket-based real-time communication
- Secure authentication with JWT tokens
- File system watching and synchronization
- Session management across devices
- Optional Tailscale integration for secure networking
- Cross-platform support (macOS, Linux, Windows)
- Quick Start
- Installation
- Configuration
- Usage
- Mobile Apps
- API Documentation
- Development
- Security
- Contributing
- License
- Install dependencies:
npm install -g @anthropic-ai/claude-code-extended
- Navigate to your project directory and run:
claude
- Clone and setup the server:
git clone https://github.com/jfuginay/claude-code.git
cd claude-code
npm install
- Start the development server:
./start-dev.sh
- Connect from mobile apps using the provided URLs.
- Node.js 18.0.0 or higher
- npm or yarn package manager
- Git (for cloning the repository)
npm install -g @anthropic-ai/claude-code-extended
# Clone the repository
git clone https://github.com/jfuginay/claude-code.git
cd claude-code
# Install dependencies
npm install
# Build the project
npm run build
# Optional: Link for global access
npm link
# Clone with development dependencies
git clone https://github.com/jfuginay/claude-code.git
cd claude-code
npm install
# Start in development mode
npm run dev
Create a .env
file in the project root (or use .env.example
as a template):
# Server Configuration
CLAUDE_PORT=3000
CLAUDE_HOST=0.0.0.0
# SSL Configuration (Production)
CLAUDE_SSL_ENABLED=false
CLAUDE_SSL_CERT=/path/to/cert.pem
CLAUDE_SSL_KEY=/path/to/key.pem
# Authentication
CLAUDE_JWT_SECRET=your-secret-key-here-at-least-64-characters-long-for-security
CLAUDE_SESSION_TIMEOUT=86400000
CLAUDE_MAX_DEVICES=10
# Database
CLAUDE_DB_PATH=./data/claude-code.db
# Logging
CLAUDE_LOG_LEVEL=info
CLAUDE_LOG_FILE=./data/logs/claude-code.log
# Tailscale Integration (Optional)
TAILSCALE_ENABLED=false
TAILSCALE_AUTH_KEY=your-tailscale-auth-key
TAILSCALE_HOSTNAME=claude-code-server
# Environment
NODE_ENV=production
Run the interactive setup wizard to configure the server:
npm run setup
# or
claude-setup
Navigate to your project directory and run Claude Code:
claude
Use natural language commands to:
- Execute routine coding tasks
- Explain complex code
- Handle git workflows
- Search and analyze your codebase
- Generate documentation
Development:
npm run dev
# or use the convenience script
./start-dev.sh
Production:
npm run build
npm start
# or
claude-server
As a Daemon:
claude-daemon start
# Build the project
npm run build
# Start production server
npm run start
# Start development server with hot reload
npm run dev
# Run setup wizard
npm run setup
# Start as daemon
npm run daemon
# Run tests
npm run test
# Lint code
npm run lint
npm run lint:fix
# Format code
npm run format
npm run build
- Compile TypeScript to JavaScriptnpm run dev
- Start development server with hot reloadnpm run start
- Start production servernpm run setup
- Run interactive setup wizardnpm run daemon
- Start server as background daemonnpm run test
- Run test suitenpm run lint
- Check code stylenpm run format
- Format code with Prettier
This project includes mobile applications for remote access:
Located in claude-code-android/
directory. See Android Setup Guide for installation instructions.
Located in claude-code-ios/
directory. See iOS Setup Guide for installation instructions.
- Start the server using
./start-dev.sh
- Note the server URL and WebSocket URL displayed
- Enter these URLs in your mobile app settings
- Use default credentials (development):
- Username:
admin
- Password:
admin123
- Username:
For detailed mobile setup instructions, see MOBILE-SETUP.md.
POST /api/auth/login
- Authenticate userPOST /api/auth/logout
- End user sessionGET /api/auth/verify
- Verify JWT token
GET /api/sessions
- List active sessionsPOST /api/sessions
- Create new sessionDELETE /api/sessions/:id
- End session
GET /api/files
- List files in directoryGET /api/files/content
- Get file contentPOST /api/files
- Create/update fileDELETE /api/files
- Delete file
GET /api/system/info
- Get system informationGET /api/system/status
- Get server status
terminal:input
- Send command to terminalterminal:output
- Receive terminal outputfile:changed
- File system change notificationsession:created
- New session notification
For detailed API documentation, see API.md.
claude-code/
βββ src/ # TypeScript source code
β βββ server.ts # Main server entry point
β βββ daemon.ts # Daemon process management
β βββ setup-wizard.ts # Interactive setup
β βββ routes/ # Express route handlers
β βββ services/ # Business logic services
β βββ middleware/ # Express middleware
β βββ websocket/ # WebSocket handlers
β βββ types/ # TypeScript type definitions
β βββ utils/ # Utility functions
βββ dist/ # Compiled JavaScript
βββ data/ # Database and logs
βββ claude-code-android/ # Android mobile app
βββ claude-code-ios/ # iOS mobile app
βββ docs/ # Documentation
βββ examples/ # Usage examples
-
Setup development environment:
npm install npm run build
-
Start development server:
npm run dev
-
Make changes and test:
npm run lint npm run test
-
Build for production:
npm run build
# Run all tests
npm run test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
The project uses ESLint and Prettier for code formatting:
# Check code style
npm run lint
# Fix code style issues
npm run lint:fix
# Format code
npm run format
- JWT-based authentication with configurable expiration
- Secure password hashing with bcrypt
- Session management with automatic cleanup
- Rate limiting to prevent brute force attacks
- HTTPS support with SSL/TLS certificates
- CORS protection with configurable origins
- Helmet.js for security headers
- Optional Tailscale integration for zero-trust networking
- SQLite database with encrypted storage
- Configurable session timeouts
- Limited device registration per user
- Secure file access controls
- Use strong JWT secrets (minimum 64 characters)
- Enable HTTPS with valid SSL certificates
- Configure firewall rules to restrict access
- Regular security updates and dependency scanning
- Monitor logs for suspicious activity
We welcome your feedback! You can:
- Use the
/bug
command within Claude Code - File a GitHub issue
- Contact us through the mobile app feedback feature
When reporting bugs, please include:
- Operating system and version
- Node.js version
- Steps to reproduce the issue
- Error messages or logs
- Expected vs actual behavior
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature-name
- Make your changes and add tests
- Run tests:
npm run test
- Commit your changes:
git commit -m "Add feature"
- Push to the branch:
git push origin feature-name
- Submit a pull request
This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details.
- Documentation: Official Docs
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Original Claude Code by Anthropic
- Mobile app development frameworks
- Open source community contributors
When you use Claude Code Extended, data collection follows the same policies as the original Claude Code:
We may use feedback to improve our products and services, but we will not train generative models using your feedback from Claude Code. Given their potentially sensitive nature, we store user feedback transcripts for only 30 days.
If you choose to send us feedback about Claude Code, such as transcripts of your usage, Anthropic may use that feedback to debug related issues and improve Claude Code's functionality (e.g., to reduce the risk of similar bugs occurring in the future).
We have implemented several safeguards to protect your data, including limited retention periods for sensitive information, restricted access to user session data, and clear policies against using feedback for model training.
For full details, please review our Commercial Terms of Service and Privacy Policy.