这几天在 Linux 开发机疯狂敲命令的时候,我发现自己陷入了一个尴尬又低效的循环
:脑子里的命令记得模模糊糊,导致需要频繁地在百度和AI助手之间切换,复制命令,再回到终端粘贴执行。更令人沮丧的是,网上找来的命令常常水土不服,第一次跑不通,又得回头继续搜索
......三番五次下来,耐心几乎被消磨殆尽,拿刀来。
就在这时,一个念头闪过:为什么不自己写一个 AI 命令行工具呢?
我只需要用大白话描述我的需求
,AI 就能自动翻译成精准的命令
。我扫一眼确认无误,直接回车执行,简直酷毙啦!
下面跟大家讲讲我的心路历程~
从想法到放弃,只用了一秒
自己写一个?说干就干......吗?我可不想自己干
。
一想到要初始化项目
、安装各种依赖
、编写 HTTP 请求和模型转发
、调试糟心的提示词(Prompt)
,我就头大。这套流程下来,没有一天开发、一天调试根本搞不定。而且,如果花了两天时间,最后做出来的东西不好用,那不就白折腾了?
转机:让 AI 来构建 AI 工具
最近我用 AI 编程颇有心得,本着"免费的劳动力不用白不用"的原则(主要是KIRO现在还可以免费薅羊毛
),我决定把这个任务"外包"给我的 AI 编程助手 - Kiro
。我只需要动动嘴(敲几下键盘),让它来完成所有繁重的工作。
最终的成品效果惊人
,简直是"召之即来,挥之即去"。无论是整理桌面文件
,还是查看内存占用
,它都能精准响应,指哪打哪。再装到 Linux 机器上,简直起飞了。
一开始,我也不知道 AI 能否准确理解我的意图,我给它写了一段非常朴素的提示词,甚至连 API 的调用代码都是直接从智谱 AI 官网复制粘贴的,主打一个"绝不动脑",想到哪里写到哪里,很飘逸。(有图为证,哈哈哈)
markdown
帮我构建一个node cli工程,这个工程的效果是用户只要输入 ask xxx,就会把 xxx 的文字,转换成 真正可以执行的命令。方便用户遗忘不同平台的命令行语法。使用node+ts语法编写,准备后构建命令。
具体的功能:
1、ask指令会获得用户的系统类型和版本,然后结合xxx组装一个prompt,传给大模型。
2、要使用env-paths这个库,把AI模型的配置文件写入配置中。使用ask config 可以使用打开这个文件。可以配置模型的API地址,模型名称和KEY。第一版需要支持...[智谱AI的API代码]...这个AI链接方式。
-----
全程命令使用 pnpm,并测试是否可以用。例如:
ask 删除3000端口进程

接下来,就是见证奇迹的时刻。 Kiro
开始了它的表演:
从项目初始化
、代码编写
到功能测试
,每一步都清晰明确。
整个过程只花了大约 10 分钟
。甚至最后,它还准备帮我把项目发布到 GitHub 和 NPM。不得不感叹,在编码这块,还是 Claude 4
模型更胜一筹。 (不过还是吐槽一下 Kiro
的 Vibe
模式还是好用的,Spec
模式我觉得太重了,难用)

成果展示与用法:ask2-ai-cli
创意就这么变成了现实。这个工具,我把它命名为 ask2-ai-cli
。
- NPM 地址 : www.npmjs.com/package/ask...
- GitHub 地址 : github.com/zhump/ask2-...
实际的效果也很惊艳~

