我为 Terminal 构建了一个 Command Manager(你也可能需要它)
发布: (2026年3月16日 GMT+8 14:36)
4 分钟阅读
原文: Dev.to
Source: Dev.to

GitHub:
问题
作为开发者,我们经常使用终端,但我们的命令工作流却很混乱:
- Shell 历史 难以导航且持久性差。
- 别名 只在会话期间有效,且无法处理复杂脚本。
- 文档 容易过时或散落在随机文件中。
- 脚本 分散在不同目录下。
我们需要一种更好的方式来管理我们的命令工具集。
介绍 Pock
Pock 是一个命令管理器,像终端的书签一样工作。使用简单的名称保存任何命令,立即运行,并保留完整的执行历史。
快速开始
# 安装 (macOS)
brew install pock # (即将推出)
# 或从发布页面下载
# 保存命令
pock add deploy "git push origin main"
# 运行它
pock run deploy
# 查看所有已保存的命令
pock list核心特性
1. 保存命令和脚本
# 保存内联命令
pock add sync-db "pg_dump production | psql development"
# 保存脚本文件(内容会被存储)
pock add release ./scripts/release.sh -d "Production release"2. 执行历史
每次运行的命令都会记录:
- 时间戳
- 退出码
- 完整的 stdout/stderr 输出
- 执行时长
pock history deploy --output3. 导入 / 导出
与团队共享命令库:
# 导出你的命令
pock export my-commands.json
# 团队成员导入
pock import my-commands.json为什么选择它?
- 单一二进制分发(无依赖)
- 出色的 CLI 工具链(Cobra、Viper)
- 跨平台编译
- 启动速度快
- 安装简便
技术架构
pock/
├── cmd/ # Cobra 命令
├── internal/
│ ├── storage/ # SQLite 数据库层
│ └── helpers/ # 配置和工具函数
└── pkg/ # 公共包- 存储: 使用 SQLite(通过 bbolt/bolt)保存本地数据
- CLI 框架: Cobra + Viper
- 输出捕获: 自定义 exec 包装器
实际使用案例
# 开发工作流
pock add dev "docker-compose up -d && npm run dev"
pock add test "npm run lint && npm test && npm build"
# 数据库任务
pock add db-backup "./scripts/backup-db.sh"
pock add db-reset "dropdb myapp && createdb myapp && npm run migrate"
# 部署
pock add deploy-staging "./deploy.sh staging"
pock add deploy-prod "./deploy.sh production"接下来有什么计划?
- 社区市场,用于共享命令
- 命令调度 / cron 集成
- 团队协作功能
- VS Code 扩展
- 用于命令管理的 Web UI
试一试!
安装
# macOS
curl -L https://github.com/ddev94/pock/releases/download/v1.0.1/pock-1.0.1.pkg -o pock-1.0.1.pkg
open pock-1.0.1.pkg
# Linux
wget https://github.com/ddev94/pock/releases/download/v1.0.1/pock-1.0.1-1.x86_64.tar.gz
tar -xzf pock-1.0.1-1.x86_64.tar.gz
sudo cp pock-1.0.1/usr/local/bin/pock /usr/local/bin/GitHub:
欢迎反馈!
我很想了解:
- 你会首先保存哪些命令?
- 缺少哪些功能?
- 你遇到的任何 bug 或问题
在 GitHub 上留下评论或打开 issue 吧! ⭐
使用 Go 构建。开源(ISC 许可证)。注重隐私。