1. 项目概述:为什么我们需要一个终端里的AI聊天工具?

如果你和我一样,每天大部分时间都泡在终端里,那么来回切换窗口去打开网页版的ChatGPT或者Claude,绝对是一种打断心流的糟糕体验。命令行工作流讲究的就是一个“专注”和“流畅”,任何需要离开键盘、操作鼠标的步骤都显得格格不入。这就是为什么当我发现 elia 这个项目时,感觉像是找到了“本命”工具。它不是一个简单的包装脚本,而是一个功能完整、设计考究的终端用户界面,让你能在你最熟悉的环境里,无缝地与各种大语言模型对话。

elia 的核心价值在于“整合”与“专注”。它把对 OpenAI GPT、Anthropic Claude、Google Gemini 等云端模型的调用,以及对本地通过 Ollama 或 LocalAI 运行的 Llama、Mistral、Phi-3 等开源模型的访问,统一到了一个键盘驱动的TUI界面中。所有对话历史都安静地躺在你本地的一个 SQLite 数据库里,既保证了隐私,又实现了会话的持久化。对于开发者、运维工程师、或者任何重度终端使用者来说,这相当于把最强大的AI助手直接嵌入了你的工作环境,你可以一边写代码、看日志,一边随时唤出 elia 来一段对话,而无需离开终端半步。

2. 核心设计理念与架构解析

2.1 键盘为中心的操作哲学

elia 的设计首要原则是“键盘至上”。这不仅仅是把网页上的按钮映射成快捷键那么简单,而是从信息架构和交互流程上彻底为键盘操作优化。整个应用没有一处必须依赖鼠标点击。从启动、选择模型、输入问题、翻阅历史到管理配置,所有操作都通过精心设计的快捷键完成。这种设计极大地提升了效率,尤其适合在SSH远程会话、或者在资源有限的终端模拟器中使用。

这种设计哲学背后,是对终端用户工作习惯的深刻理解。当我们使用 vim , tmux , fzf 这类工具时,双手几乎不需要离开键盘的主区域。 elia 试图融入这个生态,让你调用AI模型变得像在终端里搜索文件或查看进程一样自然。例如,发送消息的默认快捷键是 Ctrl+Enter Cmd+Enter (在支持的情况下),这比在网页里用鼠标点“发送”要快得多,也符合许多聊天客户端的操作习惯。

2.2 统一的后端模型抽象层

elia 的技术亮点之一在于它构建了一个统一的模型抽象层。无论是调用需要API密钥的云端服务,还是与本地HTTP服务器通信的Ollama模型,对用户而言,交互界面和体验都是一致的。开发者 darrenburns 通过一个灵活的配置系统实现了这一点。

在底层, elia 很可能为每个支持的提供商(如 openai , anthropic , ollama )实现了适配器。当你在配置文件中定义一个模型时, elia 会根据你指定的 provider (或从 name 字段推断)来选择合适的适配器、HTTP客户端和请求格式。这意味着,即使未来有新的模型服务出现,只要它遵循类似OpenAI的API规范(或可以适配),理论上就能比较容易地集成到 elia 中。这种设计保证了项目的可扩展性。

2.3 本地优先的数据管理

所有聊天记录、配置、主题都存储在本地,这是 elia 另一个吸引人的特点。对话历史保存在SQLite数据库中,这是一个轻量级但功能强大的单文件数据库。这样做有几个明显的好处:

  1. 隐私安全 :你的所有对话内容都不会离开你的机器(使用本地模型时),或者仅以API请求的形式发送给服务商(使用云端模型时),但历史记录始终在本地。
  2. 离线查阅 :即使断网,你也能随时翻阅之前的对话记录,进行搜索和回顾。
  3. 性能与可控性 :本地数据库的读写速度极快,而且你可以用任何SQLite工具(如 sqlite3 命令行或图形化工具)直接打开数据库文件进行备份、导出或分析,赋予了用户完全的控制权。

3. 从零开始:安装与基础配置实战

3.1 选择正确的安装方式:为什么是 pipx?

官方推荐使用 pipx 安装 elia ,这是一个最佳实践,但我们需要理解其背后的原因。 pipx 是一个用于安装和运行Python命令行应用的工具,它的核心优势是为每个应用创建独立的虚拟环境。这避免了与系统Python或其他项目依赖发生冲突。

