中文文档 | English
Remote control your local Claude Code CLI through Feishu (Lark) messenger.
Claude Client bridges the Feishu messaging platform with the Claude Code CLI, enabling you to interact with Claude AI remotely from your phone or any device with Feishu installed.
Messages refresh continuously, showing Claude's execution in real-time - tool calls, file operations at a glance:

Send ? to display a beautiful card with one-click access to hot directories:

Write code, refactor files, or debug issues from your phone while commuting, in meetings, or away from your desk. No VPN or remote desktop needed - just Feishu.
Core Highlight: Feishu messages update continuously, showing Claude's execution in real-time! - Dynamic Message Updates: The same message refreshes in real-time, displaying current execution status - Tool Call Visualization: Clearly shows which tools Claude is using (📁 Read file, 🔧 Execute command, 🔍 Search code, etc.) - Progress Awareness: Even for long-running tasks, users can see progress in real-time - no more anxious waiting - Smart Truncation: Extra-long messages are automatically truncated to ensure successful delivery
Beautiful Feishu cards with clickable buttons - no need to memorize commands. Just tap to switch directories, change modes, or resume tasks.
Automatically log all changes: - Git Mode: Auto-commit with customizable message templates, includes diff - Feishu Docs: Write changes directly to a Feishu document - Extensible: Easy to add more logging backends
git clone https://github.com/YOUR_USERNAME/claude-client.git
cd claude-client
npm install
cp .env.example .env
Edit .env file:
# Feishu Bot Configuration
FEISHU_APP_ID=cli_xxxxxxxxxxxx
FEISHU_APP_SECRET=xxxxxxxxxxxxxxxxxxxx
FEISHU_DOMAIN=feishu # or 'lark' for international version
# Server Configuration
PORT=3000
HOST=0.0.0.0
# Optional: Claude API Key (usually managed by CLI)
ANTHROPIC_API_KEY=sk-ant-xxxxxxxx
# Optional: Specify Claude CLI path (WSL users may need this)
# CLAUDE_CODE_PATH=/home/xxx/.nvm/versions/node/v24.x.x/bin/claude
Note for WSL users: If running the project in WSL, you may need to set
CLAUDE_CODE_PATH. Usewhich claudeto find the full path and configure it in.env.
# macOS/Linux
brew install claude
# Or via npm
npm install -g @anthropic-ai/claude-code
# Verify installation
claude --version
From "Credentials & Basic Info" page:
- App ID → FEISHU_APP_ID
- App Secret → FEISHU_APP_SECRET
FEISHU_ENCRYPT_KEYFEISHU_VERIFICATION_TOKENim.message.receive_v1 - Receive messages (required)card.action.trigger - Card button click callback (for help card interactions)Add the following permissions in "Permission Management" → "Request Permissions":
Method 1: Batch Import (Recommended)

Method 2: Manual Add
In "App Capabilities" → "Bot":
1. Enable bot functionality
2. Search and add the following permissions:
- im:message - Get and send messages in private and group chats
- im:message:send_as_bot - Send messages as bot
- im:message.group_at_msg:readonly - Get @bot messages in groups
- im:chat - Get group info
- im:chat.members:bot_access - Get group member list
- cardkit:card:write - Send card messages (for help cards)
Fill in the credentials in .env file:
# Feishu Bot Configuration
FEISHU_APP_ID=cli_xxxxxxxxxxxx
FEISHU_APP_SECRET=xxxxxxxxxxxxxxxxxxxx
FEISHU_ENCRYPT_KEY=xxxxxxxxxxxxxxxxxxxx
FEISHU_VERIFICATION_TOKEN=xxxxxxxxxxxxxxxxxxxx
FEISHU_DOMAIN=feishu # or 'lark' for international version
npm run build
npm start
Or run in development mode:
npm run dev
Simply send a message to the bot in Feishu:
Read the package.json file and explain its structure
In group chats, mention the bot:
@Claude Help me refactor this function
| Command | Description |
|---|---|
? or ? or /help |
Show help card with hot directories buttons |
/clear or /reset |
Clear current session context |
/status |
View session status |
/pwd |
Show current working directory |
/cd <path> |
Switch working directory (supports relative paths like ../) |
/mode <mode> |
Change permission mode |
/tasklist or /tasks |
Show context history for current directory |
/resume <dir> |
Resume a previous task |
/taskdelete <dir> |
Delete task record for specified directory |
| Mode | Description |
|---|---|
default |
Manual approval required for all operations |
acceptEdits |
Auto-approve file edits, others need approval |
bypassPermissions |
Skip all permission checks (use with caution) |
plan |
Plan mode for complex task planning |
The help card shows your 5 most recently accessed directories for quick navigation:
? → Shows hot directories → Click to switch
/tasklist to see previous contexts for the current directoryConfigure in data/change-logger-config.json:
{
"enabled": true,
"type": "git",
"git": {
"autoCommit": false,
"commitMessageTemplate": "feat(claude-client): {userMessage}",
"includeDiff": true,
"excludePatterns": ["node_modules", ".git", "dist"]
}
}
Supported logging types:
- git - Log changes using Git
- feishu-doc - Log to Feishu document
- console - Print to console (for debugging)
- none - Disable logging
claude-client/
├── src/
│ ├── feishu/ # Feishu integration
│ │ ├── client.ts # API client
│ │ └── handler.ts # Event handlers
│ ├── claude/ # Claude CLI integration
│ │ └── agent.ts # Agent wrapper
│ ├── session/ # Session management
│ │ ├── manager.ts # Session manager
│ │ ├── task-store.ts # Task persistence
│ │ └── directory-store.ts # Directory history
│ ├── change-logger/ # Change logging system
│ │ ├── manager.ts # Logger manager
│ │ ├── git-logger.ts # Git logger
│ │ └── feishu-doc-logger.ts
│ ├── utils/ # Utilities
│ │ ├── config.ts # Configuration
│ │ ├── logger.ts # Logging
│ │ └── formatter.ts # Message formatting
│ ├── types/ # TypeScript types
│ ├── app.ts # Main application
│ └── cli.ts # CLI entry point
├── data/ # Persistent data
├── config/ # Configuration files
└── dist/ # Compiled JavaScript
bypassPermissions mode with caution.# Install dependencies
npm install
# Development mode with hot reload
npm run dev
# Build
npm run build
# Watch mode
npm run watch
# Run tests
npm test
# Lint
npm run lint
Contributions are welcome! Please feel free to submit a Pull Request.
Join our group to discuss Claude Client usage and development:

MIT License - see LICENSE for details.
| **[ctok.ai](https://ctok.ai/)** — Claude Code / Codex CLI Shared Access ✅ Claude Code ✅ Codex CLI *Shared access service by community contributor* |
Made with ❤️ by the Claude Client Team
$ claude mcp add claude-client \
-- python -m otcore.mcp_server <graph>