Lobster
Contribute: Source code & PRs welcome at github.com/guwidoe/lobster-skill
Workflow runtime for AI agents — typed pipelines with approval gates.
CLI Location
CODEBLOCK0
Quick Reference
CODEBLOCK1
Core Commands
| Command | Purpose |
|---|
| INLINECODE0 | Run shell, parse stdout as JSON |
| INLINECODE1 |
Filter objects |
|
pick field1,field2 | Project fields |
|
head --n 5 | Take first N items |
|
sort --key field --desc | Sort items |
|
groupBy --key field | Group by key |
|
dedupe --key field | Remove duplicates |
|
map --wrap key | Transform items |
|
template --text "{{field}}" | Render templates |
|
approve --prompt "ok?" |
Halt for approval |
|
diff.last --key "mykey" | Compare to last run (stateful) |
|
state.get key /
state.set key | Read/write persistent state |
|
json /
table | Render output |
Built-in Workflows
CODEBLOCK2
Approval Flow (Tool Mode)
When a pipeline hits approve, it returns:
CODEBLOCK3
To continue:
CODEBLOCK4
Example Pipelines
CODEBLOCK5
Workflow Files (.lobster)
YAML/JSON files with steps, conditions, and approval gates:
CODEBLOCK6
Run: INLINECODE16
Clawdbot Integration
Lobster can call Clawdbot tools via clawd.invoke:
CODEBLOCK7
Requires CLAWD_URL and CLAWD_TOKEN environment variables.
State Directory
Lobster stores state in ~/.lobster/state/ by default. Override with LOBSTER_STATE_DIR.
Lobster
贡献: 欢迎在 github.com/guwidoe/lobster-skill 提交源代码和PR
AI代理的工作流运行时——带有审批门的类型化管道。
CLI位置
bash
设置别名(根据安装位置调整路径)
LOBSTER=node /home/molt/clawd/tools/lobster/bin/lobster.js
或全局安装:npm install -g @clawdbot/lobster
然后使用:lobster
快速参考
bash
运行管道(人类模式 - 美观输出)
$LOBSTER
运行管道(工具模式 - 用于集成的JSON信封)
$LOBSTER run --mode tool
运行工作流文件
$LOBSTER run path/to/workflow.lobster
审批后恢复
$LOBSTER resume --token --approve yes|no
列出命令/工作流
$LOBSTER commands.list
$LOBSTER workflows.list
核心命令
| 命令 | 用途 |
|---|
| exec --json --shell cmd | 运行shell,将stdout解析为JSON |
| where field=value |
过滤对象 |
| pick field1,field2 | 投影字段 |
| head --n 5 | 取前N项 |
| sort --key field --desc | 排序项目 |
| groupBy --key field | 按键分组 |
| dedupe --key field | 去重 |
| map --wrap key | 转换项目 |
| template --text {{field}} | 渲染模板 |
| approve --prompt ok? | 暂停等待审批 |
| diff.last --key mykey | 与上次运行比较(有状态) |
| state.get key / state.set key | 读取/写入持久状态 |
| json / table | 渲染输出 |
内置工作流
bash
监控PR变更(有状态 - 记住上次状态)
$LOBSTER workflows.run --name github.pr.monitor --args-json {\repo\:\owner/repo\,\pr\:123}
监控PR,仅在变更时发送消息
$LOBSTER workflows.run --name github.pr.monitor.notify --args-json {\repo\:\owner/repo\,\pr\:123}
审批流程(工具模式)
当管道遇到approve时,返回:
json
{
status: needs_approval,
requiresApproval: {
prompt: 发送3封邮件?,
items: [...],
resumeToken: eyJ...
}
}
继续执行:
bash
$LOBSTER resume --token eyJ... --approve yes
示例管道
bash
列出最近的PR,过滤已合并的,以表格显示
$LOBSTER exec --json --shell gh pr list --repo owner/repo --json number,title,state --limit 20 | where state=MERGED | table
获取数据,要求审批,然后处理
$LOBSTER run --mode tool exec --json --shell echo [{\id\:1},{\id\:2}] | approve --prompt 处理这些? | pick id | json
与上次运行对比(仅在变更时输出)
$LOBSTER exec --json --shell gh pr view 123 --repo o/r --json state,title | diff.last --key pr:o/r#123 | json
工作流文件(.lobster)
包含步骤、条件和审批门的YAML/JSON文件:
yaml
name: pr-review-reminder
steps:
- id: fetch
command: gh pr list --repo ${repo} --json number,title,reviewDecision
- id: filter
command: jq [.[] | select(.reviewDecision == )]
stdin: $fetch.stdout
- id: notify
command: echo 需要审查的PR: && cat
stdin: $filter.stdout
approval: required
运行:$LOBSTER run workflow.lobster --args-json {repo:owner/repo}
Clawdbot集成
Lobster可以通过clawd.invoke调用Clawdbot工具:
bash
$LOBSTER clawd.invoke --tool message --action send --args-json {\target\:\123\,\message\:\hello\}
需要设置CLAWDURL和CLAWDTOKEN环境变量。
状态目录
Lobster默认将状态存储在~/.lobster/state/中。可通过LOBSTERSTATEDIR覆盖。