Skip to main content

Natural language CLI — type : and speak your intent

Project description

ex

在终端输入 : 进入 AI 命令模式。说出你想做什么,ex 规划并执行。

ex 本身完全免费。 你需要自己的 LLM API Key(或本地 Ollama,也免费)。

❯
:找出所有超过200行的Python文件,按行数倒序

安装

pipx(推荐)

pipx install ex-cli
vex --setup
vex --setup        # 配置你的 API Key + 初始化 shell 集成
# 重开终端

pip

pip install ex-cli
vex --setup

Homebrew(macOS)

brew tap yourusername/tap
brew install ex
vex --setup

第一步:获取 API Key

vex --setup 会引导你选择并填入,支持以下提供商:

提供商 注册地址 价格
DeepSeek platform.deepseek.com/api_keys ¥0.001/千 tokens,最便宜
Kimi platform.moonshot.cn/console/api-keys 注册有免费额度
OpenAI platform.openai.com/api-keys GPT-4o-mini 按量付费
Ollama ollama.com 完全免费,本地运行

填入一个 API Key 就能用,Key 保存在你本地的 ~/.zshrc,不经过任何第三方服务。


使用

重开终端后,在空白行输入 : 即可进入 AI 命令模式:

❯
:找出所有超过200行的Python文件,按行数倒序

  ▌ 找出所有 Python 文件并按行数排序

   1   fd -e py .
       " 递归查找所有 .py 文件

   2   xargs wc -l
       " 统计每个文件行数

   3   sort -rn | grep -v total | head -20
       " 倒序取前20

  管道:fd -e py . | xargs wc -l | sort -rn | grep -v total | head -20

  [p]管道执行  [s]逐步确认  [q]退出 > p

  │ 1842 ./src/engine.py
  │  967 ./src/routes.py
  │  543 ./tests/test_engine.py

Vim 语义完整保留

输入 行为
:找大文件 AI 规划 + 逐步确认
:!ls -la 直通 shell(Vim :! 语义)
:h 找大文件 只看计划,不执行
:q 什么都不发生
:q! 退出当前 shell
Ctrl+: 自动执行,不逐步确认
ESC 取消,返回普通提示符

行不为空时,: 正常插入

❯ echo "hello:world"    ← 正常,不触发 AI
❯ git commit -m ":"     ← 正常,不触发 AI

配置 LLM

运行 vex --setup 时会引导配置,也可以手动设置环境变量:

# 推荐:DeepSeek(成本最低)
export DEEPSEEK_API_KEY=sk-xxx

# 或 Kimi
export MOONSHOT_API_KEY=sk-xxx

# 或 OpenAI
export OPENAI_API_KEY=sk-xxx

# 或完全本地(需先安装 ollama)
ollama run qwen2.5-coder:7b

命令参考

vex --setup      # 初始化 shell 集成(首次安装后运行)
vex --config     # 修改 LLM / 执行模式配置
ex --update     # 更新到最新版本
vex --version    # 显示版本

# 执行模式(也可在 --config 中设置)
EX_MODE=confirm   # 默认:逐步确认
EX_MODE=auto      # 自动执行
EX_MODE=dry       # 演习:只显示计划

# 静默启动(不显示提示信息)
EX_QUIET=1

卸载

vex --config     # 选择"卸载",自动从 rc 文件移除
pipx uninstall ex-cli

示例

:在所有 TypeScript 文件里找使用了 console.log 的地方

:把 downloads 目录里超过 100MB 的文件找出来,按大小排序

:从 meeting.mp4 提取音频,转成 mp3

:扫描这个 Python 项目的安全漏洞,输出 JSON 报告

:调用 GitHub API 列出最近 star 的10个仓库

:读取 data.json,找出 status  error 的条目并统计

:查看当前 Kubernetes 集群里所有 Pending 状态的 Pod

致谢

命名灵感来自 Vim 的 Ex 模式——: 从来都是用来执行命令的。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vex_cli-0.1.1.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vex_cli-0.1.1-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file vex_cli-0.1.1.tar.gz.

File metadata

  • Download URL: vex_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vex_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c033862398fce96d6658d96fd9d30be7d760ca154685a85cc3e5017f84827cab
MD5 aa67e4eeb8c94964de64c6950b8b0aae
BLAKE2b-256 a23210acba455ce6150de2b839347f316519b55001dcc385e0bed10364156489

See more details on using hashes here.

File details

Details for the file vex_cli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: vex_cli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vex_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8f6c6958a43386b93e761266a91cfaa8c7c9f4fafa80dea8f41bd91ef72f3a65
MD5 a654dc5180cfb15eac000f48a3f98919
BLAKE2b-256 d38c0001a62974eae597184ec689854d28ef4d50ae25203539f1ef459a9aa43c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page