大家好!我是瓜哥,前互联网技术总监,现在AI编程这条路上持续探索和分享。
Gemini 3 来了,现有多个入口可以使用和感受它强大的能力!
这几天高强度用 Gemini 3 的过程里,我蹦出一个想法,能不能在 Gemini CLI 的终端里 “造” 一个终端出来。
于是,说干就干...
01 调研可行性
我先找 Gemini 网页版 讨论了下可行性。这实际上是一个非常适合展示Gemini 前端技术能力的经典项目—— Web Terminal(网页终端模拟器)。

浏览器(Chrome/Safari)出于安全考虑,禁止网页直接访问用户的本地系统底层。
所以,我们并不能真的通过 HTML/JS 直接运行系统的ifconfig 来看网卡信息,或者用真正的 ping 去发 ICMP 数据包。
我们能做的是: 全真模拟一个操作系统的终端出来!
02 打磨提示词
可行性已确定,紧接着跟Gemini几轮的提示词沟通优化,很愉快的输出了结果。
Gemini 建议使用英文提示词,对大模型来说理解需求会更准确些。
Role: Senior Frontend Developer Task: Create a single-file HTML/CSS/JS application that simulates a MacOS Terminal (CLI). Tech Stack: Vanilla HTML, CSS, JavaScript (No external libraries). 1. Visual Design (CSS): Theme: MacOS Dark Mode (Black background #1e1e1e, Text #f0f0f0). Font: Monospace font (Menlo, Monaco, or Courier New). Layout: Full-screen or centered window with standard MacOS traffic light buttons (Red/Yellow/Green) at the top left. Cursor: A blinking block cursor at the end of the input line. 2. Core Functionality (JavaScript): Virtual File System (VFS): Use a JSON object to simulate a directory structure (e.g., ~, ~/projects, ~/documents). Command Parser: Parse user input on Enter key. Auto-scroll: Always scroll to the bottom when new output is added. 3. Supported Commands (Simulation): help: List all available commands. clear: Clear the terminal screen. ls: List contents of the current directory from the VFS. cd [dir]: Change current directory (support .. to go back). pwd: Show current working directory. whoami: Return "guest" or a custom user name. cat [file]: Display content of a simulated text file. Network Simulation: ping [host]: Simulate network latency with setTimeout loop (3-4 lines of output). ifconfig: Display a fake static network configuration (en0, inet 192.168.1.x). nslookup [domain]: Return a fake IP address resolution. 4. Constraints: Code must be contained in a single index.html file. Handle basic error messages (e.g., "command not found", "no such directory").
03 进入开发
把英文提示词丢到Gemini CLI里去执行

执行速度很快,耗时 3 分钟。开发完成后并自动启动了服务

04 测试体验
回到浏览器,输入 http://localhost:3000/
哇,效果很惊艳啊!既有虚化的桌面背景,同时终端窗口已经打开,还有待输入的闪烁光标。

常用的pwd、ls、cd、cat 等命令都可以正常执行,效果最好的是ping的数据包返回效果,简直以假乱真啊。


05 实现细节
- 实现全真模拟
通过前端模拟一个 MacOS 下终端应用,用一个轻量的网页直接来展示和体验。
模拟文件系统: 在 JS 里定义一个 JSON 对象当作“硬盘”,ls 就读取这个 JSON,cd 就在 JSON 节点间穿梭。
模拟网络命令: ping google.com 不是真去 ping,而是用 JS 定时器输出模拟的延迟数据。
最终的效果太像一个真正的终端了,非常的惊艳。
- 开发与架构设计
为了让这个 “Mac 终端” 逼真,设计上有以下考量:
A. 视觉还原 (UI/UX)
配色: 经典的黑底白字(或黑客绿),半透明背景。
字体: 必须是等宽字体,如 Menlo, Monaco, 或 Fira Code。
光标: 闪烁的块状光标 (| 或 ■)。
提示符: 模拟 Mac 的提示符,如 user@MacBook-Pro ~ %。
B. 构建核心功能逻
解析器 : 把用户输入的字符串拆分成 命令 + 参数。
虚拟文件系统 : 用 JSON 树结构模拟目录。
JavaScript const vfs = { "home": { "user": { "projects": { "readme.txt": "Hello World" }, "photos": {} } } };
C. 命令处理器 :
ls: 遍历当前 VFS 节点的 key。
cd: 修改当前路径变量。
clear: 清空屏幕 DOM。
echo: 输出文本。
D. 命令执行模拟:
ping / nslookup,使用 setTimeout 模拟网络延迟,随机生成看起来很真的 IP 地址和毫秒数。
06 小结
虽然大家都在说 Gemini 3 的前端开发能力爆表,我自己上手做了这个小应用后,我的结论四个字:名不虚传!
如何发挥更大的价值?还得结合到自身日常的工作和生活里,借助Gemini 3强大的前端开发能力,把很多以前很难解释的事,都可以快速通过可视化的方式去优化。
每挖到 AI 新的落地价值,又是美好的一天!
提交反馈
图文Gemini CLI 里玩“套娃” ?在终端里手搓一个“终端”,简直以假乱真!
评论区
暂无公开评论还没有公开评论。