核心用法
strawpoll-cli 是 StrawPoll API v3 的官方命令行客户端,支持在终端快速创建三类投票:多选投票、会议时间投票和排序投票。用户可通过 Homebrew 或 Go 安装,配置 API 密钥后即可使用。
主要功能模块:
- 多选投票:创建带选项限制、防刷票、截止时间的投票,支持私密模式和浏览器自动打开
- 会议投票:通过日期或时间段快速收集团队可用时间,支持时区和地点设置
- 排序投票:实现 Borda 计数法的排序选举,可查看详细席位分布
脚本友好特性:
- 支持
--json和--plain输出格式,便于管道处理和自动化 - 投票创建返回结构化数据,可用
jq提取 poll ID - 环境变量
STRAWPOLL_API_KEY支持 CI/CD 集成 - 提供
--force跳过确认提示
交互体验:
- 无参数时自动启动交互式向导
- 彩色表格输出,支持
NO_COLOR环境变量禁用 - Shell 补全支持 Bash、Zsh、Fish
显著优点
1. 效率提升:无需打开浏览器即可批量创建投票,适合敏捷团队的日常决策
2. 自动化能力:完整的 CRUD 操作支持脚本化,可集成到 Slack bot、GitHub Actions 等场景
3. 输出灵活:三种输出模式覆盖人工阅读、脚本解析、表格处理不同需求
4. 配置持久化:支持 ~/.config/strawpoll/config.yaml 保存默认设置
潜在局限
- 无法投票:CLI 仅支持创建和管理,实际投票仍需浏览器访问投票链接
- 依赖外部服务:完全依赖 StrawPoll.com 的在线 API,无离线能力
- API 限制:选项数量限制 2-30 个,大型选举场景不适用
- 密钥管理风险:需妥善保管 API 密钥,虽有 keyring 支持但脚本场景多用明文环境变量
适合人群
- 技术团队/开发者:需要快速发起技术决策投票
- DevOps/运维工程师:将投票集成到自动化工作流
- 敏捷教练/Scrum Master:批量创建会议时间协调
- CLI 重度用户:偏好终端效率而非网页操作
常规风险
- API 密钥泄露:环境变量方式存储密钥存在被日志、进程列表暴露的风险
- 误删除操作:
--force配合delete/reset可不可逆清除投票数据 - 时区处理:会议投票需正确配置 IANA 时区,配置错误可能导致时间理解偏差
- 服务可用性:StrawPoll 服务中断将直接影响所有 CLI 功能