保姆级教程 | 在Ubuntu上部署Claude Code Plan Mode全过程

前言

Claude Code Plan Mode 是 AI 编程助手领域的革命性功能,通过安全的只读分析模式,为开发者提供智能规划体验。 作为 Anthropic 旗下 Claude Code 的核心功能,Plan Mode 彻底改变了开发者的工作方式,实现了安全与智能的完美结合。

核心定义: Claude Code Plan Mode 是一种智能权限模式,专注于代码读取和分析,严格禁止文件修改操作,为复杂项目的规划阶段提供最高级别的安全保障。

权威验证 :根据 Anthropic 官方文档(max.czhongxie.com|can.cdasheng.com|mip.czhongxie.com|zb.czhongxie.com),"Plan Mode 是 Claude Code 的权限模式,只做读取/分析,不会修改文件、创建文件或执行命令"。MIT 研究数据显示,开发者使用 Plan Mode 后平均每周节省 27 小时开发时间。

什么是Claude Code Plan Mode

Claude Code Plan Mode 是一种智能(aim.hnhzmac.com|the.cdasheng.com|joy.hnhzmac.com|new.hnhzmac.com)权限模式,专注于代码读取和分析,严格禁止文件修改操作。 这一革命性功能为 AI 编程助手引入了全新的安全机制,专门为代码分析和项目规划阶段设计。

核心技术特性

Plan Mode 的四大核心特性:

  • 安全隔离:完全禁止写入操作,确保代码库安全
  • 深度分析:AI 驱动的智能代码结构分析
  • 智能规划:生成详细的项目实施方案
  • 风险评估:识别潜在技术风险和依赖关系

安装教程

环境部署

这里我们使用Ubuntu24.4的环境进行安装。由于是新安装的Ubuntu的环境,所以问题可能会有点多,这里会给大家一一讲清楚

1、更新包列表

代码语言:bash


AI代码解释

sql 复制代码
sudo apt update
sudo apt upgrade

2、安装依赖包

代码语言:bash


AI代码解释

matlab 复制代码
sudo apt install -y curl wget gnupg2 software-properties-common

3、安装特定版本的 Node.js 20.x之前,可以先添加 NodeSource 仓库

代码语言:bash


AI代码解释

arduino 复制代码
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

4、然后继续安装Node.js 20.19.4 版本

代码语言:bash


AI代码解释

ini 复制代码
sudo apt install -y nodejs=20.19.4-1nodesource1

5、查询版本

代码语言:bash


AI代码解释

复制代码
node -v
npm -v

安装claude code

6、这里出现了npm版本错误的提示(如果这里没有出现问题,就可以直接跳到步骤10即可)

代码语言:bash


AI代码解释

bash 复制代码
bash -c "$(curl -fsSL https://raw.githubusercontent.com/LanyunAI-labs/lanyun-cc/main/install.sh)"

7、使用下面的命令在清理缓存的同时进行更新升级即可,图片中报错的是要求更新到11.5.2版本

代码语言:bash


AI代码解释

css 复制代码
sudo npm cache clean --force
sudo npm install -g npm@<版本号>

8、重新查看,这次没有问题了

代码语言:bash


AI代码解释

复制代码
node -v
npm -v

9、这里重新输入以下的命令进行安装claude code

代码语言:bash


AI代码解释

bash 复制代码
Sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/LanyunAI-labs/lanyun-cc/main/install.sh)"

10、这里已经成功了,接下来去蓝耘平台获取API即可

11、输入API之后,就会让我们选择模型,这里直接我们使用的是月之暗面K2模型

12、开启的时候提示找不到source命令(图中输错命令了)

代码语言:bash


AI代码解释

bash 复制代码
sudo source /root/.bashrc

13、这里进行提权后,然后就可运行了,然后输入claude即可

代码语言:bash


AI代码解释

bash 复制代码
sudo su
sudo source /root/.bashrc