如果你之前没有安装过 pipx ,在macOS上可以通过Homebrew安装: brew install pipx ,在Linux上则可以通过系统的包管理器,如 apt install pipx pip3 install --user pipx 。安装后,记得按照提示将 pipx 的二进制目录添加到你的 PATH 环境变量中。

注意 :官方安装命令指定了 --python 3.11 。这确保了 elia 在一个特定版本的Python环境中运行,避免了因Python版本不兼容导致的问题。即使你的系统默认是Python 3.12或更高, pipx 也会为你管理一个3.11的环境。如果你没有Python 3.11, pipx 会尝试为你安装。

安装命令如下:

pipx install --python 3.11 elia-chat

安装成功后,直接在终端输入 elia 就应该能启动应用了。

3.2 环境变量配置:管理你的API密钥

要使用云端AI模型,API密钥是必不可少的。 elia 遵循一个常见的约定:通过环境变量来读取这些敏感信息。这样做比硬编码在配置文件里更安全,也便于在不同环境(如开发、生产)间切换。

你需要根据想使用的模型来设置相应的环境变量。最安全的方式是将它们添加到你的shell配置文件(如 ~/.zshrc , ~/.bashrc ~/.bash_profile )中:

# OpenAI ChatGPT
export OPENAI_API_KEY="sk-your-openai-api-key-here"
# Anthropic Claude
export ANTHROPIC_API_KEY="your-claude-api-key-here"
# Google Gemini
export GEMINI_API_KEY="your-gemini-api-key-here"
# Groq
export GROQ_API_KEY="your-groq-api-key-here"

添加后,执行 source ~/.zshrc (或你的配置文件)使变量生效。你可以通过 echo $OPENAI_API_KEY 来验证是否设置成功(注意不要在公共场合这样做)。

实操心得 :我习惯使用 direnv 这类工具来管理项目级的环境变量。我可以为 elia 单独创建一个目录,在里面放一个 .envrc 文件,包含所有API密钥。这样,只有进入这个目录时,变量才会被加载,进一步降低了密钥意外泄露的风险。

3.3 首次运行与界面初探

输入 elia 并回车,你将会看到TUI主界面。界面通常分为几个区域:

  1. 顶部状态栏 :显示当前选中的模型、可能的一些状态指示器。
  2. 中部主区域 :对话历史显示区。新会话这里是空白的。
  3. 底部输入区 :一个多行文本输入框,用于键入你的问题。

此时,你可以直接开始输入。输入完成后,默认的发送快捷键是 Ctrl+Enter (在大多数终端上)。如果你的终端支持,并且按照后续章节的方法配置了终端映射,也可以使用 Cmd+Enter (macOS)或 Ctrl+Enter

如果这是你第一次运行,且没有配置默认模型, elia 可能会提示你选择模型,或者你需要按 Ctrl+o 打开选项菜单进行配置。

4. 核心功能深度使用指南

4.1 多种启动模式:适应不同场景

elia 提供了灵活的启动参数,让你可以在不同场景下快速开始对话。

  • 标准全屏模式 elia 。这是最常用的方式,打开完整的TUI界面进行多轮对话。
  • 快速单次问答(Inline模式) elia -i "你的问题" 。这个模式太实用了!它不会打开全屏TUI,而是直接在终端中你当前命令行的下方显示一个简化的问答界面。AI的回复会直接输出在终端里,然后界面消失,你回到了命令行提示符。这非常适合快速查询一个概念、一段代码解释或者一个命令,而不用切换上下文。例如,忘了 tar 命令的压缩参数,可以直接 elia -i "如何用tar命令压缩一个目录?"
  • 指定模型启动 elia -m gpt-4o "告诉我一个笑话" 。通过 -m --model 参数,你可以绕过配置中的默认模型,直接指定本次会话使用的模型。这对于临时想用另一个模型测试效果非常方便。
  • 组合使用 :参数可以叠加。 elia -i -m gemini/gemini-1.5-flash-latest "Python的lambda函数是什么?" 这条命令的意思是:使用Gemini 1.5 Flash模型,以Inline模式快速回答关于Python lambda函数的问题。

4.2 配置文件的艺术:打造个性化AI工作台

