返回

文章详情

展示 HN:我为终端构建了一个命令调色板 - 6.2MB,纯 Go,无 fzf

Hacker News2026年7月21日 17:22

特点 - 内联覆盖 - 在光标下方打开,而不是作为全屏应用。 - 无痕迹地关闭。 - 纯 ANSI 转义代码,无库。 - 模糊搜索 + 打字错误容忍 - Damerau-Levenshtein 距离可以捕捉错别字。 - 重音规范化(próximo 匹配 proximo)。 - 最近使用排名 - 分数 = 模糊匹配 + 使用次数 + 指数衰减(48小时半衰期)。 - 固定命令保持在顶部。 - 工作流 - 多步骤命令与交互式运行器。每个步骤是标题 + 命令对。向前输入步骤,Ctrl+X 运行所有。 - 零依赖 - 纯 Go 标准库。没有 ncurses,没有 fzf,没有守护进程。单个 6.2 MB 二进制文件。 - MCP 服务器 - 基于 stdin/stdout 的模型上下文协议。允许 AI 代理从您的库中搜索、添加、编辑和执行。 安装 - npm install -g decoreba 下载适合您平台的预构建二进制文件。不需要 Go 工具链。 go install github.com/matheuzgomes/decoreba/cmd/decoreba@latest 快速开始 - decoreba # 从当前工作目录自动检测上下文 - decoreba git # 在 "git" 上下文中搜索 - decoreba add # 添加命令 - decoreba edit 0c9 # 通过 ID 前缀编辑 - decoreba stats # 库统计 请参阅下面的完整参考。 使用 - 调色板 - 覆盖出现在您的提示下方,而不是全屏。 - 输入以模糊搜索。 - 按 Enter 复制命令。 - Ctrl+X 执行它。 注意:Shift+Enter 也会执行,但仅在实现 kitty 键盘协议的终端(kitty、WezTerm、Ghostty)中。在大多数终端中,Shift+Enter 发送的字节与 Enter 相同,并将进行复制。当结果超过视口时,会出现溢出指示符(…… 还有 3 个)。如果终端行数为 3 行或更少,则会显示更优雅的消息。NO_COLOR 或 --no-color 禁用所有 ANSI 代码。 - 键绑定 - 通用(所有终端仿真器) - 键 动作 - ↑ / Ctrl+K 向上导航 - ↓ / Ctrl+J 向下导航 - Enter 复制所选项 - 1 – 9 直接选择(空搜索) - Ctrl+X 执行所选项(按两次,或按 y 确认) - Ctrl+E 编辑所选项 - Ctrl+S 切换固定 - Backspace(空) 移除上下文字符 - Tab / Shift+Tab 下一个 / 上一个字段(表单) - Esc / Ctrl+C 取消 - 仅限 Kitty 协议(kitty、WezTerm、Ghostty) - 键 动作 - Shift+Enter 执行所选项 执行模式 Ctrl+X 触发执行。会出现一个确认提示:运行此命令吗?y/yes n/no 。再次按 Ctrl+X 或 y 确认。任何其他键都会取消。使用 --shell-output 时,命令文本将打印到 stdout 而不是剪贴板。shell 小部件(如下)会自动剥离前缀: decoreba docker ps --shell-output # 打印 "✓ docker ps" 或 "EXEC:docker ps" - 添加 / 编辑表单 五个字段:上下文、标题、命令、标签、笔记。 上下文从现有条目中自动完成。标签呈现为彩色字符。Ctrl+W 将命令转换为多步骤工作流编辑器。decoreba edit <id> 或从调色板 Ctrl+E 重新打开预填充的表单。 - 工作流 命令可以有多个步骤。每个步骤是一个标题 + 命令对。Enter 运行下一个步骤。Ctrl+X 运行所有剩余步骤(首先确认)。Esc 终止。失败的步骤显示 ✗ 。 - 子进程 I/O 通过 /dev/tty 路由,因此交互式程序在被管道时仍然有效。 - 变量 在任何命令中使用 {{placeholder}} 或 {{name:default}} 。在复制或执行时,decoreba 会内联提示每个值: $ decoreba deploy 容器名称:[web] - Shell 集成 补全 为子命令、上下文和同步操作生成选项卡补全: eval "$(decoreba completion bash)" # 或 zsh / fish - Ctrl+O 小部件 打开调色板并预填充您输入的内容。Enter 将命令插入光标处。Ctrl+X 执行(首先确认)。 source <( decoreba shell bash ) # 或 zsh - 初始化 将小部件和补全同时安装到您的 shell rc 文件中。在修改之前创建一个备份。 decoreba init # 交互式 decoreba init --yes # 非交互式 - Gist 同步 通过私有 GitHub Gist 在机器间同步您的库。 decoreba sync init # 创建一个新的 Gist 并上传 decoreba sync push # 上传本地更改 decoreba sync pull # 下载远程更改 decoreba sync status # 显示提前/落后/分歧/干净 需要 DECOREBA_GIST_TOKEN(经典 PAT 带 Gist 范围)。传递 --encrypt 在上传之前使用 AES-256-GCM 加密。密钥由令牌推导。 - MCP 服务器 通过 stdin/stdout 运行模型上下文协议服务器。允许 AI 代理(Claude Desktop、Cline 等)直接与您的命令库互动。 decoreba mcp - 工具与操作 - decoreba_search 在所有上下文中模糊搜索 - decoreba_get 通过 ID 查找命令 - decoreba_list_contexts 列出所有上下文及其计数 - decoreba_add 添加新命令 - decoreba_edit 更新现有命令 - decoreba_remove 通过 ID 删除 - decoreba_execute 运行命令并返回输出 - decoreba_stats 库统计 写入和删除工具需要 confirm: true 。危险命令(rm -rf /,> /dev/sda 等)被内置的拒绝列表阻止。每次修改前都会运行自动备份。 数据 单个 JSON 文件。原子写入(保存到 .tmp,然后重命名覆盖目标)。 操作系统路径 Linux $XDG_CONFIG_HOME/decoreba/commands.json macOS ~/Library/Application Support/decoreba/command

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