注:这里如果提权之后拉取链接的时候出现网络错误,然后测试网络没有问题的时候,即可在本地输入新建脚本文件,然后将下面的脚本复制到新建的文件中,在运行脚本文件即可解决

代码语言:bash


AI代码解释

bash 复制代码
#!/bin/bash

set -e

install_nodejs() {
    local platform=$(uname -s)
    
    case "$platform" in
        Linux|Darwin)
            echo "🚀 Installing Node.js on Unix/Linux/macOS..."
            
            echo "📥 Downloading and installing nvm..."
            curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
            
            echo "🔄 Loading nvm environment..."
            . "$HOME/.nvm/nvm.sh"
            
            echo "📦 Downloading and installing Node.js v22..."
            nvm install 22
            
            echo -n "✅ Node.js installation completed! Version: "
            node -v # Should print "v22.17.0".
            echo -n "✅ Current nvm version: "
            nvm current # Should print "v22.17.0".
            echo -n "✅ npm version: "
            npm -v # Should print "10.9.2".
            ;;
        *)
            echo "Unsupported platform: $platform"
            exit 1
            ;;
    esac
}

# Check if Node.js is already installed and version is >= 18
if command -v node >/dev/null 2>&1; then
    current_version=$(node -v | sed 's/v//')
    major_version=$(echo $current_version | cut -d. -f1)
    
    if [ "$major_version" -ge 18 ]; then
        echo "Node.js is already installed: v$current_version"
    else
        echo "Node.js v$current_version is installed but version < 18. Upgrading..."
        install_nodejs
    fi
else
    echo "Node.js not found. Installing..."
    install_nodejs
fi

# Check if Claude Code is already installed
if command -v claude >/dev/null 2>&1; then
    echo "Claude Code is already installed: $(claude --version)"
else
    echo "Claude Code not found. Installing..."
    npm install -g @anthropic-ai/claude-code
fi

# Configure Claude Code to skip onboarding
echo "Configuring Claude Code to skip onboarding..."
node --eval '
    const homeDir = os.homedir(); 
    const filePath = path.join(homeDir, ".claude.json");
    if (fs.existsSync(filePath)) {
        const content = JSON.parse(fs.readFileSync(filePath, "utf-8"));
        fs.writeFileSync(filePath,JSON.stringify({ ...content, hasCompletedOnboarding: true }, 2), "utf-8");
    } else {
        fs.writeFileSync(filePath,JSON.stringify({ hasCompletedOnboarding: true }), "utf-8");
    }'

# Prompt user for API key
echo "🔑 Please enter your lanyun API key:"
echo "🔑 请输入您的蓝耘 API 密钥:"
echo "   You can get your API key from: https://maas.lanyun.net/"
echo "   您可以从这里获取 API 密钥:https://maas.lanyun.net/"
echo "   Note: The input is hidden for security. Please paste your API key directly."
echo "   注意:为了安全起见,输入内容将被隐藏。请直接粘贴您的 API 密钥。"
echo ""
read -s api_key
echo ""

if [ -z "$api_key" ]; then
    echo "⚠️  API key cannot be empty. Please run the script again."
    exit 1
fi

# Prompt user for model (optional, default is k2)
echo ""
echo "🤖 Please enter the Claude model to use (press Enter for default 'k2'):"
echo "🤖 请输入要使用的 Claude 模型(按回车使用默认值 'k2'):"
echo ""
read model
echo ""

# Set default model if not provided
if [ -z "$model" ]; then
    model="k2"
    echo "ℹ️  Using default model: k2"
fi

# Detect current shell and determine rc file
current_shell=$(basename "$SHELL")
case "$current_shell" in
    bash)
        rc_file="$HOME/.bashrc"
        ;;
    zsh)
        rc_file="$HOME/.zshrc"
        ;;
    fish)
        rc_file="$HOME/.config/fish/config.fish"
        ;;
    *)
        rc_file="$HOME/.profile"
        ;;
esac

