一键导入
claudecodeui-web-interface
CloudCLI (Claude Code UI) - web and mobile interface for managing Claude Code, Cursor CLI, Codex, and Gemini CLI sessions remotely
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
CloudCLI (Claude Code UI) - web and mobile interface for managing Claude Code, Cursor CLI, Codex, and Gemini CLI sessions remotely
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create AI marketing videos and images using Arcads API — Seedance, Sora, Veo, Kling, Nano Banana, ChatGPT Image, and multi-step ad pipelines
Generate AI marketing videos and static image ads using the Arcads API with skills for Seedance 2.0, Sora 2, Veo 3.1, Kling 3.0, Nano Banana, and 37 Meta ad templates
Create AI marketing videos and images using Arcads API with Seedance 2.0, Sora 2, Veo 3.1, Kling 3.0, Nano Banana, and 37 static Meta ad templates
Generate AI marketing videos and images using Arcads creative stack (Seedance 2.0, Sora 2, Veo 3.1, Kling, Nano Banana, ChatGPT Image) from Claude Code or Cursor
Generate AI marketing videos and static image ads using Arcads external API with Seedance 2.0, Sora 2, Veo 3.1, Kling, Nano Banana, and 37-template Meta image library
Create AI marketing videos and static Meta image ads using the Arcads API with Seedance 2.0, Sora 2, Veo 3.1, Kling, Nano Banana, ChatGPT Image, and 37 static ad templates
| name | claudecodeui-web-interface |
| description | CloudCLI (Claude Code UI) - web and mobile interface for managing Claude Code, Cursor CLI, Codex, and Gemini CLI sessions remotely |
| triggers | ["set up CloudCLI web interface","install Claude Code UI","manage Claude sessions remotely","run CloudCLI on mobile","configure CloudCLI plugins","enable Claude Code tools in CloudCLI","set up CloudCLI with Docker sandbox","access Claude Code from browser"] |
Skill by ara.so — Claude Code Skills collection.
CloudCLI (aka Claude Code UI) is a web and mobile interface for managing Claude Code, Cursor CLI, Codex, and Gemini CLI sessions. It provides a responsive UI with chat interface, file explorer, Git integration, session management, and plugin system. Use it locally or remotely to access your AI coding sessions from any device.
Try instantly without installation (requires Node.js v22+):
npx @cloudcli-ai/cloudcli
Then open http://localhost:3001 in your browser.
npm install -g @cloudcli-ai/cloudcli
cloudcli
For isolated agent sessions with hypervisor-level isolation:
# Requires Docker Sandboxes CLI: https://docs.docker.com/ai/sandboxes/get-started/
npx @cloudcli-ai/cloudcli@latest sandbox ~/my-project
CloudCLI discovers existing Claude Code sessions automatically from ~/.claude. No additional configuration needed for basic usage.
# Custom port (default: 3001)
PORT=8080 npx @cloudcli-ai/cloudcli
# Custom host (default: localhost)
HOST=0.0.0.0 npx @cloudcli-ai/cloudcli
# Custom Claude config directory
CLAUDE_CONFIG_DIR=~/custom/path npx @cloudcli-ai/cloudcli
For production deployments:
# Install PM2
npm install -g pm2
# Install CloudCLI globally
npm install -g @cloudcli-ai/cloudcli
# Start with PM2
pm2 start cloudcli --name "cloudcli-server"
# Save PM2 config
pm2 save
# Enable auto-start on boot
pm2 startup
To access from other devices on your network:
# Start with 0.0.0.0 to allow network access
HOST=0.0.0.0 PORT=3001 npx @cloudcli-ai/cloudcli
Access from any device: http://[your-server-ip]:3001
All Claude Code tools are disabled by default for security. Enable only what you need:
Common tools to enable:
read_file - Read file contentswrite_file - Modify filesexecute_command - Run shell commandssearch_files - Search in projectlist_directory - Browse directoriesSettings are saved to ~/.claude/config.json and sync with native Claude Code.
Example plugins:
# Project Stats
https://github.com/cloudcli-ai/cloudcli-plugin-starter
# Web Terminal
https://github.com/cloudcli-ai/cloudcli-plugin-terminal
# CloudCLI Scheduler
https://github.com/grostim/cloudcli-cron
Plugin structure:
my-plugin/
├── manifest.json # Plugin configuration
├── client/
│ └── index.tsx # React component (frontend)
└── server/
└── index.js # Node.js backend (optional)
manifest.json:
{
"name": "my-plugin",
"displayName": "My Plugin",
"version": "1.0.0",
"description": "My custom plugin",
"author": "Your Name",
"entry": "client/index.tsx",
"server": "server/index.js",
"permissions": ["fs:read", "process:spawn"],
"dependencies": {
"react": "^18.0.0"
}
}
client/index.tsx:
import React, { useEffect, useState } from 'react';
export default function MyPlugin({ context, rpc }) {
const [projectPath, setProjectPath] = useState('');
useEffect(() => {
// Access current project context
setProjectPath(context.currentProject?.path || 'No project');
}, [context.currentProject]);
const handleAction = async () => {
// Call backend RPC
const result = await rpc.call('getStats', { path: projectPath });
console.log(result);
};
return (
<div className="p-4">
<h2 className="text-xl font-bold mb-4">My Plugin</h2>
<p>Project: {projectPath}</p>
<button
onClick={handleAction}
className="mt-4 px-4 py-2 bg-blue-500 text-white rounded"
>
Get Stats
</button>
</div>
);
}
server/index.js:
export function activate(context) {
// Register RPC methods
context.rpc.registerMethod('getStats', async (params) => {
const fs = await import('fs/promises');
const files = await fs.readdir(params.path);
return { fileCount: files.length, files };
});
return {
dispose: () => {
// Cleanup on deactivate
}
};
}
See the plugin starter template for complete examples.
CloudCLI exposes a REST API for programmatic access:
curl http://localhost:3001/api/sessions
Response:
{
"sessions": [
{
"id": "session-123",
"name": "my-project",
"path": "/home/user/projects/my-project",
"created": "2025-01-01T10:00:00Z",
"lastActive": "2025-01-01T12:30:00Z"
}
]
}
curl -X POST http://localhost:3001/api/sessions/session-123/message \
-H "Content-Type: application/json" \
-d '{"message": "Implement user authentication"}'
curl http://localhost:3001/api/projects/my-project/files
curl -X POST http://localhost:3001/api/sessions/session-123/execute \
-H "Content-Type: application/json" \
-d '{"command": "npm test"}'
# Install globally
npm install -g @cloudcli-ai/cloudcli
# Start server
cloudcli
# In another terminal, start Claude Code
claude-code
# Access UI at http://localhost:3001
# Install dependencies
npm install -g pm2 @cloudcli-ai/cloudcli
# Start with PM2
pm2 start cloudcli --name cloudcli \
-- --host 0.0.0.0 --port 3001
# Save and enable auto-start
pm2 save
pm2 startup
# Monitor logs
pm2 logs cloudcli
# Start isolated Claude Code session
npx @cloudcli-ai/cloudcli@latest sandbox ~/my-project
# Access at http://localhost:3001
# All file operations are sandboxed
// In your project's .cloudcli/config.json
{
"agents": [
{
"type": "claude-code",
"model": "claude-3-7-sonnet-20250219",
"name": "Backend Agent"
},
{
"type": "cursor-cli",
"model": "gpt-4",
"name": "Frontend Agent"
},
{
"type": "gemini-cli",
"model": "gemini-2.0-flash-exp",
"name": "Testing Agent"
}
]
}
CloudCLI syncs with ~/.claude/config.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"],
"env": {
"NODE_ENV": "production"
}
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}
Changes made in CloudCLI UI are immediately reflected in native Claude Code.
# Find process using port 3001
lsof -i :3001
# Kill the process
kill -9 <PID>
# Or use different port
PORT=8080 npx @cloudcli-ai/cloudcli
# Ensure binding to 0.0.0.0
HOST=0.0.0.0 npx @cloudcli-ai/cloudcli
# Check firewall
sudo ufw allow 3001/tcp
# Verify network access
curl http://[your-ip]:3001
# Verify Claude config directory
ls -la ~/.claude/
# Check for sessions
ls -la ~/.claude/sessions/
# Specify custom config dir
CLAUDE_CONFIG_DIR=~/custom/path npx @cloudcli-ai/cloudcli
# Check plugin manifest
curl https://raw.githubusercontent.com/owner/plugin/main/manifest.json
# Verify permissions in manifest
# Ensure required dependencies are compatible
# Check CloudCLI logs
tail -f ~/.cloudcli/logs/plugin-manager.log
Tools settings are stored in ~/.claude/config.json. Verify:
# Check config file
cat ~/.claude/config.json
# Ensure write permissions
ls -la ~/.claude/
# Reset to defaults
rm ~/.claude/config.json
# Restart CloudCLI to regenerate
# Verify Docker Sandboxes CLI installed
sbx --version
# Check Docker daemon running
docker ps
# View sandbox logs
docker logs <container-id>
# Clean up stopped sandboxes
docker container prune
// Access CloudCLI from VS Code extension
import axios from 'axios';
const CLOUDCLI_URL = 'http://localhost:3001';
async function sendToAgent(message: string) {
const sessions = await axios.get(`${CLOUDCLI_URL}/api/sessions`);
const activeSession = sessions.data.sessions[0];
await axios.post(
`${CLOUDCLI_URL}/api/sessions/${activeSession.id}/message`,
{ message }
);
}
# .github/workflows/ai-review.yml
name: AI Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Start CloudCLI
run: |
npx @cloudcli-ai/cloudcli &
sleep 5
- name: Request AI Review
run: |
curl -X POST http://localhost:3001/api/sessions/create \
-H "Content-Type: application/json" \
-d '{"project": "."}'
curl -X POST http://localhost:3001/api/sessions/default/message \
-H "Content-Type: application/json" \
-d '{"message": "Review this pull request for security issues"}'
CloudCLI Cloud supports n8n webhooks for workflow automation. Self-hosted can use HTTP Request nodes:
{
"nodes": [
{
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"url": "http://localhost:3001/api/sessions/default/message",
"method": "POST",
"jsonParameters": true,
"options": {},
"bodyParametersJson": "={{ {\"message\": $json.prompt} }}"
}
}
]
}
Add to .cloudcli/config.json in your project:
{
"models": {
"custom-claude": {
"provider": "anthropic",
"model": "claude-3-7-sonnet-20250219",
"temperature": 0.7,
"maxTokens": 4096
},
"custom-gpt": {
"provider": "openai",
"model": "gpt-4-turbo-preview",
"temperature": 0.5
}
}
}
{
"workspace": {
"name": "My Project",
"description": "Full-stack application",
"defaultAgent": "claude-code",
"autoSave": true,
"gitIntegration": true,
"fileWatcher": {
"enabled": true,
"ignored": ["node_modules", ".git", "dist"]
}
}
}
For remote access with authentication:
# Use reverse proxy with auth (nginx example)
server {
listen 443 ssl;
server_name cloudcli.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
auth_basic "CloudCLI Access";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}