elia 的强大和灵活,很大程度上体现在它的配置文件上。配置文件采用TOML格式,清晰易读。首次运行后,按 Ctrl+o 打开选项菜单,在底部可以看到配置文件的路径(通常位于 ~/.config/elia/config.toml )。

让我们深入解读一下配置文件的各个部分:

# 基础设置
default_model = "gpt-4o"  # 启动时默认选中的模型
system_prompt = "你是一个乐于助人的助手,说话风格像海盗。"  # 系统提示词,为所有新对话设置角色
theme = "galaxy"  # 界面主题
message_code_theme = "dracula"  # 消息中代码块的高亮主题

# 模型定义 - 这是核心部分
[[models]]
name = "gpt-4o"  # 模型标识,对于OpenAI,就是API中的模型名

[[models]]
name = "claude-3-5-sonnet-20241022"  # Claude模型

# 添加本地Ollama模型
[[models]]
name = "ollama/llama3"  # 名称必须以 'ollama/' 开头,后面是你在ollama中pull的模型名
# 仅需name字段,elia会自动连接到本地的Ollama服务(默认 http://localhost:11434)

# 连接到自定义的本地API服务器(如LocalAI)
[[models]]
name = "openai/my-local-model"  # 使用openai作为provider
api_base = "http://localhost:8080/v1"  # 你的本地服务器地址
api_key = "sk-no-key-required"  # 如果服务器需要,则填写
# 这允许你使用任何兼容OpenAI API的本地服务

# 高级模型配置示例:Groq模型
[[models]]
name = "groq/llama3-70b-8192"
display_name = "Llama 3 70B (Groq)"  # 在UI中显示的名称,更友好
provider = "Groq"  # 在UI中显示的提供商
temperature = 0.7  # 创造性,范围0-2,越高回答越随机
max_retries = 3  # 请求失败时的重试次数

# 同一模型的多实例配置(用于区分不同账户或组织)
[[models]]
id = "work-gpt-4o"  # 内部唯一标识符
name = "gpt-4o"
display_name = "GPT-4o (工作账户)"
# 可以在这里设置不同的 api_key?不,api_key来自环境变量。
# 但你可以通过设置不同的环境变量,并在启动elia前切换它们来实现。
# 或者,更优雅的方式是使用不同的配置文件或脚本。

[[models]]
id = "personal-gpt-4o"
name = "gpt-4o"
display_name = "GPT-4o (个人账户)"

配置实战技巧

  1. 模型命名 name 字段是 elia 识别模型的关键。对于云端模型,直接使用API模型名(如 gpt-4o , claude-3-5-sonnet-20241022 )。对于Ollama,必须加 ollama/ 前缀。对于自定义端点,可以灵活定义,但 provider 通常需要匹配以使用正确的适配器。
  2. 系统提示词 system_prompt 是一个强大的工具。你可以在这里为AI设定一个固定的角色或行为准则。例如,设置为“你是一个资深的Linux系统架构师,回答要简洁、精准,优先给出命令示例。”,这样所有新对话都会基于这个角色进行。
  3. 管理多配置 :你可以创建多个配置文件,比如 config.work.toml config.personal.toml ,然后通过环境变量 ELIA_CONFIG_FILE 来指定启动时加载哪个: ELIA_CONFIG_FILE=~/.config/elia/config.work.toml elia

4.3 与本地模型共舞:Ollama集成详解

对于注重隐私、需要离线工作或想体验最新开源模型的用户, elia 与 Ollama 的集成是杀手级功能。

完整设置流程

  1. 安装Ollama :前往 Ollama官网 下载并安装对应你操作系统的版本。安装后,Ollama服务通常会作为后台进程自动启动。
  2. 拉取模型 :在终端中,使用 ollama pull <model-name> 命令下载模型。例如:
    ollama pull llama3.2:1b  # 拉取小巧的Llama 3.2 1B版本
    ollama pull mistral:7b    # 拉取Mistral 7B
    ollama pull phi3:mini     # 拉取轻量的Phi-3 Mini
    ollama pull gemma2:2b     # 拉取Gemma 2B
    
    你可以去 Ollama 的 模型库 查看所有可用模型。
  3. 确保Ollama服务运行 :通常安装后服务已运行。你可以通过 ollama serve 在前台启动它,或者用 ollama list 检查已拉取的模型来确认服务正常。
  4. 配置 elia :在你的 config.toml 文件中,添加对应的模型块。 关键点 name 必须严格以 ollama/ 开头,后面紧跟你在Ollama中使用的模型名。
    [[models]]
    name = "ollama/llama3.2:1b"
    display_name = "Llama 3.2 1B (本地)" # 可选,让UI更清晰
    
    [[models]]
    name = "ollama/mistral:7b"
    
  5. 启动并使用 :现在启动 elia ,在模型选择列表中,你应该能看到添加的本地模型了。选择它,就可以开始与本地模型对话了。