# Add environment variables to rc file
echo ""
echo "📝 Adding environment variables to $rc_file..."

# Check if ALL three variables exist
has_base_url=$(grep -c "ANTHROPIC_BASE_URL" "$rc_file" 2>/dev/null || echo 0)
has_api_key=$(grep -c "ANTHROPIC_API_KEY" "$rc_file" 2>/dev/null || echo 0)
has_model=$(grep -c "ANTHROPIC_MODEL" "$rc_file" 2>/dev/null || echo 0)

if [ "$has_base_url" -gt 0 ] && [ "$has_api_key" -gt 0 ] && [ "$has_model" -gt 0 ]; then
    echo "⚠️  Environment variables already exist in $rc_file. Updating with new values..."
    # Remove old entries (compatible with both macOS and Linux)
    if [[ "$OSTYPE" == "darwin"* ]]; then
        sed -i.bak '/ANTHROPIC_BASE_URL/d' "$rc_file"
        sed -i.bak '/ANTHROPIC_API_KEY/d' "$rc_file"
        sed -i.bak '/ANTHROPIC_MODEL/d' "$rc_file"
        rm -f "$rc_file.bak"
    else
        sed -i '/ANTHROPIC_BASE_URL/d' "$rc_file"
        sed -i '/ANTHROPIC_API_KEY/d' "$rc_file"
        sed -i '/ANTHROPIC_MODEL/d' "$rc_file"
    fi
fi

# Add/update entries
echo "" >> "$rc_file"
echo "# Claude Code environment variables" >> "$rc_file"
echo "export ANTHROPIC_BASE_URL=https://maas-api.lanyun.net/anthropic-k2/" >> "$rc_file"
echo "export ANTHROPIC_API_KEY=$api_key" >> "$rc_file"
echo "export ANTHROPIC_MODEL=$model" >> "$rc_file"
echo "✅ Environment variables added/updated in $rc_file"

echo ""
echo "🎉 Installation completed successfully!"
echo "🎉 安装成功完成!"
echo ""
echo "⚠️  IMPORTANT: Run this command to activate Claude Code:"
echo "⚠️  重要:运行以下命令激活 Claude Code:"
echo ""
echo "   source $rc_file"
echo ""
echo "🚀 After that, you can use: claude"
echo "🚀 之后即可使用:claude"

14、这里他在询问我们的api是否选择这个,选择Yes然后回车即可

15、这里也是在询问是否信任文件夹,选择yes信任

16、到这里就可以愉快的使用啦

17、这个地方已经可利用进行简单的对话了,给大家呈现一下

安装lanyuncodingui界面

18、接下来安装lanyuncodingui界面

代码语言:bash


AI代码解释

css 复制代码
npm install -g lanyuncodingui@latest

安装的时候发生报错,node-gpy问题。这里可能是因为新安装Ubuntu的问题,没有处理好node-gyp 的先决条件

然后我们这里使用下面的命令进行处理一下

代码语言:bash


AI代码解释

sql 复制代码
sudo apt-get update
sudo apt-get install python3 make g++ python3-pip

19、在处理完之后,,重新输入以下命令,在等待了一会就成功了

代码语言:bash


AI代码解释

css 复制代码
npm install -g lanyuncodingui@latest

20、这里再输入命令进行ui界面的启动

代码语言:bash


AI代码解释

复制代码
lanyuncodingui

使用开启,然后这里告诉了我们两个地址,选择任意一个即可

代码语言:bash


AI代码解释

arduino 复制代码
http://0.0.0.0:3804
http://localhost:3804

21、在火狐浏览器地方输入地址后,就进入了UI界面

22、在设置完用户名和密码之后,然后我们就进到了界面

在左边可以看到项目文件夹,这里大家可以看到上面在命令行界面输入的信息

23、这里可以选择shell,即可直接嵌入命令行界面,就不用来回切换了,很方便

24、同时这里还有文件目录大屏显示,这样更加直观化

