在 Debian 或 Ubuntu 上安装
请参阅APT安装指南有关先决条件、签名密钥、存储库设置、通道、更新和删除的信息。
在 Fedora 或 RHEL 兼容的 Linux 上安装
请参阅DNF安装指南用于先决条件、元数据验证、存储库设置、通道、更新和删除。
在 Arch Linux 上安装
请参阅吃豆人安装指南用于先决条件、密钥验证、存储库设置、通道、更新和删除。
概要
ash [text ...]
ash install [--shell bash|zsh] [--dry-run] [--overwrite]
ash mcp add <url> [--no-browser]
ash snooze [duration|off]
ash update [--version vX.Y.Z] [--yes|--skip-customized]
描述
ash向配置的 AI 端点发送提示文本并打印助理响应。当没有提供位置文本时,ash从非交互式标准输入读取提示文本。
这install子命令安装托管资产。仅当您明确请求时才会更改 Shell 启动文件--shell-integration; bash 使用~/.bashrc,zsh 使用~/.zshrc,和鱼使用$XDG_CONFIG_HOME/fish/config.fish。
与人工智能提供商的连接通过本地代理共享。代理故障会退回到直接 HTTPS。
AI可以使用systemd来安排后台任务。这些工作可以是重复性工作,也可以是一次性工作。默认情况下,计划作业使用直接 HTTPS。
ash以下是 XDG 基本目录:配置和持久工作区文件$XDG_CONFIG_HOME/ash(默认~/.config/ash)、工具和插件$XDG_DATA_HOME/ash(默认~/.local/share/ash)、历史记录和会话从头开始$XDG_STATE_HOME/ash(默认~/.local/state/ash),并缓存在$XDG_CACHE_HOME/ash(默认~/.cache/ash)。代理套接字使用$XDG_RUNTIME_DIR/ash具有状态目录后备。显式 XDG 路径必须是绝对路径。
工具、脚本、文件、管道和子输出是不受信任的数据,不得覆盖系统或用户指令。当启用任意 Python 或 shell 执行时,工具执行功能不是沙箱。默认情况下,Python 是启用的,所以要小心。
远程 MCP 服务器
MCP(模型上下文协议)服务器提供 AI 模型可以调用的工具。Ash支持远程 Streamable HTTP MCP 服务器并保持其客户端会话ash-broker穿过Ash在同一个 shell 中调用。
通过运行注册受信任的服务器ash mcp add <url>从互动的Ashshell,或者将其 URL 添加到$XDG_CONFIG_HOME/ash/.ash_allow(默认~/.config/ash/.ash_allow)。默认情况下不启用远程服务器。
当 GUI 可用时,OAuth 授权将在桌面浏览器中打开。如果浏览器打不开,Ash打印可复制的授权 URL 并在终端中等待。使用ash mcp add <url> --no-browser始终使用此终端流。手动URL授权仍然需要同一主机上的浏览器;它不是无浏览器的 OAuth 流程。
URL 行开头为http://或者https://是 MCP 注册,而不是 shell 命令。方案的识别不区分大小写。Ash从修剪后的 URL 文本上的 SHA-256 的前 8 个小写十六进制字符派生服务器的本地名称。除localhost开发外都需要HTTPS;带有嵌入凭据、查询字符串或片段的 URL 将被拒绝。对于直接 OAuth 连接,发现仅允许确切注册的 MCP 机构使用非公共 IP 地址;其他 OAuth 主机仍然受到非公共地址阻止。配置的出口代理负责过滤其目标地址。更改将在下一次读取Ash要求。
MCP 注册保持启用状态ASH_STRICT=1。返回的工具输出仍然被视为不可信的证据。仅注册您信任的服务器:他们的工具可能代表您执行操作。对于 OAuth 保护的服务器,Ash当 GUI 可用时打开浏览器,同时代理处理回调和令牌。凭证使用操作系统凭证管理器(如果可用)或由用户提供的随机 32 字节保护的加密文件ASH_MCP_CREDENTIAL_KEY在$XDG_DATA_HOME/ash/mcp/。
如果MCP初始化失败,Ash无需远程 MCP 工具即可继续请求。交互式运行打印警告;非交互式运行会悄悄失败。计划作业没有每交互式 shell 代理,因此无法使用远程 MCP 工具。依赖于 MCP 的计划提示可能仍会运行,但可能会在没有请求的 MCP 操作或数据的情况下完成。不要安排需要 MCP 的提示。
请参阅MCP常见问题解答快速概览和设置说明。
命令
ash [--attach path]... [text ...]- 运行单个助理请求。
--attach将文件(图像或文档)附加到请求中;可重复的。尺寸限制于ASH_ATTACHMENT_MAX_BYTES目前仅通过网络发送给 OpenAI 兼容的提供商。 ash mcp add <url> [--no-browser]- 连接并注册有效的远程 MCP 服务器
.ash_allow。在桌面浏览器中打开 OAuth 授权(如果可用);回退到终端中的可复制 URL。--no-browser始终使用终端流。 ash install [--shell bash|zsh|fish] [--shell-integration|--disable-shell-integration] [--dry-run]- 默认情况下安装资产而不更改 shell 启动文件。
--shell-integration选择添加/更新托管块;--disable-shell-integration仅删除该块并保留周围的用户内容。交互时,安装自动配置ASH_AI_ENDPOINT,ASH_AI_MODEL, 和ASH_AI_AUTH_TOKEN需要时,在显示提供程序菜单之前首选现有提供程序密钥或本地端点。 ash snooze [duration|off]- 暂停自动 shell 提示处理。默认值为五分钟。持续时间使用 Go 语法,例如
30s,5m, 或者1h。使用off立即恢复。 ash update [--version vX.Y.Z] [--yes|--skip-customized]- 下载适用于当前架构的最新稳定 macOS、Linux 或 FreeBSD 版本并将其安装到
~/.local/bin/ash。发布需要 Sigstore 验证和 SHA-256 验证。
环境
ASH_AI_AUTH_TOKEN- 可选的不记名令牌。对于除 AWS Bedrock 之外的云终端节点而言是必需的。专用/LAN 地址和
.local主机名被视为非云,除非ASH_STRICT=1。 ASH_AI_CACHE- 可选的提供者本机缓存切换。支持时默认启用;接受
1,true,yes,on,enabled,0,false,no,off, 或者disabled(不区分大小写)。 ASH_AI_ENDPOINT- 聊天 API 端点所需的基本 URL。
ASH_AI_MODEL- 发送到端点的所需模型名称。
ASH_AI_PROVIDER- 可选的提供商覆盖。未设置时,ash从端点检测提供者。
ASH_AI_TIMEOUT- 可选的请求超时。默认:
3m。 ASH_ALWAYS_OPENAI_API- 可选测试切换。当类似 true 时,路由
ollama通过 OpenAI 兼容的 SDK 适配器而不是手动实现来提供程序。接受与以下相同的布尔值ASH_AI_CACHE。默认值:打开。 ASH_ATTACHMENT_MAX_BYTES- 通过以下方式传递的文件的可选最大大小(以字节为单位)
--attach。默认:10485760(10 MiB)。 ASH_HISTORY_MAX- 每个键可选的最大历史消息数。默认:
40。 ASH_LOG_FILE- 启用详细日志记录时可选的调试日志路径。
ASH_LOG_MAX_BYTES- 旋转前可选的最大日志大小。默认:
1048576。 ASH_MAX_AGENTS- 一个父进程生成的可选最大子代理数。默认:
6。 ASH_MAX_TOOL_ITERS- 可选的最大 AI 工具调用循环迭代。默认:
16。 ASH_RELEVANCE_WINDOW- 执行状态中包含可选的最近工具观察结果。默认:
4。 ASH_RETRY_BASE_DELAY- 可选的重试退避基本延迟。默认:
250ms。 ASH_RETRY_MAX_ATTEMPTS- 可选的可重试请求尝试。默认:
3。 ASH_SCHEDULED_TASK- 使用的内部调度程序标志ash- 托管调用。
ASH_STREAM- 可选切换。当 true-like 时,流式传输来自其适配器支持它的提供者的响应(当前仅限 OpenAI)。接受与以下相同的布尔值
ASH_AI_CACHE。默认值:打开。 ASH_TASK_MAX- 从请求派生的执行任务的可选上限。默认:
6。 ASH_TASK_STALL_ROUNDS- 可选的助理在停车前进行失速轮巡。默认:
2。 ASH_ALLOW- 可选的以逗号分隔的可执行白名单
run_unix_command。否则$XDG_CONFIG_HOME/ash/.ash_allow(默认~/.config/ash/.ash_allow)被使用;此覆盖不会扩展内部Ash代币。 ASH_DENY- 可选的以逗号分隔的拒绝列表,用于显式阻止命令、工具和插件。否则
$XDG_CONFIG_HOME/ash/.ash_deny(默认~/.config/ash/.ash_deny)被使用。 ASH_TOOL_OUTPUT_MAX- 可选的最大捕获工具输出(以字节为单位)。默认:
8192。 ASH_TOOL_TIMEOUT- 可选的本地工具命令超时。默认:
15s。 ASH_VERBOSE- 可选的调试日志记录和执行仪表板。值如
1,true,on, 和debug启用它。 ASH_SESSION_ID- Ash持久历史记录和日志命名的会话标识符。缺席时生成;无效的显式值将被拒绝。通用的
SESSION_ID被忽略。
明确的数字和持续时间设置经过验证。整数限制必须为正,除了ASH_MAX_TOOL_ITERS,可能为零。 AI/工具超时必须是正值;重试延迟可能为零但不是负值。持续时间使用 Go 语法,例如30s,5m, 或者1h。格式错误或超出范围的值会产生配置错误,而不是默默地使用默认值。
文件
$XDG_CONFIG_HOME/ash/(默认~/.config/ash/)—规范的提示、策略和持久工作区文件。$XDG_DATA_HOME/ash/(默认~/.local/share/ash/)—捆绑的工具、插件、语言包和 MCP 凭证。$XDG_STATE_HOME/ash/(默认~/.local/state/ash/)—历史记录、暂存、日志和暂停状态。$XDG_CACHE_HOME/ash/(默认~/.cache/ash/)—可重新生成的缓存文件。
退出状态
ash 成功时返回 0。当配置、网络请求或工具执行失败时,它返回非零。
示例
echo "summarize this directory" | ash
ash install --shell bash
ash install --shell zsh --dry-run
参见
bash(1),zsh(1),man(1)