[{"content":"国内使用 Codex 目前大致有以下几种方法：\n购买官方订阅，从而大概率不会触发手机验证码（推荐） 中转站接入 API，但是部分中转站模型可能掺水（次选） 接手机验证码平台，风险极高，若触发二次验证时验证失败，GPT 账号就等于废了 利用 Codex++ 或 CCswitch 接入国内 API，个人认为这会导致 Codex 能力锐减，还不如直接用国内 agent 另外，Codex 优先适配 macOS，因此有条件的话，使用 macOS 体验更佳。\n本文内容专注于如何在国内订阅官方 Plus 套餐（20 美元）。\n本文具有时效性 最后更新日期:2026.8.3\n需要准备 # iOS 手机 美区 Apple ID 稳定科学上网环境 美区苹果虚拟礼品卡（20 美元） 官方充值 Plus 套餐 # Step1: 注册美区 Apple ID # 参考教学视频：B 站教学视频 Step2: 在 App Store 登陆你的美区 ID # 注意：千万不要在系统设置更改你的账号，新注册的 Apple 账号只用于登陆 App Store。\n用美区账号登陆后方可下载 ChatGPT 手机端 App。\nStep3: 购买美区苹果礼品卡 # 比如微信小程序搜索 pockytshop。注意一定要买和你新注册 Apple ID 地区一致的礼品卡，否则无法使用（本文均选择美区）。 获得礼品卡兑换码后，打开 App Store：\n登陆你的美区 Apple ID； 输入兑换码兑换礼品卡额度； 就可以直接通过苹果账号额度充值了。 Step4: 手机端 App 内充值 # 打开 ChatGPT App，点击「升级 Plus」； 点击小字「通过 Apple 升级」，然后就会弹出窗口确认； 这里可能会再次弹出「地址无效」的提示，具体地址可以按照注册美区 Apple ID 时再照抄一遍，电话号码可以问 AI 随便填一个（这个不是用于绑定验证的号码，似乎只是要求你填写一个）。 Step5: PC 端安装 Codex # 安装好后直接用充值过 Plus 的账号登录即可；具备科学上网的前提下，这就不是问题了。\n其他相关资源 # Codex++ - 帮助接入其他api Codex auth Plugin - 安全的登陆token获取插件(Free套餐无法使用work) ","date":"2026-08-03","externalUrl":null,"permalink":"/notes/codex-plus/","section":"DOCS","summary":"国内使用 Codex 目前大致有以下几种方法：\n购买官方订阅，从而大概率不会触发手机验证码（推荐） 中转站接入 API，但是部分中转站模型可能掺水（次选） 接手机验证码平台，风险极高，若触发二次验证时验证失败，GPT 账号就等于废了 利用 Codex++ 或 CCswitch 接入国内 API，个人认为这会导致 Codex 能力锐减，还不如直接用国内 agent 另外，Codex 优先适配 macOS，因此有条件的话，使用 macOS 体验更佳。\n本文内容专注于如何在国内订阅官方 Plus 套餐（20 美元）。\n本文具有时效性 最后更新日期:2026.8.3\n需要准备 # iOS 手机 美区 Apple ID 稳定科学上网环境 美区苹果虚拟礼品卡（20 美元） 官方充值 Plus 套餐 # Step1: 注册美区 Apple ID # 参考教学视频：B 站教学视频 ","title":"Codex Plus订阅指南(ios)","type":"notes"},{"content":"记录自用的agent配置以及使用方法(keep updated)\nSkills \u0026amp;\u0026amp; Plugins # Skills管理工具 # [Claudecode plugin system](安装claudecode CLI，使用其插件系统): brew install claude-code \u0026amp;\u0026amp; /plugin marketplace add XXX \u0026amp;\u0026amp; /plugin install XXX\nVercel官网提供的skill管理工具npx skills\nSkillHub\nGreat Skills \u0026amp;\u0026amp; Plugins # Anthropic-official-plugins - Claude code官方插件市场 mattpocock-skills - 适合工程性仓库的skills Ponytail(Plugin) - 节省你的tokens Andrej-karpathy-skills - 高星插件、skill MCP # Context7 - 给agent提供最新官方文档 Tavily - 让agent能够搜索网络信息 Playwright - Web自动化 Shadcn - 提供前端组件库 Setup # OpenCode # 以下是opencode配置文件,会不断更新,主要考虑了安全性,然后暂时只做了一些基础配置.\n自用的opencode.jsonc(点击展开) 1{ 2 \u0026#34;$schema\u0026#34;: \u0026#34;https://opencode.ai/config.json\u0026#34;,//作用：为VScode等编辑工具提供自动补全和校验等 不影响opencode实际使用功能 3 \u0026#34;autoupdate\u0026#34;: true, 4 \u0026#34;small_model\u0026#34;: \u0026#34;deepseek/deepseek-v4-flash\u0026#34;, 5 \u0026#34;default_agent\u0026#34;: \u0026#34;plan\u0026#34;,//先明确需求再操作文件 6 \u0026#34;permission\u0026#34;: { 7 \u0026#34;read\u0026#34;: { 8 \u0026#34;*\u0026#34;:\u0026#34;allow\u0026#34;, 9 \u0026#34;.env\u0026#34;:\u0026#34;deny\u0026#34;, 10 \u0026#34;.env/**\u0026#34;:\u0026#34;deny\u0026#34;, 11 \u0026#34;/.env/api_keys.txt\u0026#34;:\u0026#34;deny\u0026#34;, 12 \u0026#34;.env/keys.txt\u0026#34;:\u0026#34;deny\u0026#34;, 13 \u0026#34;.env.example\u0026#34;:\u0026#34;allow\u0026#34;, 14 \u0026#34;*.pem\u0026#34;:\u0026#34;deny\u0026#34;, 15 \u0026#34;*.key\u0026#34;:\u0026#34;deny\u0026#34;, 16 \u0026#34;keys/**\u0026#34;:\u0026#34;deny\u0026#34; 17 }, 18 \u0026#34;external_directory\u0026#34;:\u0026#34;ask\u0026#34;,//外部目录操作需要确认，自行审查命令 19 \u0026#34;bash\u0026#34;: { 20 \u0026#34;*\u0026#34;: \u0026#34;ask\u0026#34;, 21 \u0026#34;ls *\u0026#34;: \u0026#34;allow\u0026#34;, 22 \u0026#34;wc *\u0026#34;: \u0026#34;allow\u0026#34;, 23 \u0026#34;pwd\u0026#34;: \u0026#34;allow\u0026#34;, 24 \u0026#34;echo *\u0026#34;: \u0026#34;allow\u0026#34;, 25 \u0026#34;which *\u0026#34;: \u0026#34;allow\u0026#34;, 26 \u0026#34;git status *\u0026#34;: \u0026#34;allow\u0026#34;, 27 \u0026#34;git diff *\u0026#34;: \u0026#34;allow\u0026#34;, 28 \u0026#34;git log *\u0026#34;: \u0026#34;allow\u0026#34;, 29 \u0026#34;git show *\u0026#34;: \u0026#34;allow\u0026#34;, 30 \u0026#34;git branch *\u0026#34;: \u0026#34;allow\u0026#34;, 31 \u0026#34;npm test\u0026#34;: \u0026#34;allow\u0026#34;, 32 \u0026#34;npm run lint\u0026#34;: \u0026#34;allow\u0026#34;, 33 \u0026#34;npm run build\u0026#34;: \u0026#34;allow\u0026#34;, 34 \u0026#34;pytest *\u0026#34;: \u0026#34;allow\u0026#34;, 35 \u0026#34;go test *\u0026#34;: \u0026#34;allow\u0026#34;, 36 \u0026#34;cargo test *\u0026#34;: \u0026#34;allow\u0026#34;, 37 \u0026#34;rm -rf *\u0026#34;: \u0026#34;deny\u0026#34;, 38 \u0026#34;rm -fr *\u0026#34;: \u0026#34;deny\u0026#34;, 39 \u0026#34;sudo *\u0026#34;: \u0026#34;deny\u0026#34;, 40 \u0026#34;curl * | *\u0026#34;: \u0026#34;deny\u0026#34;, 41 \u0026#34;wget * | *\u0026#34;: \u0026#34;deny\u0026#34; 42 } 43 }, 44 \u0026#34;plugin\u0026#34;: [ 45 \u0026#34;opencode-supermemory\u0026#34;, 46 \u0026#34;@dietrichgebert/ponytail\u0026#34; 47 ], 48 \u0026#34;compaction\u0026#34;: { 49 \u0026#34;auto\u0026#34;: true, 50 \u0026#34;prune\u0026#34;: true, 51 \u0026#34;reserved\u0026#34;: 10000 52 }, 53 \u0026#34;watcher\u0026#34;: { 54 \u0026#34;ignore\u0026#34;: [\u0026#34;node_modules/**\u0026#34;, \u0026#34;.git/**\u0026#34;, \u0026#34;dist/**\u0026#34;, \u0026#34;build/**\u0026#34;, \u0026#34;*.log\u0026#34;, \u0026#34;.env/**\u0026#34;, \u0026#34;keys/**\u0026#34;] 55 }, 56 \u0026#34;lsp\u0026#34;: true, 57 \u0026#34;formatter\u0026#34;: true, 58 \u0026#34;shell\u0026#34;: \u0026#34;zsh\u0026#34;,//如果是windows环境，需要修改为powershell 59 \u0026#34;agent\u0026#34;: { 60 \u0026#34;code-reviewer\u0026#34;: { 61 \u0026#34;description\u0026#34;: \u0026#34;Reviews code for best practices and potential issues\u0026#34;, 62 \u0026#34;model\u0026#34;: \u0026#34;deepseek/deepseek-v4-flash\u0026#34;, 63 \u0026#34;prompt\u0026#34;: \u0026#34;You are a code reviewer. Focus on security, performance, and maintainability.\u0026#34;, 64 \u0026#34;permission\u0026#34;: { 65 \u0026#34;write\u0026#34;: \u0026#34;deny\u0026#34;, 66 \u0026#34;edit\u0026#34;: \u0026#34;deny\u0026#34; 67 }, 68 \u0026#34;steps\u0026#34;: 15 69 }, 70 \u0026#34;build\u0026#34;: { 71 \u0026#34;permission\u0026#34;: { 72 \u0026#34;bash\u0026#34;: { 73 \u0026#34;*\u0026#34;: \u0026#34;ask\u0026#34;, 74 \u0026#34;git status *\u0026#34;: \u0026#34;allow\u0026#34;, 75 \u0026#34;git diff *\u0026#34;: \u0026#34;allow\u0026#34;, 76 \u0026#34;git log *\u0026#34;: \u0026#34;allow\u0026#34;, 77 \u0026#34;git show *\u0026#34;: \u0026#34;allow\u0026#34;, 78 \u0026#34;git branch *\u0026#34;: \u0026#34;allow\u0026#34;, 79 \u0026#34;git push *\u0026#34;: \u0026#34;deny\u0026#34;, 80 \u0026#34;git reset --hard *\u0026#34;: \u0026#34;deny\u0026#34; 81 } 82 } 83 } 84 }, 85 \u0026#34;command\u0026#34;: {//自定义命令，重复性prompt 86 \u0026#34;clear\u0026#34;: { 87 \u0026#34;template\u0026#34;: \u0026#34;清理上述过程中临时产生并且没有用处的文件，停止因为临时测试而启动的本地服务.最后检查各个状态是否正常，若不正常，提醒我或者直接修复.最终目的是保持系统和项目环境干净!所以请不要产生其他负面影响!\u0026#34;, 88 \u0026#34;description\u0026#34;: \u0026#34;try to keep your project and system clean\u0026#34;, 89 \u0026#34;agent\u0026#34;: \u0026#34;build\u0026#34;, 90 \u0026#34;model\u0026#34;: \u0026#34;deepseek/deepseek-v4-flash\u0026#34;, 91 \u0026#34;subtask\u0026#34;: true 92 }, 93 \u0026#34;cr\u0026#34;: { 94 \u0026#34;template\u0026#34;: \u0026#34;用 code-reviewer 视角审视本次会话最近的改动（git diff 范围），重点：安全漏洞、性能问题、可维护性、可测试性。给出具体行号和建议，不要泛泛而谈。\u0026#34;, 95 \u0026#34;description\u0026#34;: \u0026#34;Code-review on recent changes (renamed to avoid shadowing built-in /review)\u0026#34;, 96 \u0026#34;agent\u0026#34;: \u0026#34;code-reviewer\u0026#34; 97 }, 98 \u0026#34;test\u0026#34;: { 99 \u0026#34;template\u0026#34;: \u0026#34;识别项目测试命令（查 package.json / pyproject.toml / go.mod / Cargo.toml 等），运行测试套件。如果失败，分析首个失败 case 的根因。\u0026#34;, 100 \u0026#34;description\u0026#34;: \u0026#34;Run project test suite (auto-detect)\u0026#34;, 101 \u0026#34;agent\u0026#34;: \u0026#34;build\u0026#34;, 102 \u0026#34;model\u0026#34;: \u0026#34;deepseek/deepseek-v4-flash\u0026#34;, 103 \u0026#34;subtask\u0026#34;: true 104 } 105 }, 106 \u0026#34;mcp\u0026#34;: {//MCP配置 107 \u0026#34;playwright\u0026#34;: { 108 \u0026#34;type\u0026#34;: \u0026#34;local\u0026#34;, 109 \u0026#34;command\u0026#34;: [ 110 \u0026#34;npx\u0026#34;, 111 \u0026#34;-y\u0026#34;, 112 \u0026#34;@playwright/mcp\u0026#34; 113 ], 114 \u0026#34;enabled\u0026#34;: true, 115 \u0026#34;environment\u0026#34;: { 116 \u0026#34;PLAYWRIGHT_MCP_HEADLESS\u0026#34;: \u0026#34;true\u0026#34; 117 } 118 }, 119 \u0026#34;context7\u0026#34;: { 120 \u0026#34;type\u0026#34;: \u0026#34;local\u0026#34;, 121 \u0026#34;command\u0026#34;: [ 122 \u0026#34;npx\u0026#34;, 123 \u0026#34;-y\u0026#34;, 124 \u0026#34;@upstash/context7-mcp\u0026#34; 125 ], 126 \u0026#34;enabled\u0026#34;: true, 127 \u0026#34;environment\u0026#34;: { 128 \u0026#34;CONTEXT7_API_KEY\u0026#34;: \u0026#34;{env:CONTEXT7_API_KEY}\u0026#34; 129 } 130 }, 131 \u0026#34;tavily\u0026#34;: { 132 \u0026#34;type\u0026#34;: \u0026#34;local\u0026#34;, 133 \u0026#34;command\u0026#34;: [ 134 \u0026#34;npx\u0026#34;, 135 \u0026#34;-y\u0026#34;, 136 \u0026#34;tavily-mcp\u0026#34; 137 ], 138 \u0026#34;enabled\u0026#34;: true, 139 \u0026#34;environment\u0026#34;: { 140 \u0026#34;TAVILY_API_KEY\u0026#34;: \u0026#34;{env:TAVILY_API_KEY}\u0026#34; 141 } 142 } 143 } 144} 配置方式：\n将 opencode.jsonc 放到项目根目录或OpenCode配置目录(~/.config/opencode/)即可生效：\n1# 项目级配置 2cp opencode.jsonc /path/to/your/project/ 3 4# 全局配置（推荐） 5mkdir -p ~/.config/opencode \u0026amp;\u0026amp; cp opencode.jsonc ~/.config/opencode/ AGENTS.md \u0026amp;\u0026amp; Claude.md # 第一性原理 对抗性审查 其他建议 # 在项目具体子模块中建立agent工作区 不要被你的agent激怒 注意会话上下文 ","date":"2026-07-29","externalUrl":null,"permalink":"/notes/for-agents/","section":"DOCS","summary":"记录自用的agent配置以及使用方法(keep updated)\nSkills \u0026\u0026 Plugins # Skills管理工具 # [Claudecode plugin system](安装claudecode CLI，使用其插件系统): brew install claude-code \u0026\u0026 /plugin marketplace add XXX \u0026\u0026 /plugin install XXX\nVercel官网提供的skill管理工具npx skills\nSkillHub\nGreat Skills \u0026\u0026 Plugins # Anthropic-official-plugins - Claude code官方插件市场 mattpocock-skills - 适合工程性仓库的skills Ponytail(Plugin) - 节省你的tokens Andrej-karpathy-skills - 高星插件、skill MCP # Context7 - 给agent提供最新官方文档 Tavily - 让agent能够搜索网络信息 Playwright - Web自动化 Shadcn - 提供前端组件库 Setup # OpenCode # 以下是opencode配置文件,会不断更新,主要考虑了安全性,然后暂时只做了一些基础配置.\n","title":"更好地使用Agents","type":"notes"},{"content":"记录不同系统中好用的软件、工具以及网站资源推荐 (keep updated)\nAll OS # CC-switch - 编程工具(尤其是claude-code)统一管理系统 Localsend — 跨win，mac设备文件传输工具 sdkman - 可以用来管理java等各种版本的工具 chezmoi - 管理你家目录下的dot-files Watt Toolkit — github，steam社区加速工具 UU游戏加速器 — steam加速器 Deskflow - 同一套键鼠，局域网下控制多台设备（可跨端），开销远小于远程桌面。不过win连接mac时，流畅度和键盘映射还有一定问题 macOS # Homebrew — macOS包管理器 除了统一下载管理开发工具 还可一行命令下载管理GUI App Vorssaint - macOS顶部实用工具栏集合(包括实时显示RAM,CPU占用,以及提供各种mac优化) iTerm2 — macOS更好的终端 Ghostty - macOS开箱即用的轻便终端 AppCleaner - macOS轻便的软件卸载工具 duti - 批量管理macOS上文件的默认打开方式 Windows # Typedown — Markdown编辑器(微软商店搜索即可 功能简单 非常轻便) Geek Uninstaller — 软件彻底卸载工具 Potplayer — 适应各种格式的视频播放器 Minecraft PCL Launcher — 爱发电官网搜索“龙腾猫跃” Minecraft Java版的优秀启动器之一，提供多线程下载功能(粘贴链接即可) Browser Plugins # AdGuard — 拦截浏览器广告 Obsidian Web Clipper — 一键剪藏网页文本内容到Obsidian Website \u0026amp; Project # To learn # HelloGithub - 每月提供丰富的优质项目推荐 Vibehub - 提供Vibecoding学习资源 Hugging Face Agents Course - 学习agent Hello Agents - 学习agent(国内社区) Resources # Sweeezy Cursors - 提供丰富鼠标指针样式资源 Openflac - 音频资源 OpenClipart - 丰富优质的svg图像资源 Tools # SoniqTools - 音频处理工具在线网站 FreeConvert - 把图片转换为webp 让你的网站加载更快 负载更低 ","date":"2026-07-26","externalUrl":null,"permalink":"/notes/good-tools/","section":"DOCS","summary":"记录不同系统中好用的软件、工具以及网站资源推荐 (keep updated)\nAll OS # CC-switch - 编程工具(尤其是claude-code)统一管理系统 Localsend — 跨win，mac设备文件传输工具 sdkman - 可以用来管理java等各种版本的工具 chezmoi - 管理你家目录下的dot-files Watt Toolkit — github，steam社区加速工具 UU游戏加速器 — steam加速器 Deskflow - 同一套键鼠，局域网下控制多台设备（可跨端），开销远小于远程桌面。不过win连接mac时，流畅度和键盘映射还有一定问题 macOS # Homebrew — macOS包管理器 除了统一下载管理开发工具 还可一行命令下载管理GUI App Vorssaint - macOS顶部实用工具栏集合(包括实时显示RAM,CPU占用,以及提供各种mac优化) iTerm2 — macOS更好的终端 Ghostty - macOS开箱即用的轻便终端 AppCleaner - macOS轻便的软件卸载工具 duti - 批量管理macOS上文件的默认打开方式 Windows # Typedown — Markdown编辑器(微软商店搜索即可 功能简单 非常轻便) Geek Uninstaller — 软件彻底卸载工具 Potplayer — 适应各种格式的视频播放器 Minecraft PCL Launcher — 爱发电官网搜索“龙腾猫跃” Minecraft Java版的优秀启动器之一，提供多线程下载功能(粘贴链接即可) Browser Plugins # AdGuard — 拦截浏览器广告 Obsidian Web Clipper — 一键剪藏网页文本内容到Obsidian Website \u0026 Project # To learn # HelloGithub - 每月提供丰富的优质项目推荐 Vibehub - 提供Vibecoding学习资源 Hugging Face Agents Course - 学习agent Hello Agents - 学习agent(国内社区) Resources # Sweeezy Cursors - 提供丰富鼠标指针样式资源 Openflac - 音频资源 OpenClipart - 丰富优质的svg图像资源 Tools # SoniqTools - 音频处理工具在线网站 FreeConvert - 把图片转换为webp 让你的网站加载更快 负载更低 ","title":"Good Tools(资源\u0026工具分享)","type":"notes"},{"content":"","date":"2026-09-14","externalUrl":null,"permalink":"/tags/agent/","section":"Tags","summary":"","title":"Agent","type":"tags"},{"content":"","date":"2026-09-14","externalUrl":null,"permalink":"/categories/ai/","section":"Categories","summary":"","title":"Ai","type":"categories"},{"content":"","date":"2026-09-14","externalUrl":null,"permalink":"/tags/ai/","section":"Tags","summary":"","title":"Ai","type":"tags"},{"content":"","date":"2026-09-14","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"不过现在几乎所有问题 都可以通过 \u0026ldquo;搜索引擎 + AI + 花时间实践\u0026rdquo; 解决\n","date":"2026-09-14","externalUrl":null,"permalink":"/notes/","section":"DOCS","summary":"不过现在几乎所有问题 都可以通过 “搜索引擎 + AI + 花时间实践” 解决\n","title":"DOCS","type":"notes"},{"content":" ","date":"2026-09-14","externalUrl":null,"permalink":"/","section":"lyrumu's page","summary":"","title":"lyrumu's page","type":"page"},{"content":" 关闭截图音效（Command + Shift + 4） # 关闭 # 1defaults write com.apple.screencapture disable-sound -bool true 2killall SystemUIServer 恢复 # 1defaults write com.apple.screencapture disable-sound -bool false 关闭 Mac 插电或抬盖自动开机（Apple Silicon） # 适用于搭载 Apple 芯片且运行 macOS Sequoia 15 或更高版本的 Mac 笔记本电脑。详见 Apple 支持文档。\n关闭 # 1sudo nvram BootPreference=%00 需要输入管理员密码以执行。\n恢复 # 1sudo nvram -d BootPreference BootPreference 命令对照 默认显示 Finder 隐藏文件 # 显示 # 1defaults write com.apple.finder AppleShowAllFiles -bool true 2killall Finder 恢复 # 想恢复默认隐藏，把 true 改为 false 后再执行一次即可。\n","date":"2026-09-14","externalUrl":null,"permalink":"/notes/mac%E7%9A%84%E4%B8%80%E4%BA%9B%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE/","section":"DOCS","summary":"关闭截图音效（Command + Shift + 4） # 关闭 # 1defaults write com.apple.screencapture disable-sound -bool true 2killall SystemUIServer 恢复 # 1defaults write com.apple.screencapture disable-sound -bool false 关闭 Mac 插电或抬盖自动开机（Apple Silicon） # 适用于搭载 Apple 芯片且运行 macOS Sequoia 15 或更高版本的 Mac 笔记本电脑。详见 Apple 支持文档。\n","title":"macOS基础系统配置","type":"notes"},{"content":"","date":"2026-09-14","externalUrl":null,"permalink":"/tags/os/","section":"Tags","summary":"","title":"Os","type":"tags"},{"content":"","date":"2026-09-14","externalUrl":null,"permalink":"/tags/skills/","section":"Tags","summary":"","title":"Skills","type":"tags"},{"content":"","date":"2026-09-14","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"2026-09-14","externalUrl":null,"permalink":"/categories/tools/","section":"Categories","summary":"","title":"Tools","type":"categories"},{"content":"","date":"2026-09-14","externalUrl":null,"permalink":"/tags/tools/","section":"Tags","summary":"","title":"Tools","type":"tags"},{"content":"该价位下 此教程的质量还是非常高的呀 还赠送练习时的AI生成额度\n对这方面感兴趣的 非常推荐购买\n课程链接：飓风课堂\n演示平台：TapNow\n五种生成方式 # 文生图 图生图 文生视频 图生视频 视频生视频 TapNow 中的五种生成方式 提示词 # 生图提示词 # 要素 作用 主体 画面中的核心，最重要的主角 场景 赋予更多补充信息 时间 快速加入光影效果；如果知道专业名词，可以直接使用专业名词 风格 对最终呈现效果起决定性作用 提示词详细化 # 模板不是束缚，而是在确实需要时作为参考，并不是所有生成都需要包含全部要素。\n生图提示词详细化模板 根据图片反推提示词 # 根据已有图片素材和上方的详细提示词模板，尝试练习反推这张图片的提示词。 让 AI、Agents 帮助反推一张图片的提示词。 生视频提示词 # 主体与动作\n效果\n镜头运动\n镜头固定、镜头跟随移动等效果；镜头推／拉（画面放大／缩小）；镜头摇／移（画面切换到新信息，或单纯产生移动效果等）。\n镜头运动提示词示例一 镜头运动提示词示例二 镜头晃动\n模拟真实呼吸感、镜头颠簸等。\n焦点效果\n制造主体焦点和背景模糊。焦点所在的位置可以引导观众看向对应内容，例如实现一次画面中的焦点切换。\n快慢镜头\n快慢镜头 → 变速镜头。\n快慢镜头与变速镜头示例 声音\n推荐在 prompt 中加入：\n1不要生成音乐 通常在后期手动加入统一的音乐，效果会更好。音效能让观众感受到视频当前画面外的事物。\n节奏\n切镜头：可以在提示词中让 AI 帮忙直接分镜，消耗一次积分就完成分镜。 景别：大远景 → 远景 → 全景 → 中景 → 近景 → 特写 → 超大特写。 最后可以通过结合切镜头和景别，合理掌控节奏。\n推荐流程 # 通常先文生图，然后通过图生视频，这样会更稳定，一致性更佳。\n若想直接文生视频，可以将文生图和图生视频的提示词结合起来，一起发送给 AI，但稳定性还是不佳。\n可以先生成一张满意的图片，然后让 AI 生成多个角度：\n1生成该主体的正面、侧面、正侧面、背面，四个角度放在一张图上，一字排开，纯白色背景。 主体四视图生成示例 视频首尾帧进阶 # 模拟机械臂运镜 # 先准备拍摄制作产品图片素材：\n手机直接拍摄。\n手机直接拍摄得到的产品图片 通过 AI 把手部去掉。\n通过 AI 把手部去掉 通过 AI 打光。\n通过 AI 打光得到的产品图片 参考提示词：\n1给图中产品打光：单侧硬光主光源，低亮度环境光，数码产品工业级布光，光影层次对比细腻。 然后就可以以此图片作为视频的首帧。得到尾帧参考图后，使用以下提示词或其他描述进行视频生成：\n1模拟机械臂运镜，镜头从图一环绕到图二 对于变速，可以先用 AI 生成匀速的视频，后期用剪辑软件进行稳定的变速。\nAI 动效动画 # 产品拆解迭代提示词：\n产品拆解迭代提示词 如果想不出这些效果的提示词，可以把首尾帧图片发给多模态 AI，然后让它提供动效提示词进行尝试。\nAI 子弹时间 # 最好使用两部手机拍摄画面的首尾帧。\n两部设备分别放在主体的正面和侧面，镜头尽量保持同一高度。 相机建议开启慢动作模式，以更好捕捉较快的表演动作。 录制好两段视频后，将其导入剪辑软件，在第一段视频中找到最喜欢的一帧；然后在另一段视频中找到同一时刻的那一帧，或选择主体状态相似的一帧。 导出这两帧的静帧图片，作为生成视频所需的首尾帧。 子弹时间首尾帧选择示例 参考提示词：\n1模拟子弹时间，保持主体和场景一致，镜头围着主体向右／左环绕 最后，把生成的模拟子弹时间 AI 视频放在两段实拍视频的中间，微调后即可导出成品。\nAI 视频转场 # 视频首尾帧转场 # 动态首帧要对应动态尾帧，静态同理；同时主体的状态、动作等要能够衔接上。可能需要在剪辑软件中砍掉重复帧。\n参考提示词：\n视频首尾帧转场提示词一 视频首尾帧转场提示词二 空镜转场 # 首尾帧中没有主体，直接使用两个不同的场景；等场景变化好后，再让主体出现。\n参考提示词：\n空镜转场提示词一 空镜转场提示词二 空镜转场提示词三 循环首尾帧 # 只需要一张图，首帧和尾帧使用同一张图；适合用来制作循环视频和 GIF 等。\n也需要砍掉重复帧，避免成品卡顿。\n全能参考进阶 # 推荐模型：See dance-2.0\n支持多种参考内容 # 包括但不限于图片、视频、音频、文本等。\n全能参考支持的内容类型 动作迁移与运镜模拟 # 可以一键替换视频中的角色，同时保留原角色的动作和原视频的运镜。需要提供原视频和新角色的图片外貌。 还可以先拍摄一段空场景的运镜视频，然后生成另一张满意的场景图片，最后让 AI 将视频运镜运用到该图片的场景中。 AI 换背景 # 可以直接要求 AI 切换视频背景，写明改变的内容和保留的内容，例如构图、运镜、动作等。 也可以不切换背景，只切换背景氛围和光影，并直接参考另一张图的氛围。 分镜直出 # 使用产品图＋文字分镜图；文字分镜图可以直接让 LLM 生成。\n1按分镜图生成产品图的广告 先用产品图＋文字分镜图生成带图片的文字分镜图，能够生成更精确的分镜视频。\n视频延长 # 利用视频生成后续视频：\n1向后／前延长视频…… 节奏剪辑 # 利用音乐素材，全能参考也能识别音乐的节奏，从而自动进行画面切换卡点。\nTapNow 功能详解 # 模型 特点 Tap image 2 适合生成产品平面设计图 Tap Nano pro 有较好的图片一致性 对于不同的生成任务要选择合适的模型，待研究。\n应用内可以自动给图片打光等，有多种功能。\n其他暂略。\nDLC 加餐课 # DiDi_OK # 提示词参考权重（权重思考，起强调作用）：\n1视频（or 参考图片）\u0026gt; 提示词 \u0026gt; 模型的选择 因此，可以用生成相关参考图的方式来引导模型进行视频生成，也可以使用多张参考图。\n日常可以储备素材库，以备创作时使用。\nAI 创作要多练习。建议直接开始，因为相对来说各方面成本都不高。\n提前规划：需要多想，尽量减少返工；提前准备好场景、角色的参考图等。\n","date":"2026-09-14","externalUrl":null,"permalink":"/notes/%E5%BD%B1%E8%A7%86%E9%A3%93%E9%A3%8Eai%E8%AF%BE%E7%A8%8B%E6%80%BB%E7%BB%93/","section":"DOCS","summary":"该价位下 此教程的质量还是非常高的呀 还赠送练习时的AI生成额度\n对这方面感兴趣的 非常推荐购买\n课程链接：飓风课堂\n演示平台：TapNow\n五种生成方式 # 文生图 图生图 文生视频 图生视频 视频生视频 TapNow 中的五种生成方式 提示词 # 生图提示词 # 要素 作用 主体 画面中的核心，最重要的主角 场景 赋予更多补充信息 时间 快速加入光影效果；如果知道专业名词，可以直接使用专业名词 风格 对最终呈现效果起决定性作用 提示词详细化 # 模板不是束缚，而是在确实需要时作为参考，并不是所有生成都需要包含全部要素。\n","title":"影视飓风'玩转AI-图像视频课'笔记","type":"notes"},{"content":"使用agents时 用户目录下会产生很多以点开头的配置文件(下文统一称为dot-files)\n这些文件常常有重要价值 例如你的agents.md 以及各种记忆 skill/mcp配置 同时难以管理 因此可以用chezmoi这个工具进行备份 同时能够在不同设备间快速同步\nchezmoi官方docs - 查看官方使用教程 (还在学习使用中 keep updated)\n我的个人管理示例\n注意 如果你没有使用过git 建议先熟悉git的使用再学习chezmoi\n安装 # macOS # 1brew install chezmoi \u0026amp;\u0026amp; chezmoi --version 能输出版本就说明安装成功\n1chezmoi init 然后chezmoi会在 .loacal/share生成一个名为chezmoi的本地git源仓库\n使用 # chezmoi不仅能管理dot-files 普通文件也是可以管理的 但是建议只管理家目录下文件\nchezmoi管理本机实际配置文件和chezmoi源仓库文件的关系\ngit管理chezmoi源本地仓库和github repo的关系\n基础使用 # 首先 判断家目录下哪些文件需要使用chezmoi管理 比如.agents .codex .claude等(注意 密钥不要通过chezmoi管理 除非使用加密)\n然后就可以使用命令把配置文件拷贝进chezmoi本地源(不会改变你的设备的实际配置)\n1chezmoi add ~/.zshrc 2chezmoi add ~/.zprofile 3chezmoi add ~/.agents 4chezmoi add ~/.codex/AGENTS.md 之后可以在自己的github新建仓库 将本地chezmoi仓库提交上去 日后用git管理\n当本机实际配置文件发生改动或者更新 可以使用以下命令检查和同步chezmoi本地源\n1chezmoi status #会显示本机实际配置文件和chezmoi本地源的差异 2chezmoi diff #显示详细差异 3 4chezmoi re-add #直接同步所有差异(更新chezmoi本地源) 5chezmoi re-add ~/.zshrc #只更新某一个文件 6 7chezmoi cd #快捷进入本地chezmoi工作区 8git status 9git add . 10git commit -m \u0026#34;updates\u0026#34; 11git push ","date":"2026-08-11","externalUrl":null,"permalink":"/notes/%E4%BD%BF%E7%94%A8chezmoi%E7%AE%A1%E7%90%86dot-files/","section":"DOCS","summary":"使用agents时 用户目录下会产生很多以点开头的配置文件(下文统一称为dot-files)\n这些文件常常有重要价值 例如你的agents.md 以及各种记忆 skill/mcp配置 同时难以管理 因此可以用chezmoi这个工具进行备份 同时能够在不同设备间快速同步\nchezmoi官方docs - 查看官方使用教程 (还在学习使用中 keep updated)\n我的个人管理示例\n注意 如果你没有使用过git 建议先熟悉git的使用再学习chezmoi\n安装 # macOS # 1brew install chezmoi \u0026\u0026 chezmoi --version 能输出版本就说明安装成功\n1chezmoi init 然后chezmoi会在 .loacal/share生成一个名为chezmoi的本地git源仓库\n使用 # chezmoi不仅能管理dot-files 普通文件也是可以管理的 但是建议只管理家目录下文件\n","title":"使用chezmoi管理dot-files","type":"notes"},{"content":"","date":"2026-08-03","externalUrl":null,"permalink":"/tags/chatgpt/","section":"Tags","summary":"","title":"Chatgpt","type":"tags"},{"content":"","date":"2026-08-03","externalUrl":null,"permalink":"/tags/subscription/","section":"Tags","summary":"","title":"Subscription","type":"tags"},{"content":"","date":"2026-07-29","externalUrl":null,"permalink":"/tags/mcp/","section":"Tags","summary":"","title":"Mcp","type":"tags"},{"content":"","date":"2026-07-29","externalUrl":null,"permalink":"/tags/opencode/","section":"Tags","summary":"","title":"Opencode","type":"tags"},{"content":"","date":"2026-07-26","externalUrl":null,"permalink":"/tags/website/","section":"Tags","summary":"","title":"Website","type":"tags"},{"content":"","date":"2026-07-15","externalUrl":null,"permalink":"/categories/development/","section":"Categories","summary":"","title":"Development","type":"categories"},{"content":"","date":"2026-07-15","externalUrl":null,"permalink":"/categories/devops/","section":"Categories","summary":"","title":"Devops","type":"categories"},{"content":"","date":"2026-07-15","externalUrl":null,"permalink":"/tags/git/","section":"Tags","summary":"","title":"Git","type":"tags"},{"content":"目前我常用的git操作流程\n1. 初始化项目为 Git 仓库 # 1.1 在 GitHub 新建仓库 # 登录 GitHub，点击右上角 + → New repository，填写仓库名称和描述.\n1.2 本地初始化 # 在终端(PowerShell)进入项目目录，执行以下命令：\n1# 依次执行： 2git init 3git config user.name \u0026#34;YOUR NAME\u0026#34; # 你的 GitHub 用户名 4git config user.email \u0026#34;YOUR EMAIL\u0026#34; # 建议使用 GitHub 提供的隐私邮箱（见 Settings → Emails） 5git remote add origin https://github.com/YOUR_NAME/YOUR_REPO_NAME.git 注意：GitHub 提供隐私邮箱格式 ID+username@users.noreply.github.com，可有效避免垃圾邮件。\n2. 日常更新备份仓库 # 每次在本地完成新的工作并测试无误后，执行以下流程：\n2.1 确认同步状态 # 首先在终端进入项目目录，执行 git fetch \u0026amp;\u0026amp; git status：(先拉取github 防止多设备提交时漏掉状态不一致)\n输出 含义 操作 up to date with 'origin/master' 本地与仓库同步 无需操作 behind 'origin/master' by X commit 本地落后于仓库 执行 git pull ahead of 'origin/master' by X commit 本地有新内容 照常执行 git push 2.2 更新仓库 # 方式一：一次性提交（推荐）\n1git add . 2git commit -m \u0026#34;Details of new contents\u0026#34; 3git push origin master/main 4git status # 最后再检查同步状态 方式二：分批提交（可看到不同文件的提交记录）\n1git add filename1/ 2git commit -m \u0026#34;Details_1\u0026#34; 3git add filename2/ 4git commit -m \u0026#34;Details_2\u0026#34; 5# 最后统一进行 git push 6git push origin master/main 7# 这样就能在 GitHub 上看到对每个文件不同的提交信息了 8git status 仅初次提交时可用 git push -u origin master -f 避免不必要的麻烦。\n3. 出错回滚特定版本 # 3.1 已经将错误版本提交至 GitHub # 查看提交历史：\n1git log --oneline 回退操作：\n回退到最新（上一个）提交：git reset --hard HEAD~1 回退到指定提交：git reset --hard \u0026lt;commit-id\u0026gt; 回滚后都需要强制推送覆盖远程：\n1git push -f origin master/main 3.2 还未将错误版本提交至 GitHub # 执行以下命令清除本地错误修改：\n1git reset --hard HEAD \u0026amp;\u0026amp; git clean -fd 然后重新进行正确的工作和代码提交。\n3.3 回滚个别文件 # 将某个文件或目录回滚到指定版本的状态（仅修改工作区，不影响提交历史）：\n1git checkout \u0026lt;commit-id\u0026gt; -- FILENAME 4. Remote 与 .gitignore # 4.1 Git Remote # ⚠️ 仓库改名后：在 GitHub 上 rename 了仓库后，本地 git remote -v 还是旧地址，push 前记得先改：\n1git remote set-url origin YOUR_NEW_URL.git 4.2 .gitignore 使用 # 被 .gitignore 的文件在本地会变化，但提交时不会上传。\n创建（Windows：新建文本文件后把后缀也删掉）：\n1.obsidian/workspace.json 2config/secret.json 3.venv/ 4*.log 忽略已跟踪的文件：gitignore 只能忽略未被跟踪的文件，已跟踪的需先移除缓存：\n1git rm --cached config/secret.json 2git add .gitignore 3git commit -m \u0026#34;Ignore config files\u0026#34; ","date":"2026-07-15","externalUrl":null,"permalink":"/notes/git-guide/","section":"DOCS","summary":"目前我常用的git操作流程\n1. 初始化项目为 Git 仓库 # 1.1 在 GitHub 新建仓库 # 登录 GitHub，点击右上角 + → New repository，填写仓库名称和描述.\n1.2 本地初始化 # 在终端(PowerShell)进入项目目录，执行以下命令：\n1# 依次执行： 2git init 3git config user.name \"YOUR NAME\" # 你的 GitHub 用户名 4git config user.email \"YOUR EMAIL\" # 建议使用 GitHub 提供的隐私邮箱（见 Settings → Emails） 5git remote add origin https://github.com/YOUR_NAME/YOUR_REPO_NAME.git 注意：GitHub 提供隐私邮箱格式 ID+username@users.noreply.github.com，可有效避免垃圾邮件。\n","title":"Personal Project Git Management","type":"notes"},{"content":"","date":"2026-07-15","externalUrl":null,"permalink":"/tags/project/","section":"Tags","summary":"","title":"Project","type":"tags"},{"content":"","date":"2026-06-23","externalUrl":null,"permalink":"/tags/linux/","section":"Tags","summary":"","title":"Linux","type":"tags"},{"content":"本文整合了Vault中，涵盖 WSL2 安装、Linux 常用命令、OpenCode / Hermes Agent 部署，以及 VMware 关机挂起、WinNAT 端口冲突、Dashboard 修复、API 网络修复等笔记.\n还在更新中\n1. 为什么选择 WSL2 # WSL2（Windows Subsystem for Linux 2）是微软官方的 Windows Linux 子系统，相比传统方案：\n方案 启动速度 性能 资源占用 与 Windows 集成 原生双系统 慢（需重启） 原生 占整盘 ❌ 完全隔离 VMware/VirtualBox 慢 接近原生 重（需分配整块资源） ⭕ 需配共享文件夹 WSL1 即时 慢（API 翻译） 轻 ⭕ WSL2 \u0026lt; 2s 接近原生（虚拟化） 按需动态分配 ✅ 文件系统互通 简单说：WSL2 = Linux 体验 + Windows 便利。文件系统互通意味着 Windows 上的项目可以在 WSL2 里用 Linux 工具链处理，反之亦然。\n2. 安装 WSL2 Ubuntu # 2.1 一键安装（推荐） # 以 管理员身份 打开 PowerShell，执行：\n1wsl --install 默认安装 Ubuntu LTS。安装完成后重启电脑。\n2.2 验证安装 # 重启后打开\u0026quot;Ubuntu\u0026quot;应用（开始菜单搜索），首次启动会要求设置用户名和密码（Linux 账户，与 Windows 账户独立）。\n进入终端后执行：\n1lsb_release -a 2# 应输出 Ubuntu 22.04 LTS 或更高版本 2.3 重装 Ubuntu（环境彻底损坏时） # 如果 Ubuntu 环境被搞乱（例如 PATH 污染严重、依赖混乱），最干净的办法是重装：\n1# 在 PowerShell 中执行 2wsl --unregister Ubuntu 然后重新打开 Ubuntu 图标，会自动触发重装。需要重新设置用户名和密码。\n3. 基础配置 # 3.1 更新软件包 # 1sudo apt update 2sudo apt upgrade -y 3sudo apt autoremove -y 3.2 换源（国内加速） # 默认源在国外，更新和装包都很慢。清华源 国内速度极快。\n先备份原配置：\n1sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 打开配置文件：\n1sudo nano /etc/apt/sources.list 将文件内容全部替换为（Ubuntu 22.04 Jammy 清华源）：\n1# 清华大学开源软件镜像站 - Ubuntu 22.04 LTS (Jammy) 2deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse 3deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse 4deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse 5deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse ⚠️ 注意版本号：不同 Ubuntu 版本（focal / jammy / noble）源地址不同，自己是什么版本就用什么版本的源。\n保存退出（Ctrl+O → Enter → Ctrl+X），然后：\n1sudo apt update 输出无报错即成功。\n💡 黑盒脚本：也可以用 bash \u0026lt;(curl -sSL https://linuxmirrors.cn/main.sh) 一键换源，但脚本是黑盒的，建议了解原理后手动配。\n3.3 优化环境变量（推荐） # WSL2 默认会继承 Windows 的 PATH，会把 Windows 的可执行文件都带进 Linux 环境。Python 装了多个版本时容易乱。\n优化前（查看现有 PATH） # echo $PATH 看到的 PATH 列表，可以看出 Windows 的路径混了进来\n关闭继承 # 1sudo nano /etc/wsl.conf 在文件末尾追加：\n1[interop] 2enabled = true 3appendWindowsPath = false Ctrl+O 写入 → Enter 确认 → Ctrl+X 退出。\n在 Windows PowerShell 里重启 WSL 让配置生效：\n1wsl --shutdown 重新打开 Ubuntu，执行 echo $PATH，PATH 列表会干净很多。\n3.4 备份 Ubuntu（强烈推荐） # 环境配置相对干净后务必导出一份备份：\n1# 在 Windows PowerShell 执行 2wsl -l -v # 复制输出的完整 Ubuntu 名称（默认是 Ubuntu） 3wsl --shutdown # 先关闭 WSL 4wsl --export Ubuntu D:\\wsl_backup\\ubuntu_snapshot.tar ⚠️ U盘备份坑：U盘如果是 FAT32，单文件 \u0026gt; 4GB 会失败。先把 U盘格式化成 exFAT 再备份。\n恢复备份：\n1wsl --import Ubuntu D:\\wsl_install D:\\wsl_backup\\ubuntu_snapshot.tar 4. 基础 Linux 命令入门 # WSL2 默认用户是普通用户，需要 root 权限时加 sudo。\n4.1 文件与目录 # 1pwd # 显示当前目录 2ls # 列出文件 3ls -la # 列出所有文件（含隐藏）+ 详细信息 4cd /path/to/dir # 切换目录 5cd ~ # 回到家目录（/home/\u0026lt;username\u0026gt;） 6cd .. # 返回上级目录 7mkdir my_dir # 新建目录 8mkdir -p a/b/c # 递归新建多级目录 9rm file.txt # 删除文件 10rm -r my_dir # 递归删除目录 11rm -rf my_dir # 强制递归删除（慎用！） 12cp src.txt dst.txt # 复制文件 13cp -r src_dir/ dst_dir/ # 递归复制目录 14mv old.txt new.txt # 重命名 / 移动 15cat file.txt # 一次性打印整个文件 16less file.txt # 分页查看（q 退出，空格翻页） 17head -n 20 file.txt # 看前 20 行 18tail -n 20 file.txt # 看后 20 行 19tail -f log.txt # 实时追踪日志 4.2 文本处理 # 1echo \u0026#34;hello\u0026#34; # 打印字符串 2echo \u0026#34;x\u0026#34; \u0026gt; file.txt # 覆盖写入 3echo \u0026#34;x\u0026#34; \u0026gt;\u0026gt; file.txt # 追加写入 4grep \u0026#34;pattern\u0026#34; file.txt # 搜索文本 5grep -rn \u0026#34;TODO\u0026#34; src/ # 递归搜索（含行号） 6grep -i \u0026#34;error\u0026#34; log.txt # 忽略大小写 7sed -i \u0026#39;s/old/new/g\u0026#39; file.txt # 全文替换 8awk \u0026#39;{print $1}\u0026#39; file.txt # 打印第 1 列 9sort file.txt # 排序 10uniq file.txt # 去重（需先 sort） 11wc -l file.txt # 统计行数 4.3 系统信息 # 1uname -a # 内核信息 2whoami # 当前用户 3hostname # 主机名 4uptime # 运行时长 5date # 当前时间 6df -h # 磁盘使用 7du -sh dir/ # 目录大小 8free -h # 内存使用 9nproc # CPU 核心数 4.4 进程管理 # 1ps aux # 列出所有进程 2ps aux | grep python # 过滤进程 3top # 实时进程监控（q 退出） 4htop # top 的升级版（更友好，需 apt install htop） 5kill PID # 结束进程 6kill -9 PID # 强制结束 7pkill -f process_name # 按名字杀进程 4.5 文件权限 # 1ls -l file.txt 2# -rw-r--r-- 1 user user 1234 Jan 1 12:00 file.txt 3# ↑ 类型 ↑ 所有者 ↑ 用户组 ↑ 大小 4 5chmod 755 script.sh # rwxr-xr-x（所有者全权，其他人读+执行） 6chmod +x script.sh # 加可执行权限 7chmod 600 ~/.ssh/id_rsa # 仅所有者可读写 8chown user:group file.txt # 改变所有者和组 权限数字速记：r=4 / w=2 / x=1，三位数字分别代表 所有者 / 用户组 / 其他人。\n4.6 网络 # 1ip addr # 查看 IP 地址（替代 ifconfig） 2ip route # 查看路由表 3curl https://example.com # 发起 HTTP 请求 4curl -I url # 只看响应头 5wget url # 下载文件 6ping example.com # 测试连通性 7ssh user@host # 远程登录 8scp file user@host:/path # 远程拷贝 9nslookup domain.com # DNS 查询 4.7 软件包管理（apt） # 1sudo apt update # 刷新软件源 2sudo apt install package # 安装 3sudo apt remove package # 卸载 4sudo apt search keyword # 搜索 5sudo apt list --installed # 列出已安装 6sudo apt upgrade # 升级所有 4.8 压缩解压 # 1tar -czvf archive.tar.gz dir/ # 打包 + gzip 压缩 2tar -xzvf archive.tar.gz # 解压 .tar.gz 3tar -xjvf archive.tar.bz2 # 解压 .tar.bz2 4unzip file.zip # 解压 zip 5zip -r archive.zip dir/ # 打包 zip 4.9 服务管理（systemd） # WSL2 Ubuntu 默认没有 systemd，要先用 service 命令；如需 systemd 见 WSL2 systemd 启用。\n1sudo service nginx start # 启动服务 2sudo service nginx stop # 停止服务 3sudo service nginx status # 查看状态 4sudo service nginx restart # 重启 4.10 实用技巧 # 1# 历史命令 2history # 查看历史命令 3Ctrl + R # 反向搜索历史（输入关键字） 4 5# 快捷键 6Ctrl + C # 终止当前命令 7Ctrl + D # 退出当前 shell 8Ctrl + L # 清屏 9Ctrl + A / E # 跳到行首 / 行尾 10 11# 管道与重定向 12cmd1 | cmd2 # 管道：cmd1 输出作为 cmd2 输入 13cmd \u0026gt; file # 覆盖重定向 14cmd \u0026gt;\u0026gt; file # 追加重定向 15cmd \u0026lt; file # 从文件读取输入 16 17# 后台运行 18nohup python app.py \u0026amp; # 后台运行，关闭终端不影响 5. 安装 Node.js（OpenCode / Hermes 都需要） # OpenCode 和 Hermes Agent 都需要 Node.js（Hermes 还需要 Python 3.11+）。\n5.1 用 nvm 管理多版本（推荐） # 1curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash 2source ~/.bashrc # 加载配置 3nvm --version # 验证 4 5nvm install --lts # 安装最新 LTS 6nvm ls # 列出已安装版本 7node -v # 验证 node 8npm -v # 验证 npm 6. OpenCode Agent # 官方文档：Windows (WSL) | OpenCode\nOpenCode 是一款终端 AI 编码 Agent，支持多 LLM Provider，类似 Claude Code。\n6.1 一键安装 # 在 WSL2 终端执行：\n1curl -fsSL https://opencode.ai/install | bash OpenCode 安装脚本执行中\n安装完成后加载配置并验证：\n1source ~/.bashrc 2opencode --help # 有输出即安装成功 6.2 解决网络问题 # 如果安装脚本报网络错误（DNS 污染或被墙），需要给 WSL 配置 Windows 代理。\n临时配置 # 先在 Windows 的 Clash Verge（或同类代理软件）里看代理端口（一般是 7890），然后：\n1# 在 WSL 内执行 2ip route # 获取 Windows 主机 IP（default via 后的 IP） 3export http_proxy=\u0026#34;http://\u0026lt;your_host_ip\u0026gt;:7890\u0026#34; 4export https_proxy=\u0026#34;http://\u0026lt;your_host_ip\u0026gt;:7890\u0026#34; 5curl ipinfo.io # 有输出即代理生效 代理生效后重新执行 curl -fsSL https://opencode.ai/install | bash。\n永久配置（写入 ~/.bashrc） # 1nano ~/.bashrc 在文件末尾追加：\n1# 自动获取 Windows Host IP 2HOST_IP=$(ip route | awk \u0026#39;/default/ {print $3}\u0026#39;) 3# HTTP / HTTPS Proxy 4export http_proxy=\u0026#34;http://$HOST_IP:7890\u0026#34; 5export https_proxy=\u0026#34;http://$HOST_IP:7890\u0026#34; 6# SOCKS5 Proxy（按 Clash 实际端口修改） 7export all_proxy=\u0026#34;socks5://$HOST_IP:7898\u0026#34; 加载配置：\n1source ~/.bashrc 2env | grep proxy # 应输出三个 proxy 变量 6.3 在 WSL 中使用 OpenCode # 操作 Windows 上的项目 # 1# /mnt/c/ 是 WSL 访问 Windows C 盘的固定挂载点 2cd /mnt/c/Users/YourName/project 3opencode 纯 WSL 内项目（性能更好） # 1cd ~ 2mkdir opencode_projects 3cd opencode_projects 4mkdir test 5cd test 6opencode 6.4 OpenCode 实用命令 # 命令 作用 /timeline 查看对话记录，可 revert undo messages and file changes 回退到当时状态（WSL 内文件不可回退） /share 生成分享链接，自动复制到剪贴板，浏览器打开即可分享 /unshare 关闭分享链接 /export 导出当前对话为文件 /undo 撤销操作（可多次进行） /session 管理当前项目下的历史会话 6.5 AGENTS.md # 在项目根目录创建 AGENTS.md，告诉 Agent 项目约定：\nAGENTS.md 的推荐配置方式\n不过优先考虑通过改变工程架构来提升 Agent 能力，而不是堆指令。\n6.6 Skills（技能扩展） # Skills 是 OpenCode 的可插拔能力扩展，类似 Claude Code 的 MCP。\n1全局 skills：~/.config/opencode/skills/各 skill 文件 2项目 skills：\u0026lt;project_root\u0026gt;/.opencode/skills/各 skill 文件 可以在 OpenCode 中输入 /skill 检查安装情况。推荐社区：SkillHub。\n6.7 MCP 集成 # 在 ~/.config/opencode/opencode.json 中配置：\n1{ 2 \u0026#34;$schema\u0026#34;: \u0026#34;https://opencode.ai/config.json\u0026#34;, 3 \u0026#34;mcp\u0026#34;: { 4 \u0026#34;shadcn\u0026#34;: { 5 \u0026#34;type\u0026#34;: \u0026#34;local\u0026#34;, 6 \u0026#34;command\u0026#34;: [\u0026#34;npx\u0026#34;, \u0026#34;-y\u0026#34;, \u0026#34;shadcn@latest\u0026#34;, \u0026#34;mcp\u0026#34;], 7 \u0026#34;enabled\u0026#34;: true 8 }, 9 \u0026#34;context7\u0026#34;: { 10 \u0026#34;type\u0026#34;: \u0026#34;remote\u0026#34;, 11 \u0026#34;url\u0026#34;: \u0026#34;https://mcp.context7.com/mcp\u0026#34;, 12 \u0026#34;enabled\u0026#34;: true, 13 \u0026#34;headers\u0026#34;: { 14 \u0026#34;CONTEXT7_API_KEY\u0026#34;: \u0026#34;YOUR_API_KEY\u0026#34; 15 } 16 } 17 } 18} Prompt 中说 use shadcn 即可调用对应 MCP 工具。\n6.8 插件：Oh My OpenCode # 如果有 Claude / Codex / Go 订阅，强烈推荐：\n把以下 prompt 发给 OpenCode：\n1Install and configure oh-my-opencode by following the instructions here: 2https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/refs/heads/dev/docs/guide/installation.md 来源：code-yeongyu/oh-my-openagent\n6.9 OpenCode 使用最佳实践 # ⚠️ Session 与目录绑定：session 绑定到 cwd / absolute path / workspace path，改名或移动后 session 找不到。\n推荐做法：\n不要在深层子目录启动 OpenCode 在 project root 启动，Agent 自己 cd 子目录 先想好项目结构再开发，后期再改结构会让旧 session 失效 1# 推荐：在 project root 启动 2cd project_root 3opencode 4 5# 错误：在深层子目录启动 6cd project/backend 7opencode 如果已改名导致 session 丢失：要么改回原目录名，要么从 project root 启动（不要进改名后的子目录）。\n7. Hermes Agent # 官方文档：Hermes Agent Documentation\nHermes Agent 是 Nous Research 出品的开源 AI Agent，定位类似 Claude Code 但更开放。\n7.1 前置条件 # 唯一硬性要求：git 已安装。\n1git --version # 确认 git 可用 其余所有依赖（Python 3.11、Node.js v22、ripgrep、ffmpeg、uv）均由安装器自动检测并安装。\n7.2 一键安装 # 1curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash 安装器自动完成：\n检测系统，设置依赖 克隆仓库到 ~/.hermes/hermes-agent/ 创建 Python 虚拟环境 安装 Python 依赖 创建 ~/.local/bin/hermes 软链接 写入 PATH 到 ~/.bashrc 可选：LLM provider 配置引导 7.3 安装后的目录结构 # 1~/.hermes/ 2├── config.yaml # 配置（模型、终端、工具等） 3├── .env # API 密钥和 secrets 4├── auth.json # OAuth 凭据 5├── SOUL.md # agent 人格定义 6├── hermes-agent/ # 代码仓库 7├── memories/ # 持久记忆 8├── skills/ # 技能 9├── cron/ # 定时任务 10├── sessions/ # 会话 11└── logs/ # 日志 12~/.local/bin/hermes # 可执行文件软链接 ✅ 与 OpenCode 零冲突：OpenCode 在 ~/.opencode/ 和 ~/.config/opencode/，Hermes 在 ~/.hermes/，二进制名也不同。\n7.4 首次配置 # Step 1：重新加载 shell # 1source ~/.bashrc # 或 source ~/.zshrc Step 2：配置 LLM Provider # 1hermes model 支持的 provider：\nProvider 认证方式 Nous Portal OAuth 登录 OpenAI Codex Device code OAuth Anthropic OAuth 或 API key OpenRouter API key DeepSeek DEEPSEEK_API_KEY GitHub Copilot OAuth Custom Endpoint base URL + API key（支持 Ollama / vLLM 等） Alibaba Cloud / DashScope DASHSCOPE_API_KEY 📌 文档特别提示：模型至少需要 64K tokens 上下文窗口。\nStep 3：运行首次对话 # 1hermes # 经典 CLI 2hermes --tui # 推荐：现代 TUI 界面 可以让 Hermes 默认启动 TUI（修改配置）：\n在 Hermes 配置中默认使用 TUI\nStep 4：验证会话持久化 # 1hermes --continue # 恢复最近会话 2hermes -c # 简写 7.5 基础交互命令 # 1/help # 查看所有命令列表 2/title 我的会话 # 给当前会话起名字 3/new # 开始新会话（工具变更后需要这个才能生效） 4/retry # 重新发送上一条消息 5/undo # 撤销上一轮对话 6/resume # 恢复之前命名的会话 7/compress # 手动压缩对话历史（省 token） 8/stop # 停止正在运行的进程 9/model grok-4 # 切换模型（不用退出） 10/reasoning medium # 设置推理深度（none/low/medium/high） 11/clear # 清屏 快捷键：Alt+Enter 或 Ctrl+J 换行。\n7.6 高级功能命令 # 1# 配置相关 2hermes config # 查看当前配置 3hermes config edit # 用编辑器打开配置文件 4hermes config set key val # 设置某个值 5 6# 工具管理 7hermes tools # 交互式启用/禁用工具 8hermes tools list # 查看所有工具状态 9 10# 技能管理 11hermes skills list # 已安装技能 12hermes skills search 关键词 # 搜索技能市场 13hermes skills install 名称 # 安装技能 14 15# MCP 服务器 16hermes mcp add 名称 --command \u0026#34;npx ...\u0026#34; # 添加 MCP 17hermes mcp list # 列出所有 MCP 18 19# 诊断与配置 20hermes doctor # 健康检查 21hermes doctor --fix # 自动修复能修的问题 22hermes setup # 交互式配置向导 23hermes sessions list # 列出所有会话 24hermes gateway status # gateway 状态 25hermes gateway setup # 配置远程平台 26hermes dashboard # 打开网页端（端口见下） 27hermes --tui sessions browse # TUI 方式选择历史对话 hermes --tui sessions browse 的界面效果\n7.7 安全加固（生产部署必做） # 1. 限制 .env 文件权限\n1chmod 600 ~/.hermes/.env 2. 配置危险命令审批模式\n编辑 ~/.hermes/config.yaml：\n1approvals: 2 mode: manual # manual | smart | off 3 timeout: 60 3. 配置 gateway allowlist（如果使用消息平台）\n1# ~/.hermes/.env 2TELEGRAM_ALLOWED_USERS=你的用户ID 4. 生产部署 checklist\n设置明确的 allowlist 使用 Docker 后端做容器隔离 设置资源限制（CPU / 内存 / 磁盘） API 密钥放 .env 并 chmod 600 不要以 root 运行 gateway 定期更新：hermes update 7.8 进阶功能 # 场景 命令 / 配置 接入消息平台 hermes gateway setup（文档建议 CLI 跑通后再搞） Docker 隔离 hermes config set terminal.backend docker 定时任务 hermes cron create \u0026ldquo;每天上午9点发日报\u0026rdquo; 安装技能 hermes skills search kubernetes → hermes skills install ... MCP 集成 编辑 ~/.hermes/config.yaml 加 mcp_servers 段 语音模式 pip install \u0026quot;hermes-agent[voice]\u0026quot; 然后 /voice on 编辑器集成 (ACP) pip install -e '.[acp]' → hermes acp（支持 VS Code / Zed / JetBrains） 配置自动压缩 默认已启用，compression.threshold: 0.50，到 50% 上下文时自动压缩 7.9 更新与卸载 # 1hermes update # 更新（自动拉代码 + 更新依赖 + config migrate + 重启 gateway） 2hermes update --check # 只检查不更新 3hermes version # 查看版本 4hermes uninstall # 卸载（可选保留 ~/.hermes/ 配置） 8. WSL2 + OpenCode + Hermes 组合的优势 # 8.1 相比原生 Windows # 维度 Windows + PowerShell WSL2 + 工具链 包管理 无统一方案（scoop/chocolatey/winget 三分天下） apt 一行搞定 工具链 路径分隔符、shell 语法与 Unix 差异大 完整 Linux 工具链 AI Agent 兼容 多数 Agent 原生支持 Linux，Windows 体验差 全部原生支持 性能 单 OS WSL2 接近原生 文件路径 C:\\ 反斜杠 /mnt/c/ 正斜杠，WSL 内 / 8.2 相比 Mac # 维度 Mac WSL2 Linux 体验 ✅ 原生 ✅ 几乎原生 与 Windows 协作 ❌ 无 Windows ✅ 同一台机器双系统 游戏 / 日常软件 ✅ 体验好 ✅ Windows 仍然主导 价格 💰 较贵 💰 用现有 Windows 机器 8.3 相比传统 VM（VMware / VirtualBox） # 维度 VMware WSL2 启动速度 30s - 2min \u0026lt; 2s 资源占用 预分配（占整盘） 动态分配 与 Windows 文件互通 需配共享文件夹 直接 /mnt/c/ 访问 剪贴板 / 网络 需装 VMware Tools 直接复用 Windows 8.4 OpenCode vs Hermes # 维度 OpenCode Hermes 定位 终端 AI 编码 Agent 通用 AI Agent（编码 / 任务 / 定时） 默认模型 需手动配 需手动配 Skills ✅ 项目级 + 全局 ✅ 全局 + 持久记忆 MCP ✅ ✅ 定时任务 ❌ ✅ hermes cron 消息平台 ❌ ✅ hermes gateway 持久记忆 ❌ ✅ memories/ TUI ❌ ✅ hermes --tui 仪表盘 ❌ ✅ hermes dashboard 最佳实践：两个都装，按需切换。WSL 内路径不同时也不冲突（~/.opencode/ vs ~/.hermes/）。\n9. 常见问题修复 # 9.1 VMware 导致 WSL 关机挂起 # 来源：VMware关机挂起修复.md\n症状：Trae / VS Code 连接 WSL 后关机/重启，屏幕熄灭，风扇转，电源灯常亮，需强制关机。\n根因：\nvmx86.sys 驱动开机自动加载且带 IGNORES_SHUTDOWN 标志（主因） VMnet1 / VMnet8 虚拟网卡 + VMware 服务关机时阻塞（次因） 修复（管理员 PowerShell）：\n1# 1. 禁用 vmx86 驱动 2sc.exe stop vmx86 3sc.exe config vmx86 start= demand 4 5# 2. 禁用 VMware 服务 6Stop-Service VMAuthdService, VMnetDHCP, VMUSBArbService, \u0026#34;VMware NAT Service\u0026#34; -Force 7Set-Service VMAuthdService, VMnetDHCP, VMUSBArbService, \u0026#34;VMware NAT Service\u0026#34;, VmwareAutostartService -StartupType Disabled 8 9# 3. 禁用虚拟网卡 10Disable-NetAdapter -Name \u0026#34;VMware Network Adapter VMnet8\u0026#34; -Confirm:$false 11Disable-NetAdapter -Name \u0026#34;VMware Network Adapter VMnet1\u0026#34; -Confirm:$false 恢复 VMware（需要用时）：\n1Enable-NetAdapter \u0026#34;VMware Network Adapter VMnet8\u0026#34; 2Enable-NetAdapter \u0026#34;VMware Network Adapter VMnet1\u0026#34; 3Set-Service VMAuthdService, VMnetDHCP, VMUSBArbService, \u0026#34;VMware NAT Service\u0026#34; -StartupType Automatic 4Start-Service VMAuthdService, VMnetDHCP, VMUSBArbService, \u0026#34;VMware NAT Service\u0026#34; 效果：关机耗时 ~3 分钟 → ~38 秒。\n9.2 WinNAT 端口冲突 # 来源：WinNAT端口冲突修复.md\n症状：服务报 EACCES: permission denied 0.0.0.0:PORT，端口被 WinNAT 随机保留占用。\n排查：\n1# 1. 查进程占用 2netstat -ano | findstr :PORT 3 4# 2. 查 WinNAT 保留范围 5netsh interface ipv4 show excludedportrange protocol=tcp 端口出现在排除范围 → WinNAT 随机保留。\n修复（必须按顺序）：\n1# 管理员 PowerShell 2wsl --shutdown # 先停 WSL 3net stop winnat # 再停 WinNAT 4net start winnat # 再起 WinNAT ⚠️ 顺序错误会损坏 WSL2 网络：先动 WinNAT 再 wsl --shutdown 会导致必须重启 Windows 才能恢复。\n9.3 Hermes Dashboard 修复 # 来源：hermes-dashboard-fix.md\n问题：hermes dashboard 启动后 Windows 浏览器无法加载页面。\n根因：\n默认端口 9119 在 WSL2 下不可用（localhost 转发可能失效） 示例插件 404 导致 React 无限渲染卡死 修复：\n1# 方案 A：换端口 8888 2hermes dashboard --no-open 3# 浏览器打开 http://127.0.0.1:8888 4 5# 方案 B：直连 WSL IP 6hermes dashboard --host 0.0.0.0 --insecure --no-open 7# 浏览器打开 http://172.30.30.3:9119 如果 8888 仍不通：wsl --shutdown 后重启 WSL2 可恢复 localhost 转发。\n进阶修复（修改源码）：把 hermes_cli/main.py 的 default=9119 改为 default=8888；并在 plugins/example-dashboard/dashboard/dist/ 下创建空 index.js 桩文件消除 404。\n📌 WSL2 NAT 安全性：--host 0.0.0.0 --insecure 在 WSL2 内只对 Windows 本机开放。WSL2 用 NAT，172.30.x.x 是内部私有 IP，外部不可路由。\n9.4 Hermes API 网络连接修复 # 来源：hermes-api-network-fix.md\n症状：hermes 会话中频繁出现 APIConnectionError，间歇性超时重试。\n根因：\nWSL2 默认 DNS 10.255.255.254 对 api.deepseek.com 解析间歇性超时 未配置代理，Python httpx 直连时遇到 DNS 失败就超时 修复 1：固定 WSL2 DNS\n1# 阻止 WSL 自动覆盖 DNS 2sudo tee -a /etc/wsl.conf \u0026lt;\u0026lt;\u0026lt; $\u0026#39;\\n[network]\\ngenerateResolvConf = false\u0026#39; 3 4# 重建 resolv.conf 5sudo rm /etc/resolv.conf 6sudo tee /etc/resolv.conf \u0026lt;\u0026lt; \u0026#34;EOF\u0026#34; 7nameserver 223.5.5.5 8nameserver 114.114.114.114 9EOF 10 11# 关键：在 Windows PowerShell 重启 WSL 12# wsl --shutdown ⚠️ 必须 wsl --shutdown：/etc/wsl.conf 的修改需要 WSL 实例完全重启后才能生效，否则自定义 DNS 会被自动还原。\n修复 2：手动配置代理\n1export HTTP_PROXY=http://172.30.16.1:7890 2export HTTPS_PROXY=http://172.30.16.1:7890 3export NO_PROXY=localhost,127.0.0.1,::1,.local WSL2 网关 IP 每次都不同：\n1ip route | grep default # 找 \u0026#34;default via\u0026#34; 后面的 IP 常见误区：早期记录把网关记为 172.30.30.1，实际是 172.30.16.1，子网是 172.30.16.0/20。\n10. 速查命令汇总 # 1# WSL 状态 2wsl -l -v # 列出已安装的 Linux 发行版 3wsl --shutdown # 关闭所有 WSL 实例 4wsl --export Ubuntu \u0026lt;path.tar\u0026gt; # 导出备份 5wsl --import Ubuntu \u0026lt;install_path\u0026gt; \u0026lt;path.tar\u0026gt; # 恢复备份 6 7# OpenCode 8opencode # 启动 9opencode --help # 帮助 10/opencode: --continue # 恢复会话（具体看版本） 11 12# Hermes 13hermes # CLI 14hermes --tui # TUI（推荐） 15hermes model # 配置 LLM 16hermes doctor # 诊断 17hermes doctor --fix # 自动修复 18hermes update # 更新 19hermes skills list # 技能列表 20hermes dashboard --no-open # 仪表盘 21hermes --tui sessions browse # 浏览历史会话 22 23# 代理（WSL 临时） 24export http_proxy=\u0026#34;http://$(ip route | awk \u0026#39;/default/ {print $3}\u0026#39;):7890\u0026#34; 25export https_proxy=\u0026#34;http://$(ip route | awk \u0026#39;/default/ {print $3}\u0026#39;):7890\u0026#34; 26 27# DNS 检查 28nslookup api.deepseek.com # DNS 查询 29curl --resolve api.deepseek.com:443:112.13.211.83 https://api.deepseek.com/v1/models # 跳过 DNS 官方文档 # Windows (WSL) | OpenCode OpenCode MCP 文档 OpenCode 配置文档 Hermes Agent Documentation oh-my-opencode (插件) SkillHub - 中国用户 Skills 社区 ","date":"2026-06-23","externalUrl":null,"permalink":"/notes/linux-getting-started/","section":"DOCS","summary":"本文整合了Vault中，涵盖 WSL2 安装、Linux 常用命令、OpenCode / Hermes Agent 部署，以及 VMware 关机挂起、WinNAT 端口冲突、Dashboard 修复、API 网络修复等笔记.\n还在更新中\n1. 为什么选择 WSL2 # WSL2（Windows Subsystem for Linux 2）是微软官方的 Windows Linux 子系统，相比传统方案：\n方案 启动速度 性能 资源占用 与 Windows 集成 原生双系统 慢（需重启） 原生 占整盘 ❌ 完全隔离 VMware/VirtualBox 慢 接近原生 重（需分配整块资源） ⭕ 需配共享文件夹 WSL1 即时 慢（API 翻译） 轻 ⭕ WSL2 \u003c 2s 接近原生（虚拟化） 按需动态分配 ✅ 文件系统互通 简单说：WSL2 = Linux 体验 + Windows 便利。文件系统互通意味着 Windows 上的项目可以在 WSL2 里用 Linux 工具链处理，反之亦然。\n","title":"Linux Basics: WSL2 Installation to OpenCode / Hermes Agent Deployment","type":"notes"},{"content":"","date":"2026-06-23","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","date":"2026-06-23","externalUrl":null,"permalink":"/series/wsl2/","section":"Series","summary":"","title":"Wsl2","type":"series"},{"content":"","date":"2026-06-23","externalUrl":null,"permalink":"/tags/wsl2/","section":"Tags","summary":"","title":"Wsl2","type":"tags"},{"content":" 环境准备 # 在 VSCode 扩展商店搜索 python，安装 Microsoft 官方 Python 插件即可。\n基础版本管理 # 安装多版本 Python # 系统已将 Python 3.14 安装并写入系统 PATH，但某些框架（如 Flask）目前更适合 3.10–3.12 版本，因此需要额外安装 Python 3.12。此时注意两点：\n不要再添加进系统环境变量 参考安装选项： 只需要 pip 即可，其余都是多余的（已安装过 3.14）\n推荐给所有用户安装，按图示配置即可\n创建虚拟环境 # 先检查已安装的 Python 版本：\n1py -0 应输出 3.14 和 3.12 两个版本。然后创建并激活虚拟环境：\n1py -3.12 -m venv .venv 2.venv\\Scripts\\Activate.ps1 最后安装依赖：\n1pip install flask 项目结构 # 推荐的项目目录结构：\n1myproject/ 2├── pyproject.toml 3├── README.md 4├── LICENSE 5├── .gitignore 6├── tests/ # pytest 测试 7│ └── test_xxx.py 8└── src/ # 核心源码 9 └── myproject/ 10 ├── __init__.py # 必须 11 ├── main.py 12 └── utils.py pyproject.toml 配置示例 # 1[build-system] 2requires = [\u0026#34;setuptools\u0026gt;=61\u0026#34;] 3build-backend = \u0026#34;setuptools.build_meta\u0026#34; 4 5[project] 6name = \u0026#34;myproject\u0026#34; 7version = \u0026#34;0.1.0\u0026#34; 8description = \u0026#34;Example project\u0026#34; 9readme = \u0026#34;README.md\u0026#34; 10requires-python = \u0026#34;\u0026gt;=3.11\u0026#34; 11 12dependencies = [ 13 \u0026#34;requests\u0026gt;=2.32\u0026#34;, 14 \u0026#34;rich\u0026gt;=14.0\u0026#34; 15] 16 17[project.optional-dependencies] 18dev = [ 19 \u0026#34;pytest\u0026#34;, 20 \u0026#34;ruff\u0026#34; 21] 22 23[tool.setuptools.packages.find] 24where = [\u0026#34;src\u0026#34;] 25 26[tool.ruff] 27line-length = 88 安装与开发 # 确保已有 pyproject.toml 和 __init__.py，然后以可编辑模式安装：\n1pip install -e \u0026#34;.[dev]\u0026#34; Python 会将当前项目以 editable 模式 安装到当前虚拟环境中。之后修改 src/ 中的代码会立即生效，无需重新执行 pip install。\n基础检查 # 1pytest # 运行 tests/ 中的自动化测试 2ruff check . --fix # 检查代码风格问题 3ruff format . # 统一代码格式 安装后，无论在哪个目录都可以通过以下方式导入项目代码：\n1import myproject 2from myproject import main 构建与发布 # 构建分发包 # 1python -m build 会在 dist/ 目录生成可分发的包文件。\n发布到 PyPI # 1twine upload dist/* 常见问题 # PowerShell 脚本权限 # Windows 的 PowerShell 默认没有执行脚本权限，导致无法自动激活虚拟环境。以管理员身份执行：\n1Set-ExecutionPolicy -Scope CurrentUser RemoteSigned 选择 Y 确认，即可正常使用 venv 虚拟环境。\n若要还原设置：\n1Set-ExecutionPolicy -Scope CurrentUser Undefined ","date":"2026-06-20","externalUrl":null,"permalink":"/notes/python-env-setup/","section":"DOCS","summary":"环境准备 # 在 VSCode 扩展商店搜索 python，安装 Microsoft 官方 Python 插件即可。\n基础版本管理 # 安装多版本 Python # 系统已将 Python 3.14 安装并写入系统 PATH，但某些框架（如 Flask）目前更适合 3.10–3.12 版本，因此需要额外安装 Python 3.12。此时注意两点：\n不要再添加进系统环境变量 参考安装选项： 只需要 pip 即可，其余都是多余的（已安装过 3.14）\n","title":"make a python package","type":"notes"},{"content":"","date":"2026-06-20","externalUrl":null,"permalink":"/tags/pypi/","section":"Tags","summary":"","title":"Pypi","type":"tags"},{"content":"","date":"2026-06-20","externalUrl":null,"permalink":"/tags/python/","section":"Tags","summary":"","title":"Python","type":"tags"},{"content":" lyrumu Student·Developer(Beginner)\nHangzhou,Zhejiang,China\nFind me on\nGitHub Gmail QQ GitHub: github.com/lyrumu \u0026nbsp;·\u0026nbsp; Gmail: 写信 \u0026nbsp;·\u0026nbsp; QQ Mail: xkjdq_2025@qq.com （去 QQ 邮箱，登录后粘到收件人栏） 已复制 9 notes · 1 projects · 9 music · 90 days online · last updated 2026-09-14 ✦ Technical stack # Git Git Linux Linux Markdown Markdown Python Python Hugo Hugo C++ C++ AI Agent Flutter Flutter 熟练 了解 学习中 ✦ Current focus # Maintain and update \"lyrumu's page\" I am continuously updating this website and further learning about Hugo. ✦ Path so far(There will be multiple timelines listed below) # Learning path My Milestone in Computer Learning 3 Build my personal site(lyrumu\u0026#39;s page) 2026.6 Creating and improving my own digital space to showcase learning notes and projects,demos. 2 Begin to use Hermes and Opencode in WSL2 2026.3 The first time I interacted with agents using the CLI of Windows. Though both Hermes and Opencode have the TUI mode,I still prefer the file list style of VScode. Thus,now i choose to use Trae. 1 Learn Algorithm 2025.8 Before entering university,I was introduced to algorithms for the first time. After one year of study,I realized that I didn\u0026rsquo;t have any talent for algorithm competitions (perhaps it was because I relied too much on AI). So I no longer devoted all my energy to solving algorithm problems. ✦ GitHub Contribution # Loading GitHub contributions… ","externalUrl":null,"permalink":"/about/","section":"ABOUT ME","summary":" lyrumu Student·Developer(Beginner)\nHangzhou,Zhejiang,China\nFind me on\nGitHub Gmail QQ GitHub: github.com/lyrumu  ·  Gmail: 写信  ·  QQ Mail: xkjdq_2025@qq.com （去 QQ 邮箱，登录后粘到收件人栏） ","title":"ABOUT ME","type":"about"},{"content":"Otherwise,what\u0026rsquo;s the point of being alive?\n01 MUSIC Music · Favorite Tracks so keep your ears and brain healthy\n#playlist #lofi #classic 进入 ","externalUrl":null,"permalink":"/life/","section":"DAILY","summary":"Otherwise,what’s the point of being alive?\n01 MUSIC Music · Favorite Tracks so keep your ears and brain healthy\n#playlist #lofi #classic 进入 ","title":"DAILY","type":"life"},{"content":"Recently Listen to(Irregular updates)\nClick a track to start a 30-second preview. For full tracks, use the platform links below each song.\nMode Loop All Vol 80% Crossing Field LiSA Apple Music Spotify 4:09 ウィーアー!(We Are!) Da-ice Apple Music Spotify 4:06 床边故事 Jay Chou 《床边故事》 Apple Music Spotify 3:45 鞋子特大号 Jay Chou 《哎呦不错哦》 Apple Music Spotify 3:41 Departures ~あなたにおくるアイの歌~ ryo\u0026amp;\u0026amp;EGOIST Apple Music Spotify 4:15 My Dearest ryo\u0026amp;\u0026amp;supercell Apple Music Spotify 5:38 Unravel TK from Ling Tosite Sigure 《Fantastic Magic》 Apple Music Spotify 3:58 比较大的大提琴 Jay Chou— 哇咧喵 《十二新作》 Apple Music Spotify 4:12 黑色幽默 Jay Chou 《Jay》 Apple Music Spotify 4:43 LoadMore 尚未播放 0:00 / 0:00 Copyright Notice — All tracks and artwork belong to their respective rights holders. Embedded previews are ≤30s fair-use clips for identification only; full tracks are streamed via official platforms (Apple Music, Spotify). Rights holders may request removal via the About page.\n","externalUrl":null,"permalink":"/life/music/","section":"DAILY","summary":"Recently Listen to(Irregular updates)\nClick a track to start a 30-second preview. For full tracks, use the platform links below each song.\nMode Loop All Vol 80% Crossing Field LiSA Apple Music Spotify 4:09 ウィーアー!(We Are!) Da-ice Apple Music Spotify 4:06 床边故事 Jay Chou 《床边故事》 Apple Music Spotify 3:45 鞋子特大号 Jay Chou 《哎呦不错哦》 Apple Music Spotify 3:41 Departures ~あなたにおくるアイの歌~ ryo\u0026\u0026EGOIST Apple Music Spotify 4:15 My Dearest ryo\u0026\u0026supercell Apple Music Spotify 5:38 Unravel TK from Ling Tosite Sigure 《Fantastic Magic》 Apple Music Spotify 3:58 比较大的大提琴 Jay Chou— 哇咧喵 《十二新作》 Apple Music Spotify 4:12 黑色幽默 Jay Chou 《Jay》 Apple Music Spotify 4:43 LoadMore 尚未播放 0:00 / 0:00 Copyright Notice — All tracks and artwork belong to their respective rights holders. Embedded previews are ≤30s fair-use clips for identification only; full tracks are streamed via official platforms (Apple Music, Spotify). Rights holders may request removal via the About page.\n","title":"MUSIC","type":"life"},{"content":" FEATURED 2026-01 LINEAR ALGEBRA CALCULATOR Linear Algebra Calculator A Very simple linear algebra calculation for static website\n#linear-algebra #static website #algorithm 在线 源码 ","externalUrl":null,"permalink":"/works/projects/","section":"WORKS","summary":" FEATURED 2026-01 LINEAR ALGEBRA CALCULATOR Linear Algebra Calculator A Very simple linear algebra calculation for static website\n","title":"PROJECTS","type":"works"},{"content":"","externalUrl":null,"permalink":"/topics/","section":"Topics","summary":"","title":"Topics","type":"topics"},{"content":" 01 · /works/projects/ PROJECTS Projects · Vibe Coding vibe coding、demo\n#demos#agents#experiments 进入 ","externalUrl":null,"permalink":"/works/","section":"WORKS","summary":" 01 · /works/projects/ PROJECTS Projects · Vibe Coding vibe coding、demo\n#demos#agents#experiments 进入 ","title":"WORKS","type":"works"}]