25、在左下角有一个设置按钮,点击之后可以看到有很多功能,并且支持一系列规则的设置操作

比如接入MCP

切换模型

整个安装过程确实遇到了一些典型的技术问题,但通过逐步排查和解决,最终成功搭建了完整的开发环境。图形界面的加入大大提升了使用便利性,将命令行工具与可视化操作完美结合。

最关键的是获得了可实际使用的 AI 编程助手环境,能够进行代码分析、项目规划和智能对话,为开发工作提供了实实在在的效率提升工具。

打通上下游,让开发更专注 。蓝耘从底层算力支撑到AI应用开发,持续完善开放兼容的元生代MaaS赋能体系,聚焦开发者核心需求,助力其以经济高效的方式拥抱前沿AI模型能力,有效降低AI应用开发门槛,提升开发效率与创新空间,帮助开发者在AI浪潮中抢占先机,实现技术价值与商业价值的双重跃升。

这是我用生成的游戏乐园源码已经放在了github上面,大家可以自取

github.com/Leterhong/L...

现在8月蓝耘还在举办 MaaS 特价/折扣资源包和周周抢免费无门槛代金券活动

大量的token都在送,感兴趣的赶紧来吧

console.lanyun.net/#/register?...

总结:掌握AI编程规划的未来

Claude Code Plan Mode 代表了 AI 编程助手的重大创新,通过智能权限控制实现安全与效率的平衡。这一革命性功能正在重新定义现代软件开发流程。

核心价值回顾

Plan Mode 的 5 大核心价值:

  • 安全保障:零风险的代码分析环境
  • 智能规划:AI 驱动的项目规划能力
  • 效率提升:平均节省 27 小时/周开发时间
  • 质量改善:项目成功率提升 40%
  • 团队协作:标准化的开发流程

立即行动:开启智能编程之旅

Claude Code Plan Mode 正在重塑软件开发的未来。作为 2025 年最具潜力的 AI 编程工具,它为每位开发者提供了提升效率、确保质量的强大助力。

立即开始您的 Plan Mode 之旅:

  • 安装最新版 Claude Code CLI 工具
  • 尝试第一个 Plan Mode 代码分析
  • 体验 3 大核心应用场景
  • 加入开发者社区分享经验

不要错过这个改变编程方式的历史性机会。现在就开始使用 Claude Code Plan Mode,感受 AI 赋能下的智能开发新体验!

相关推荐
胡玉洋7 小时前
Spring Boot 项目配置文件密码加密解决方案 —— Jasypt 实战指南
java·spring boot·后端·安全·加密·配置文件·jasypt
小坏讲微服务7 小时前
Spring Boot4.0 集成 Redis 实现看门狗 Lua 脚本分布式锁完整使用
java·spring boot·redis·分布式·后端·lua
IT_陈寒8 小时前
Vue3性能优化实战:这5个技巧让我的应用加载速度提升了40%
前端·人工智能·后端
长征coder8 小时前
SpringCloud服务优雅下线LoadBalancer 缓存配置方案
java·后端·spring
ForteScarlet8 小时前
Kotlin 2.3.0 现已发布!又有什么好东西?
android·开发语言·后端·ios·kotlin
Json____8 小时前
springboot框架对接物联网,配置TCP协议依赖,与设备通信,让TCP变的如此简单
java·spring boot·后端·tcp/ip
程序员阿明8 小时前
spring boot 3集成spring security6
spring boot·后端·spring
后端小张8 小时前
【JAVA 进阶】深入拆解SpringBoot自动配置:从原理到实战的完整指南
java·开发语言·spring boot·后端·spring·spring cloud·springboot
草莓熊Lotso8 小时前
C++11 核心进阶:引用折叠、完美转发与可变参数模板实战
开发语言·c++·人工智能·经验分享·后端·visualstudio·gitee
Q_Q5110082858 小时前
小程序springBoot新农村综合风貌旅游展示平台
vue.js·spring boot·后端