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