跳到主要内容iFlow CLI、Git 与 Claude Code 使用指南 | 极客日志Shell / BashNode.jsAI大前端
iFlow CLI、Git 与 Claude Code 使用指南
本文详细介绍了 iFlow CLI 的安装、命令、工作流与技能配置,涵盖 Git 版本控制的常用操作及冲突解决策略。同时深入讲解了 Claude Code 的配置、交互模式、插件系统、技能(Skill)定义以及钩子(Hook)的高级用法,包括敏感文件保护、自动格式化和通知机制。最后提供了基于 Vite 和 Tailwind CSS 的项目初始化实战案例。
iFlow CLI 基础
快速开始
安装 CLI 工具:
npm i -g @iflow-ai/iflow-cli@latest
查看文档:
/docs
提示词建议: 明确角色 + 目标 + 技术栈 + 输出格式。
例如:/memory add 你是一个全栈开发专家,我不会写代码,用最简单的语法,并详细解释每一步,请用中文回复并解释专业术语,本项目用 Python Flask 框架,Vue 前端
开发流程:
- 建立 Git 仓库,确保有可运行版本。
- 优先 Plan 模式,审查修改计划后再执行。
- 复杂项目避免 AI 边想边写导致结构混乱。
- 记得测试,要求 AI 编写单元测试(如
unittest 框架)。
- 提出模块化需求,方便后续修改。
- 分步执行,一次只做一件事(如先登录页面,再主页面)。
- 手动运行验证是否符合预期。
核心概念
| 术语 | 说明 |
|---|
| iFlow CLI | 基于终端的 AI 助手工具 |
| 斜杠命令 | 以 / 开头的控制命令(如 /init、/help) |
| @ | 文件引用(如 @src/App.tsx) |
| $ | 执行 Subagent(如 $code-reviewer) |
| Shell 命令 | 以 ! 开头,可在 CLI 中执行系统命令 |
| yolo | 默认允许 CLI 执行所有操作的执行模式 |
| MCP | 模型上下文协议,用于扩展 AI 能力的服务器系统 |
| Sub Agent | 智能 Agent 系统,适用于执行不同专业的任务 |
| Sub Command | 命令行扩展 |
| context left | CLI 右下角提示信息,代表模型剩余上下文长度 |
常用命令
| Command | Description | Subcommands |
|---|
/about | 显示版本信息 | |
/agents | 代理交互命令 | list, refresh, online, install |
/chat |
微信扫一扫,关注极客日志
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具
- RSA密钥对生成器
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
- Mermaid 预览与可视化编辑
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown 转 HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
- HTML 转 Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
| list, save, resume, delete |
/mcp | 列出已配置的 MCP 服务器 | list, auth, online, refresh |
工作流 (Workflow)
iflow workflow add "ppt-generator-v3"
zip -r your-workflow-name.zip . -x your-workflow-name.zip
unzip -l your-workflow-name.zip
项目根目录/
├── .iflow/
│ ├── agents/
│ ├── commands/
│ ├── hooks/
│ ├── IFLOW.md
│ └── settings.json
├── [项目文件夹]/
└── IFLOW.md
智能体 (Agents)
类似 Agent 系统,使用 $ 后选择 agent 运行。
---
agent-type: card-drawer
name: card-drawer
description: 当需要实现游戏内随机抽卡机制时使用此智能体
when-to-use: 当需要实现游戏内随机抽卡机制时
allowed-tools: read_file
model: qwen3-32b
inherit-mcps: true
color: purple
---
你是游戏抽卡系统专家...
技能 (Skills)
Skill 是技能市场系统,允许从在线市场安装专业化技能包来扩展 CLI 功能。
- 市场化:技能库完整功能即插即用
- 灵活权限控制:
~/.iflow/skills/ 全局可用,{project}/.iflow/skills 仅当前项目可用
- 版本追踪
~/.iflow/skills/
├── algorithmic-art/
│ ├── SKILL.md
│ ├── LICENSE.txt
│ └── templates/
└── pdf/
├── SKILL.md
└── scripts/
事件触发器 (Hooks)
用于定时或特定操作后触发消息通知、自动格式化、日志记录等。
| 事件 | 触发时机 | 典型用途 |
|---|
| PreToolUse | 工具执行前 | 阻止危险命令、参数校验 |
| PostToolUse | 工具执行后 | 自动格式化、运行 linter |
| SetUpEnvironment | 会话开始时 | 动态生成项目信息 |
| Stop | 主会话结束时 | 清理资源、保存会话信息 |
| SessionStart | 会话启动时 | 环境初始化、加载配置 |
| UserPromptSubmit | 用户提交提示词前 | 内容过滤、敏感信息拦截 |
{
"hooks": {
"SessionStart": [{"matcher": "startup", "hooks": [{"type": "command", "command": "python3 ~/.iflow/hooks/session_start.py"}]}],
"UserPromptSubmit": [{"hooks": [{"type": "command", "command": "python3 ~/.iflow/hooks/content_filter.py", "timeout": 10}]}]
}
}
import json, sys
try:
data = json.load(sys.stdin)
except json.JSONDecodeError as e:
print(f"Error: {e}", file=sys.stderr)
sys.exit(1)
tool_input = data.get('tool_input', {})
path = tool_input.get('file_path', '') or tool_input.get('command', '')
sensitive_files = ['.env', 'package-lock.json', '.git/']
matched = [p for p in sensitive_files if p in path]
if matched:
error_message = f"⚠️ 安全保护:禁止操作敏感文件/目录\n检测到操作涉及敏感内容:{', '.join(matched)}"
print(error_message, file=sys.stderr)
sys.exit(2)
sys.exit(0)
Git 版本控制
基本操作
- 克隆:
git clone URL 或 git clone -b pre URL folder
- 编辑: 修改工作副本
- 检查:
git add 文件/目录/.
- 提交推送:
git commit -m '注释', git push origin 新分支
- 拉取最新:
git pull origin main
- 合并:
git merge 新分支
- 删除分支:
git branch -d new_branch 或 git push origin --delete new_branch
| git init | 生成.git 文件,初始化 git 仓库 |
|---|
| git clone | 克隆到本地,-b 创建新分支 |
| git fetch/pull | fetch 获取远程信息,pull 为 fetch+merge |
| git merge | 将 branchname 分支合并到当前分支 |
| git log | 获取完整版版本号及详细更新信息 |
| git diff | 查看本地和对应远程分支之间的差异 |
| git add | 创建文件或追踪所有操作 |
| git commit | 提交暂存区更改到本地版本库 |
| git remote | 关联远程仓库 |
| git config | 配置永久参数(user.name, user.email) |
| git reset | 回退版本,版本穿梭 |
| git status | 查看仓库当前的状态 |
| git rm | 将文件从暂存区和工作区删除 |
| git checkout | 回到最新的提交,分支切换 |
| git restore --staged | 移除暂存区指定文件 |
| git branch | 查看、创建、删除分支 |
| git stash | 临时保存当前工作目录和暂存区改动 |
| git rebase | 将一个分支上的更改移到另一个分支之上 |
| git cherry-pick | 选择特定的提交并将其应用到当前分支 |
分支管理
- 查看本地分支:
git branch
- 查看远程分支:
git branch -r
- 查看所有分支:
git branch -a
- 创建并切换:
git checkout -b feature-branch
- 切换分支:
git checkout branchname
- 强制删除分支:
git branch -D branchname
冲突解决
两个分支在同一个文件和同一个位置有不同修改时,会产生冲突。
- 切换到 master 分支:
git checkout master
- 尝试合并:
git merge hot-fix
- 若报错,手动编辑文件,保留需要的代码,删除冲突标记(
<<<<<<<, =======, >>>>>>>)。
- 标记解决:
git add 文件
- 提交:
git commit -m "merge test"
Claude Code 配置
环境配置
温度 (temperature): 0.7 为平衡,0.3 为精确。
最大输出 (maxTokens): 限制输出长度。
API 端点 (baseURL): API 地址。
{
"models": {
"deepseek-chat": {
"provider": "openai-compatible",
"apiKey": "${DEEPSEEK_API_KEY}",
"baseURL": "https://api.deepseek.com/v1",
"model": "deepseek-chat",
"temperature": 0.7,
"maxTokens": 4096
}
},
"defaultModel": "deepseek-chat"
}
交互模式
- ASK 模式: 只看不动,只读分析
- Plan 模式: 只规划不执行
- Edit 模式: 直接执行
/help: 查看所有命令
/cost: 查看当前会话消耗
/compact: 压缩上下文
/reset: 重置会话
/review: 代码审查
插件与技能
my-plugin/
├── .claude-plugin/
│ └── plugin.json
├── commands/
├── agents/
├── skills/
├── hooks/
└── .mcp.json
Skill 定义:
本质是 md 文件,包含元数据、指令、参考示例。
---
name: your-skill-name
description: What it does and when Claude should use it
---
Clear, concrete, actionable rules.
钩子 (Hooks)
用于自动化操作,如权限管控、日志记录、代码规范校验。
- 全局:
~/.claude/settings.json
- 项目:
.claude/settings.local.json
PreToolUse: 工具调用前(拦截敏感文件)
PostToolUse: 工具调用后(格式化代码)
Notification: 发送通知时
SessionStart/End: 会话开始/结束
JSON 输出控制:
退出代码 0 表示成功,2 表示阻止操作。
可通过 stdout 返回 JSON 实现精细化控制(如 continue, stopReason)。
实战案例
项目初始化
创建一个新的 React 项目,使用 Vite 作为构建工具。
- 使用 Vite 创建 React 项目
- 集成 Tailwind CSS
- 添加必要的依赖(如 html2canvas)
- 创建清晰的文件夹结构
src/
├── components/
│ ├── NewsCard.jsx
│ ├── NewsCardEditor.jsx
│ └── ExportButton.jsx
├── utils/
│ └── exportImage.js
├── App.jsx
└── main.jsx
配置 Tailwind CSS:
修改 tailwind.config.js,添加自定义颜色、字体和阴影效果。
修改 src/index.css,导入 Tailwind 和字体。
- NewsCard: 新闻卡片组件,包含标题、摘要、作者等信息,使用 Tailwind 类名体现排版美学。
- NewsCardEditor: 左侧表单编辑,右侧实时预览,支持图片拖拽上传。
- ExportButton: 使用 html2canvas 导出卡片为 PNG,显示加载状态。
- 时间优化:工作日 12:00-13:00, 20:00-22:00;周末 10:00-12:00, 15:00-17:00。
- 内容优化:A/B 测试不同标题,监控首小时数据。
- 运营策略:发布后 30 分钟内回复评论,引导用户互动。