@quantiya/codevibe-claude-plugin
v1.0.5
Published
Mobile companion for Claude Code - monitor and control your Claude Code sessions from your iPhone with CodeVibe
Maintainers
Readme
CodeVibe Claude Plugin
Control Claude Code from your iPhone with real-time bidirectional synchronization. This plugin enables seamless communication between your desktop Claude Code sessions and the CodeVibe iOS app.
Features
- Real-time Sync - See desktop conversations on mobile instantly (~100-500ms latency)
- Mobile Control - Send prompts from your iPhone that execute in the correct desktop session
- Locked Screen Support - Works even when your Mac screen is locked (via tmux)
- Interactive Prompts - Answer permission dialogs with numbered options (1=Yes, 2=Yes for project, 3=Reject)
- Voice Input - Dictate prompts using iOS speech-to-text
- Image Attachments - Send screenshots and photos with your messages
- Markdown Rendering - Code blocks and formatting displayed beautifully
- Secure - Uses AWS AppSync with Cognito authentication (Sign in with Apple/Google)
- Complete Capture - Syncs user prompts, assistant responses, tool usage, and file changes
- Session-Aware - Multiple Claude Code sessions work independently
- Auto-execution - Mobile prompts execute immediately (same trust model as desktop)
Prerequisites
- macOS (darwin platform)
- Node.js 18.0.0 or higher
- tmux (for locked screen support):
brew install tmux - Claude Code with plugin system enabled
Installation
Step 1: Add Marketplace (One-time)
Inside Claude Code, run:
/plugin marketplace add hendryyeh/quantiya-codevibe-marketplaceStep 2: Install Plugin (One-time)
/plugin install codevibe-claudeThis downloads plugin files to ~/.claude/plugins/codevibe-claude/.
Step 3: Run Setup Script (One-time)
After installation, run the setup script to configure your PATH:
~/.claude/plugins/codevibe-claude/bin/codevibe-claude-setupThen reload your shell:
source ~/.zshrc # or ~/.bashrcStep 4: Authenticate (One-time)
Login to your CodeVibe account:
codevibe-claude loginThis opens a browser for OAuth authentication (Sign in with Apple or Google). Your tokens are stored securely in ~/.codevibe-claude/.
Other auth commands:
codevibe-claude status # Check authentication status
codevibe-claude logout # Sign out and clear tokensStep 5: Start Claude Code with Mobile Support
Important: You must use the codevibe-claude wrapper instead of claude directly:
codevibe-claudeThis wrapper:
- Creates a tmux session for the Claude Code instance
- Enables mobile prompts to work even when your Mac screen is locked
- Supports multiple concurrent Claude Code sessions
Note: Running claude directly without the wrapper will prevent mobile prompts from working when your screen is locked.
Step 6: Download the iOS App
Download "CodeVibe" from the App Store and sign in with the same account you used in Step 4.
Usage
Using the codevibe-claude Wrapper
# Start a new session (same as running `claude`)
codevibe-claude
# Resume the last session
codevibe-claude --resume
# Start with a prompt
codevibe-claude -p "fix the bug"
# All other claude arguments work too
codevibe-claude --model sonnetBenefits of codevibe-claude
| Feature | codevibe-claude | Regular claude |
|---------|-------------------|------------------|
| Mobile prompts | Works always | Only when screen unlocked |
| Screen locked support | Yes (via tmux) | No |
| Mouse scrolling | Yes | Yes |
| Same experience | Yes | Yes |
Desktop to Mobile Sync
Everything you do in Claude Code is automatically synced to mobile:
- User Prompts - Your questions and commands
- Assistant Responses - Claude's complete responses
- Tool Usage - File edits, reads, writes
- Interactive Prompts - Y/n permission requests
- Notifications - System messages
Mobile to Desktop Control
From the iOS app:
- Open the CodeVibe app
- Select your active session
- Type a message or response
- It executes immediately in your desktop Claude Code session
- See the response on both desktop and mobile
Responding to Permission Prompts from Mobile
When Claude needs permission to edit or write files, you can respond directly from your iPhone.
Available Options:
| Reply | Description |
|-------|-------------|
| 1 | Approve - Allow this specific file operation |
| 2 | Always Allow - Approve and skip future prompts for this project |
| 3 | Reject - Decline the operation |
| 3 <message> | Reject with Instructions - Decline and tell Claude what to do instead |
Examples:
1 -> Approves the edit
2 -> Approves and trusts this project
3 -> Rejects the edit
3 use a different approach -> Rejects and redirects ClaudeOther Inputs:
Y/N- For yes/no confirmation promptsexit,quit- To cancel running operations- Any other text - Sent as a new prompt to Claude
Troubleshooting
"codevibe-claude: command not found"
Cause: PATH not updated or shell not reloaded.
Solution:
source ~/.zshrc # or ~/.bashrcOr check if PATH was added:
grep "codevibe-claude" ~/.zshrc"Not authenticated" error
Cause: User hasn't logged in or tokens expired.
Solution:
codevibe-claude loginMobile messages not executing
Cause: Not using the codevibe-claude wrapper.
Solution: Start Claude Code with:
codevibe-claudeNot just claude.
Plugin hooks not firing
Cause: Plugin not properly installed.
Solution:
# In Claude Code
/plugin list # Check if installed
/plugin uninstall codevibe-claude
/plugin install codevibe-claudePort already in use
Error: EADDRINUSE: address already in use :::3456
Solution: Another MCP server is already running. Kill it:
pkill -f "node dist/server.js"Mac Power Settings (for Locked Screen Support)
To ensure mobile prompts work when your Mac screen is locked:
- System Settings -> Battery (or Energy) -> Set "Computer sleep" to Never (when on power)
- In Terminal:
sudo pmset -a tcpkeepalive 1 sudo pmset -a womp 1
This keeps network connections alive during sleep.
Architecture
Desktop -> Mobile:
+-------------+ +----------+ +---------+ +----------+ +--------+
| Claude Code | -> | Hook | -> | MCP | -> | AppSync | -> | Mobile |
| | | Scripts | | Server | | GraphQL | | App |
+-------------+ +----------+ +---------+ +----------+ +--------+
Mobile -> Desktop:
+--------+ +----------+ +---------+ +-------------+
| Mobile | -> | AppSync | -> | MCP | -> | Claude Code |
| App | | GraphQL | | Server | | (tmux keys) |
+--------+ +----------+ +---------+ +-------------+Development
If you want to contribute or run from source:
Clone and Build
git clone https://github.com/hendryyeh/quantiya-codevibe-claude-plugin.git
cd quantiya-codevibe-claude-plugin
npm install
npm run buildLocal Testing
For local development and testing:
./install-local.sh
# In Claude Code
/plugin marketplace add ./dev-marketplace
/plugin install codevibe-claude@codevibe-claude-devView Logs
# MCP Server logs
tail -f /tmp/codevibe-claude-mcp.log
# Hook scripts logs
tail -f /tmp/codevibe-claude-hooks.logSupport
- Issues: GitHub Issues
Related
- CodeVibe iOS App - Available on the App Store
License
MIT License - see LICENSE file for details.
Made with care by the CodeVibe Team
