现在有很多基于大模型 API 的客户端可用, 它们大多数需要你切换到它的界面, 然后在输入框输入或是复制粘贴内容, 发送请求, 等待结果返回, 然后再切换回你原来的软件中.
而 AiToolsCtrlQ 则是一个更为方便的工具, 它允许你在任何软件中, 选中一些内容, 按下 Ctrl+Q, 就可以将选中的内容发送给大模型, AiToolsCtrlQ 设计为小窗模式, 便于你在使用其他软件时, 也能随时查看模型的返回结果, 而不会打断你当前的工作.
同时, AiToolsCtrlQ 不保留上下文, 而且将每次请求都视为独立的请求, 所以它适合诸如 翻译, 答疑, 表格提取 等一次性的使用场景.
例如:
- 在
calibre电子书阅读器中, 选中一段文字, 按下Ctrl+Q, 发送翻译请求, 让模型翻译选中的文字.
- 对一个包含表格的图片, 复制图片后, 按下
Ctrl+Q, 发送表格提取请求, 让模型将图片中的表格提取出来, 以便在电子表格中使用.
- 在任何支持选中复制的软件中, 选中一些内容, 按下
Ctrl+Q, 发送答疑请求, 让模型回答你对选中内容的进行解释.
AiToolsCtrlQ 支持 MCP 的 Prompts 和 Tools 功能,但仅支持通过 HTTP 的 MCP 服务, 不支持 STDIO 访问 MCP
Prompts功能, 如果MCP提供了Prompts功能, 在配置时会列出所有可用的Prompts, 你可以选择一个作为默认的PromptTools功能, 如果MCP提供了Tools功能, 在使用时, 这些功能会由模型自动选择是否使用.
在任何支持选中复制的软件中, 选中一些内容, 按下 Ctrl+Q, 发送请求, 让模型处理选中的内容.
在 AiToolsCtrlQ 中, 你可以配置多个工具, 点击 工具 按钮, 进入工具配置界面, 你可以在这里添加, 删除, 编辑工具. 其中
- 系统提词: 描述了工具的功能, 它会作为模型的系统提示词, 以便模型执行制定的任务.
- 后置处理:选择当模型返回结果后, 是否需要对结果进行后置处理
无:不进行后置处理, 显示模型返回的原始结果复制:将模型返回的结果复制到剪贴板, 对于诸如翻译文章,编写代码等场景, 可以做到不离开当前软件, 通过Ctrl+Q发送,然后Ctrl+V粘贴到当前软件中.保存:将模型返回的结果保存到文件中, 对于批量识别图片、摘要等场景, 可以在资源管理器中选中一些文件, 按下Ctrl+Q, 模型会逐个处理选中的文件, 并将结果保存到同一目录下JSON/Markdown/HTML文件中, 以便后续查看.
每个工具实际是限定了系统提词的的配置, 在其他的软件中, 一般也称为智能体.

在 AiToolsCtrlQ 中, 点击 模型 按钮, 进入模型配置界面, 仅支持兼容 OpenAI 的模型, 但你可用通过 LLMGateway 来使用其他模型.
如果要模型处理图片, 请设置为支持多模态的模型, 或者设置一个备选的视觉模型, 但一般来说, 纯视觉模型的效果不如多模态模型.
在 Linux 下发送键盘事件并不容易,Linux 桌面环境很复杂,为了最大兼任各种桌面系统(X11/Wayland 等),使用 ydotool 来发送键盘事件。
- 请先安装新版本的
ydotool, 版本号大于 1.0 (Ubuntu APT 的版本比较低, 建议从项目主页手动安装) - 确保
ydotoold放置在sudo可以找到的路径中,一般可放置在/usr/local/bin里,在终端中输入sudo ydotoold -V, 如果输出了版本号,则为正常。 - 将
ydotool放置在用户路径中,如$HOME/.local/bin中,亦可放置在/usr/local/bin中,在终端中输入ydotool --help有正常的输出,则为正常。 - 安装包自带的
sendkey最低需要 Ubuntu 24.04, 即 2.42 版本的 libc, 如使用更低版本,需要自行编译打包。
将 ydotoold 设置为开机自启动服务
- 将以下内容保存为
/etc/systemd/system/ydotoold.service
[Unit]
Description=Starts ydotoold Daemon
[Service]
Type=simple
Restart=always
RestartSec=3
ExecStartPre=/bin/sleep 2
ExecStart=/usr/local/bin/ydotoold -p /run/user/1000/.ydotool_socket -P 0666
ExecReload=/usr/bin/kill -HUP $MAINPID
KillMode=process
TimeoutSec=180
[Install]
WantedBy=basic.target
- 执行以下命令启用服务
sudo systemctl daemon-reload
sudo systemctl enable ydotoold.service
sudo systemctl start ydotoold.service