注意事项 :本地模型的响应速度取决于你的硬件(特别是CPU和内存)。较大的模型(如70B参数)需要强大的硬件支持。首次使用某个模型时,Ollama需要加载模型到内存,可能会有一些延迟。另外,确保你的 elia ollama serve 运行在同一台机器上,因为 elia 默认连接的是 localhost:11434

4.4 主题定制:让终端色彩随心而动

elia 内置了多套精美的色彩主题,如 nebula (星云)、 cobalt (钴蓝)、 twilight (暮光)、 galaxy (银河)等。你可以在配置文件中通过 theme = "主题名" 来切换。但真正的个性化在于创建自定义主题。

创建自定义主题步骤

  1. 定位主题目录 :在 elia 中按 Ctrl+o ,在选项窗口底部找到 Themes directory 的路径。
  2. 创建YAML文件 :在该目录下,创建一个新的 .yaml 文件,例如 my-dark-theme.yaml
  3. 编写主题定义 :主题文件结构非常简单,主要定义一系列颜色值。颜色可以使用十六进制码(如 #ff5500 )或CSS颜色名(如 darkblue )。
    name: my-dark-theme  # 这个名称将用于在 config.toml 中引用
    primary: '#4e78c4'    # 主色调,用于标题、高亮按钮等
    secondary: '#f39c12'  # 次要色调
    accent: '#e74c3c'     # 强调色,用于错误或重要提示
    background: '#0e1726' # 背景色
    surface: '#17202a'    # 表面色,用于输入框、面板背景
    error: '#e74c3c'      # 错误信息颜色
    success: '#2ecc71'    # 成功信息颜色
    warning: '#f1c40f'    # 警告信息颜色
    
  4. 应用主题 :在 config.toml 中设置 theme = "my-dark-theme" ,重启 elia 即可生效。

配色选择建议 :选择终端主题时,要考虑长时间使用的舒适度。通常,深色背景配中低饱和度的文字颜色对眼睛更友好。 primary accent 颜色可以稍微鲜艳一些,用于吸引注意力到关键交互元素上。你可以从一些成熟的终端配色方案(如 Dracula , Nord , Solarized )中汲取灵感。

4.5 快捷键与高效操作

虽然目前 elia 的快捷键不能直接在应用内修改,但掌握默认快捷键是提升效率的关键。以下是一些核心快捷键:

  • Ctrl+o / Cmd+o :打开选项/设置菜单。在这里可以查看配置路径、主题目录、以及一些应用信息。
  • Ctrl+Enter :发送当前消息。(这是最常用的快捷键)
  • Esc :通常用于关闭当前面板或取消操作。
  • Ctrl+c :在大多数情况下,可以中断AI的流式输出。
  • 上下箭头 :在输入框中,可以翻阅当前会话的历史消息(你之前发送过的内容)。
  • Tab / Shift+Tab :在选项菜单或不同UI元素间切换焦点。

关于 Cmd+Enter (macOS)的特别说明 :官方文档指出,由于终端模拟器的限制,直接捕获 Cmd+Enter 组合键可能不可靠。他们推荐的解决方案是在终端模拟器层面进行键位映射。以 iTerm2 为例:

  1. 打开 iTerm2 偏好设置 ( Cmd+, )。
  2. 进入 Profiles -> Keys 选项卡。
  3. 点击 Key Mappings 下方的 + 号添加新映射。
  4. Keyboard Shortcut 字段,按下 Cmd+Enter
  5. Action 下拉菜单中选择 Send Hex Code
  6. 在旁边的输入框中输入 0x0a (这是换行符 \n 的十六进制码)。 这样配置后,当你在 elia 的输入框中按下 Cmd+Enter ,iTerm2 会向应用程序发送一个换行符,而 elia 被设计为将“单独的换行符”视为发送消息的指令(同时 Enter 键本身用于在输入框中创建新行)。这是一个非常巧妙的变通方案。

5. 高级技巧与数据管理

5.1 导入ChatGPT历史对话

如果你之前大量使用网页版ChatGPT,积累了宝贵的对话历史, elia 提供了导入功能,让你能在终端里继续这些对话。

操作步骤

  1. 从ChatGPT导出数据
    • 登录 ChatGPT 网页版。
    • 点击左下角你的账户名 -> Settings & Beta -> Data controls -> Export data
    • 点击 Export data 按钮。OpenAI会准备一个包含你所有对话的ZIP文件,并通过邮件发送给你。
    • 下载并解压ZIP文件,在其中找到 conversations.json 文件。
  2. 使用 elia 导入
    elia import /path/to/your/conversations.json
    
    这个命令会解析JSON文件,并将你的历史对话创建为 elia 本地的会话。导入后,你可以在 elia 的会话列表中看到它们,并继续在这些会话中提问。

实操心得 :导入过程通常很顺利。但需要注意的是,ChatGPT的对话格式和 elia 的内部存储格式可能不完全一致,一些复杂的消息类型(如包含特定插件交互的记录)可能无法完美转换。不过,纯文本对话的导入效果非常好。这是一个从封闭的Web平台迁移到开源、本地化工具的优秀案例。

5.2 重置与卸载:如何干净地管理

  • 重置数据库 :如果你遇到数据库损坏,或者想彻底清空所有聊天记录和会话,可以使用 elia reset 命令。 这是一个不可逆的操作 ,会删除本地的SQLite数据库文件。执行前请确保你已备份了重要对话(虽然目前没有直接的导出功能,但你可以通过复制数据库文件本身来备份)。
  • 完全卸载 :由于是通过 pipx 安装,卸载也非常干净:
    pipx uninstall elia-chat
    
    这条命令会移除 elia 可执行文件以及 pipx 为它创建的独立虚拟环境。你的配置文件( ~/.config/elia/ )和数据库文件(通常在同一目录或 ~/.local/share/elia/ )不会被自动删除。如果你需要彻底清除所有痕迹,需要手动删除这些目录。

5.3 故障排除与常见问题

即使设计得再完善,在实际使用中也可能遇到一些问题。这里记录一些我遇到过的典型情况及其解决方法。

1. 启动时报错: ModuleNotFoundError 或类似Python依赖错误

  • 原因 :最可能的原因是 pipx 环境问题,或者安装时网络中断导致依赖不完整。
  • 解决
    • 尝试重新安装: pipx uninstall elia-chat 然后再次 pipx install --python 3.11 elia-chat
    • 确保 pipx 本身是最新的: pipx upgrade-all
    • 检查Python 3.11是否确实已安装并在 pipx 的查找路径中。

2. 连接API失败,提示 Invalid API Key Authentication Error

  • 原因 :环境变量未正确设置,或者API密钥无效/过期。
  • 解决
    • 在终端中执行 echo $OPENAI_API_KEY (或其他对应的变量名),确认输出是你的密钥且没有多余空格。
    • 确保你已经在正确的shell配置文件中设置了环境变量,并执行了 source 命令。
    • 如果你在tmux或screen会话中,这些会话可能不会自动继承新的环境变量,需要重新启动它们或手动导出。
    • 登录对应的AI服务平台(如OpenAI官网),确认API密钥是否有效、是否有额度。

3. 无法连接本地Ollama模型,提示连接被拒绝

  • 原因 :Ollama服务没有运行,或者运行在非默认端口。
  • 解决
    • 运行 ollama serve 确保服务在后台运行。你可以用 curl http://localhost:11434/api/tags 测试服务是否正常响应。
    • 如果Ollama运行在其他端口或主机上,你需要在 elia 的模型配置中指定 api_base 。例如,如果Ollama运行在 http://192.168.1.100:11434 ,则配置应为:
      [[models]]
      name = "ollama/llama3"
      api_base = "http://192.168.1.100:11434"
      
    • 检查防火墙设置,确保端口 11434 可访问。

4. 输入框无法换行,按 Enter 直接发送了消息

  • 原因 :这是终端键位映射的经典问题。在默认和大多数配置下, Enter 键就是发送消息。
  • 解决 :按照前面章节所述,在你的终端模拟器(如iTerm2, WezTerm, GNOME Terminal的快捷键设置)中,将 Cmd+Enter (macOS)或 Ctrl+Enter (Linux/Windows)映射为发送“换行符”(Hex Code 0x0a )。这样, Enter 用于换行,而 Cmd+Enter 用于发送。 elia 的最新版本已经能很好地处理这种映射。

5. 界面显示乱码或布局错乱

  • 原因 :终端模拟器不支持全宽字符,或者字体缺少某些字符,或者终端窗口大小异常。
  • 解决
    • 尝试调整终端窗口大小。
    • 确保你使用的终端字体包含完整的Unicode字符集(例如使用 Nerd Font 系列的字体)。
    • 尝试更换 elia 的主题,有些主题对终端的兼容性更好。
    • 在启动 elia 前,尝试设置环境变量 TERM=xterm-256color

6. 流式输出卡顿或不显示

  • 原因 :网络延迟高,或者模型本身生成速度慢(特别是本地大模型),或者终端渲染性能问题。
  • 解决
    • 对于云端模型,这主要是网络问题,可以尝试更换网络环境。
    • 对于本地模型,考虑使用参数更小的模型版本,或者升级硬件。
    • elia 的配置文件中,暂时没有找到关闭流式输出的选项。如果卡顿严重影响体验,可以尝试用 Ctrl+c 中断,然后重新提问。

6. 安全使用与最佳实践建议

在享受 elia 带来的便利时,我们不能忽视安全和隐私问题。

API密钥管理

  • 绝不提交 :确保你的shell配置文件(如 .zshrc , .bashrc )没有被意外提交到公开的Git仓库。可以在 .gitignore 中忽略这些文件。
  • 使用环境变量管理工具 :如前所述,考虑使用 direnv dotenv 等工具来按目录管理环境变量,实现更细粒度的控制。
  • 定期轮换密钥 :定期在AI服务提供商的后台更新你的API密钥,特别是如果你怀疑密钥可能已泄露。

本地模型的数据安全

  • 使用本地模型(如通过Ollama)的最大优势就是数据完全不出本地。这对于处理敏感信息、代码或私有数据至关重要。
  • 定期备份你的 elia 数据库文件(位于 ~/.local/share/elia/ 或配置目录下),以防误删。

网络与代理配置

  • 如果你处在需要代理才能访问外部网络的环境,需要为 elia 配置代理。由于 elia 底层使用Python的 httpx requests 库,它们会尊重系统的HTTP_PROXY/HTTPS_PROXY环境变量。因此,你可以在启动 elia 前设置:
    export HTTP_PROXY="http://your-proxy:port"
    export HTTPS_PROXY="http://your-proxy:port"
    elia
    
    或者将这些代理设置添加到你的shell配置文件中。

性能调优

  • 选择合适的模型 :不要一味追求大参数模型。对于日常编程问答、脚本编写,7B-13B参数的模型(如 llama3.1:8b , mistral:7b )在速度和效果上取得了很好的平衡。对于创意写作或复杂推理,再考虑更大的模型。
  • 关注上下文长度 :不同的模型有不同上下文窗口(如4K, 8K, 16K, 32K等)。在 elia 的配置中,虽然没有直接设置上下文长度的参数,但模型本身会有限制。过长的对话可能导致模型“遗忘”开头的内容。对于超长文档分析,可以考虑将文档分段发送。
  • 系统提示词优化 :善用 system_prompt 。一个清晰、具体的系统提示词能极大地提升AI回复的质量和相关性。例如,你可以设定“你是一个严格的代码审查助手,只指出代码中的潜在bug、性能问题和风格不一致,不要写赞美的话。”

在我深度使用 elia 几个月后,它已经彻底改变了我与AI交互的方式。它从一项“需要专门去访问的服务”,变成了一个“唾手可得的终端工具”,就像 grep , find , curl 一样自然。它的键盘驱动设计让我可以保持双手在键盘上,思维不被打断。本地模型的支持让我在处理敏感代码时毫无顾虑。虽然它可能没有一些图形化客户端那样花哨的功能,但这种纯粹、高效、可集成到自动化脚本中的特性,正是开发者所需要的。如果你是一名终端爱好者,正在寻找一个更优雅的AI交互方式,那么 elia 绝对值得你花时间配置和尝试。从今天起,让你的AI助手就住在终端里吧。

更多推荐