用戶命令·ash(1)

ash文件

用於命令未找到工作流程的實用 shell 助理。此頁面是可安裝的網路版本ash(1)手冊頁。

在 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)

來源:文件/ash.1·自述文件·安全政策