下面是它的基本用法,非常简单:
第一步:安装
通过 npm 或 pnpm 进行全局安装。
Bash
npm install -g ask2-ai-cli
# 或者
pnpm add -g ask2-ai-cli
第二步:配置 API Key
你需要一个大模型 API Key 来驱动它。这里我推荐去[智谱AI开放平台]-(bigmodel.cn/) 注册,他们会送了一些免费额度,对于我们这种命令行场景完全够用。模型推荐使用 glm-4.5-airx
,响应速度快,既省钱又准确。(真不是广告,纯属自来水推荐!我都没贴注册推荐链接)
安装完成后,运行配置命令:
Bash
ask config
这个命令会自动打开配置文件(一个 config.json
文件)。你只需要将你的 API Key
、模型名称
等信息填入即可。
JSON
{
"API_KEY": "YOUR_API_KEY",
"BASE_URL": "https://open.bigmodel.cn/api/paas/v4/chat/completions",
"MODEL": "glm-4.5-airx"
}
第三步:开始使用!
现在,你可以像和人对话一样,让它帮你生成命令了。
示例 1:查询并终止端口进程
忘记 lsof 和 kill 的组合技了?没关系,直接问:
Bash
ask 帮我找到占用3000端口的进程并干掉它
AI 会生成类似 kill -9 $(lsof -t -i:3000)
的命令,并询问你是否执行。你只需按下回车。
示例 2:文件操作
想要查找大文件,或者打包压缩?
Bash
> ask 查看当前目录体积最大的前10个文件
ls -lh | sort -rh -k 5 | head -n 10
> ask 将所有.md文件打包成 a.tar.gz
tar -czvf a.tar.gz *.md
示例 3:系统信息查询
查询网络或系统信息也易如反掌。
Bash
> ask 查看本机ip
ifconfig | grep "inet "
> ask 查看内存使用情况
top -l 1 | head -n 10 | grep PhysMem
# 调戏它一下
> ask 五花肉怎么做
open "https://www.baidu.com/s?wd=五花肉怎么做" ##还得是你
AI 会结合你的操作系统(Windows, macOS, Linux)
生成最合适的命令,你不再需要为人脑适配不同平台的语法而烦恼。 追加-d
参数,就能看到所有的过程,包括提示词哦。
less
~ % ask 我桌面图片文件有多少兆 -d
🔧 [DEBUG] Starting stage: Initialization
⠋ AI is thinking...✅ [DEBUG] Completed stage: Initialization (12ms)
🔧 [DEBUG] Starting stage: Get system info
✅ [DEBUG] Completed stage: Get system info (11ms)
🔧 [DEBUG] Starting stage: Build prompt
📝 [DEBUG] Prompt sent to AI:
────────────────────────────────────────────────────────────
You are a command-line assistant. Convert natural language requests into executable commands for the specified system.
System Information:
- Operating System: macOS (darwin)
- Architecture: arm64
- Shell: zsh
- Available package managers: brew (preferred: brew)
- Project Type: general
User Request: "我桌面图片文件有多少兆"
CRITICAL OUTPUT FORMAT REQUIREMENTS:
- Return ONLY the executable command, nothing else
- NO markdown code blocks (```bash or ``` or backticks)
- NO explanations or descriptions
- NO extra text before or after the command
- The response should be ready to execute directly when user presses Enter
Technical Requirements:
1. Command must be compatible with macOS system
2. Use safe, commonly-used options and parameters
3. Use zsh shell syntax
4. For package management, prefer brew
5. For file/directory operations:
- Use appropriate flags (e.g., -r for directories, -f for force)
- Consider whether target is file or directory
- Use safe deletion methods when possible
Important Notes:
- For deleting directories: use 'rm -rf' or 'rmdir' as appropriate
- For deleting files: use 'rm -rf' with appropriate flags
- For system operations: include necessary privileges (sudo) when required
- Always generate working, tested command patterns
Generate the executable command now:
────────────────────────────────────────────────────────────
✅ [DEBUG] Completed stage: Build prompt (0ms)
🔧 [DEBUG] Starting stage: AI generate command
⠏ AI is thinking...
🤖 [DEBUG] AI raw response:
────────────────────────────────────────────────────────────
find ~/Desktop -type f -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.gif" -o -name "*.bmp" -o -name "*.tiff" -o -name "*.webp" | xargs ls -la | awk '{sum += $5} END {print sum/1024/1024 " MB"}'
────────────────────────────────────────────────────────────
✅ [DEBUG] Completed stage: AI generate command (735ms)
🔧 [DEBUG] Starting stage: Display result
Suggested command:
find ~/Desktop -type f -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.gif" -o -name "*.bmp" -o -name "*.tiff" -o -name "*.webp" | xargs ls -la | awk '{sum += $5} END {print sum/1024/1024 " MB"}'
⚠️ Please review the command carefully before execution!
✅ [DEBUG] Completed stage: Display result (1ms)
🔧 [DEBUG] Starting stage: Wait user choice
Choose action:
Enter - Execute command
N - Exit
C - Change answer
E - Explain command
Please choose (Enter/N/C/E):
✅ [DEBUG] Completed stage: Wait user choice (1702ms)
🔧 [DEBUG] Starting stage: Execute command
Executing command: find ~/Desktop -type f -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.gif" -o -name "*.bmp" -o -name "*.tiff" -o -name "*.webp" | xargs ls -la | awk '{sum += $5} END {print sum/1024/1024 " MB"}'
──────────────────────────────────────────────────
354.886 MB
──────────────────────────────────────────────────
✅ Command executed successfully
✅ [DEBUG] Completed stage: Execute command (3133ms)
📊 [DEBUG] Execution timing statistics:
────────────────────────────────────────
Initialization: 12ms (0.2%)
Get system info: 11ms (0.2%)
Build prompt: 0ms (0.0%)
AI generate command: 735ms (13.1%)
Display result: 1ms (0.0%)
Wait user choice: 1702ms (30.4%)
Execute command: 3133ms (56.0%)
────────────────────────────────────────
Total time: 5594ms
持续迭代:与 AI 一起"二次开发"
当工具的雏形落地后,我继续"抓着 AI 的手",让它帮我迭代。陆陆续续地加入了许多新功能,比如优化交互、支持更多模型配置等等。直到最终形态让我满意,我才把它推荐给了身边的亲朋好友。
AI 就是好用,你说话,它干活。。

如果你也对这个工具有兴趣,不妨试试看。当然,你也可以自行尝试接入 OpenRouter
、阿里百炼
等其他模型,谁免费好用就用谁。我突然又想到一个新功能:也许可以做一个命令,让用户快速切换本地配置好的不同模型
!也欢迎大家到 GitHub 提交 PR,一起让它变得更强大!
写在最后
ai coding
给我的冲击和惊喜还是很大的。 它可以快速推进工程进入中期进度
,但是随着需求和复杂度增加,就会出现乏力
,现阶段人工还是决定了这个工程能到的上限
。
就像自动驾驶没有完全进入L5,可以成为很有力的辅助,做不到完全放开方向盘,否则就会失控。失控后的无力感会让你想放弃
。
不过很难否认,有一天真正的 AGI 来临,不仅改变的是开发方式,更可能是全新的用户产品侧的表达方式
。在这个期间,建议新手程序员基于ai快速学习
,中级程序员基于现有的工程项目经验里,在ai的基础上提升效率和上限
。老炮程序员就随便玩啦,不过我建议利用ai快速扩展其他领域的工程能力
,形成新的知识正向循环。
不扯了,下班。