把 AI 融入终端:你像平常一样在 真实 shell 里敲命令,命令执行后 AI 会给一句简洁提示;
也可以直接输入 ai 你的问题 向 AI 提问。适合在香橙派(arm64)等 Linux 设备上,
作为学习 Linux / 终端的小助手。
- 包裹真实 bash:用 pty 常驻一个交互式 bash,完整保留
cd、export、alias、函数等状态。 - 交互程序照常可用:命令执行期间双向透传,
vim/top/less/python等都能正常交互。 - 命令后自动提示:解释命令作用与结果;出错时给出可能原因和修复建议。
- 随时提问:
ai <问题>,并会带上最近几条命令作为上下文。 - 零第三方依赖:仅用 Python 标准库(含流式请求),方便在 arm64 设备部署。
- OpenAI 兼容:支持 OpenAI / DeepSeek / 通义千问兼容模式等任意兼容接口。
- 📚 系统学习模式(
:learn):给定一个主题,AI 生成课程大纲(目录),再按需逐章生成 「知识点 + 自测问答 + 动手 Lab」内容;Lab 可在真实 shell 中校验,进度自动落库。 - 🏆 成就系统(
:ach):命令探索、技能徽章、纠错达人、学习里程碑、Lab 通关、连续学习、 专注时长等成就自动解锁;可选择将成就作为一笔带 memo 的交易上链到 Injective 测试网 作为不可篡改凭证(:chain)。 - ☕ 休息模式(
:break):连续学习到阈值(默认 45 分钟)自动提醒休息,隐藏提示符、 AI 给出放松建议并倒计时,:resume恢复。阈值可:break config调整。 - 🎙️ 语音模式(
:voice):回合制语音对话(录音 → 转写 → LLM → 合成 → 播放), 语音识别/合成使用 阶跃星辰(StepFun),音频走系统默认设备(可搭配蓝牙耳机)。
学习/成就为纯本地 SQLite(
~/.local/share/aiterm/aiterm.db,可用AITERM_DATA_DIR覆盖), 零第三方依赖;上链为可选 extra;语音依赖系统音频工具(arecord/aplay 等),无 Python 硬依赖。
- Linux / 类 Unix 系统(依赖
pty,不支持 Windows 原生;可用 WSL 或 SSH 到 Linux)。 - Python 3.8+
- 系统中有
bash(默认/bin/bash,可用环境变量AITERM_SHELL覆盖)。
把整个项目拷贝到目标设备(例如香橙派)后:
# 方式一:直接运行(无需安装)
python3 -m aiterm
# 方式二:安装为命令
pip install -e .
aiterm首次运行若未配置 API,会弹出向导,填写 base_url / 模型 / API Key 即可。
优先级:环境变量 > 配置文件 > 默认值。配置文件位于 ~/.config/aiterm/config.json
(可用 AITERM_CONFIG 指定其它路径)。
环境变量:
export AITERM_API_KEY=sk-xxxx
export AITERM_BASE_URL=https://api.deepseek.com
export AITERM_MODEL=deepseek-chat
# 语音模式(阶跃星辰):也可写入配置文件 voice.api_key
export AITERM_STEP_API_KEY=your-stepfun-key
# 成就上链(Injective 测试网):私钥仅本地使用,绝不写入日志
export AITERM_INJECTIVE_PK=your-hex-private-key
# 数据目录(SQLite)覆盖
export AITERM_DATA_DIR=~/.local/share/aiterm常见服务商示例:
| 服务商 | base_url | model |
|---|---|---|
| OpenAI | https://api.openai.com/v1 |
gpt-4o-mini |
| DeepSeek | https://api.deepseek.com |
deepseek-chat |
| 通义千问 | https://dashscope.aliyuncs.com/compatible-mode/v1 |
qwen-plus |
也可参考 config.example.json。
<任意命令> 像平常一样执行
ai <问题> 直接向 AI 提问
:learn 查看当前课程与进度
:learn new [主题] 新建课程(生成大纲)
:learn list 列出课程
:learn open <序号> 切换课程
:learn next 进入下一个未完成章节
:learn chapter <n> 进入指定章节
:lab check 校验当前章节的动手 Lab
:ach 查看成就列表与进度
:ach info <id> 成就详情
:ach chain <id> 将成就上链(Injective 测试网)
:ach sync 补推所有待上链成就
:chain [on|off|auto|key] 查看/配置上链
:break 立即休息
:break config 查看/设置休息阈值
:resume 结束休息,继续学习
:voice 进入回合制语音对话
:help 帮助
:mode always|error|off 命令后自动提示模式(默认 always)
:model <名称> 切换模型
:config 重新配置 API
:clear 清空对话上下文
:quit 退出(也可直接 exit)
成就上链使用 injective-py,作为可选依赖:
pip install -e .[chain] # 或:pip install aiterm[chain]
export AITERM_INJECTIVE_PK=... # 测试网私钥(hex)
# 领取测试网 gas:https://testnet.faucet.injective.network/在助手内 :chain on 开启、:chain auto on 开启自动上链;解锁成就后会以一笔
带 memo 的自转账交易记录到 Injective 测试网,:ach info <id> 可查看浏览器链接。
未安装 SDK 或未配私钥时,成就仍在本地正常记录,仅跳过上链。
语音识别/合成走阶跃星辰(StepFun),对话仍复用主 LLM。需要:
- 配置
AITERM_STEP_API_KEY(或配置文件voice.api_key)。 - 系统音频工具:录音
arecord/parec/pw-record/ffmpeg之一,播放aplay/paplay/ffplay之一。 - 蓝牙耳机请先用系统 BlueZ 配对,走系统默认设备即可;如需指定,可在配置文件设置
voice.record_cmd/voice.play_cmd。
:voice 进入后按回车开始/结束说话,说“退出”或 Ctrl-C 结束。
- 提示符/行编辑由 Python readline 提供,不是 bash 自带的补全(命令仍由真实 bash 执行)。
- 多行结构(heredoc、
for ... do)可在续行中继续输入,但复杂粘贴场景可能不完美。 - 自动提示每条命令都会调用一次 API,可用
:mode error改为仅出错时提示以降低成本。