跳转至

m

m 是个个人 CLI 工具集,用 Typer 和 Rich 搭的。核心是命令注册系统,自动发现插件。

功能

  • 别名管理:JSON 存配置。
  • 聊天:用 promplate 做 LLM 对话。
  • 阅读:提取文本,转 Markdown。

插件

register.py 动态加命令,sys.path 黑魔法。

相关:

  • typer:CLI 框架。
  • rich:终端美化。

日常用超爽。

深入洞见

源码里 packages/core/m/utils/register.py 把当前工作目录临时加进 sys.path,并用 pkgutil.iter_modules 扫描 m.commands 导入子模块;packages/core/m/cli/main.py 把这些模块包装成 Typer 子应用并注册到主 app。这种约定优于配置的方式让 plugin discovery 成为自然的扩展点——把模块放进目录就能被自动暴露为命令。

参考源码:packages/core/m/utils/register.py · packages/core/m/cli/main.py