@zibby/skills 0.1.32 → 0.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat-memory.js +29 -27
- package/dist/chat-notify.js +3 -3
- package/dist/github.js +4 -3
- package/dist/gitlab.js +19 -0
- package/dist/index.js +141 -120
- package/dist/integrations.js +1 -1
- package/dist/jira.js +2 -2
- package/dist/lark.js +1 -1
- package/dist/linear.js +14 -14
- package/dist/llm-billing.js +1 -1
- package/dist/package.json +3 -1
- package/dist/plane.js +1 -1
- package/dist/sentry.js +2 -2
- package/dist/slack.js +1 -1
- package/dist/trackers/github-adapter.js +4 -3
- package/dist/trackers/index.js +13 -12
- package/dist/trackers/jira-adapter.js +1 -1
- package/dist/trackers/linear-adapter.js +16 -16
- package/docs/apps/agent-ops.md +6 -6
- package/docs/apps/deploy.md +1 -1
- package/docs/apps/index.md +45 -42
- package/docs/apps/managing.md +1 -1
- package/docs/cli-reference.md +67 -67
- package/docs/cloning-repositories.md +9 -9
- package/docs/cloud/bundles.md +8 -8
- package/docs/cloud/dedicated-egress.md +6 -6
- package/docs/cloud/env-vars.md +29 -29
- package/docs/cloud/limits.md +11 -11
- package/docs/cloud/triggering.md +16 -16
- package/docs/concepts/agents.md +4 -4
- package/docs/concepts/sessions.md +7 -7
- package/docs/concepts/state.md +1 -1
- package/docs/concepts/sub-graphs.md +9 -9
- package/docs/get-started/deploy.md +14 -14
- package/docs/get-started/install.md +5 -3
- package/docs/get-started/run-locally.md +12 -12
- package/docs/get-started/trigger-and-logs.md +14 -14
- package/docs/get-started/use-from-agents.md +17 -17
- package/docs/get-started/your-first-workflow.md +10 -7
- package/docs/integrations/gitlab.md +43 -0
- package/docs/integrations/lark.md +41 -0
- package/docs/integrations/linear.md +43 -0
- package/docs/integrations/notion.md +33 -0
- package/docs/integrations/plane.md +46 -0
- package/docs/integrations/sentry.md +42 -0
- package/docs/integrations/slack.md +33 -0
- package/docs/intro.md +16 -12
- package/docs/legacy/test-automation.md +2 -2
- package/docs/packages/cli.md +11 -11
- package/docs/packages/core.md +2 -2
- package/docs/packages/mcp-cli.md +18 -18
- package/docs/packages/skills.md +2 -2
- package/docs/packages/ui-memory.md +2 -2
- package/docs/recipes/bug-autofix.md +85 -0
- package/docs/recipes/github-ai-scout.md +61 -0
- package/docs/recipes/index.md +39 -34
- package/docs/recipes/pipeline-supervisor.md +57 -0
- package/docs/recipes/sentry-triage.md +7 -7
- package/docs/recipes/test.md +6 -6
- package/docs/skills/browser.md +2 -2
- package/docs/skills/chat-memory.md +40 -11
- package/docs/skills/core-tools.md +1 -1
- package/docs/skills/function-skill.md +1 -1
- package/docs/skills/github.md +2 -2
- package/docs/skills/index.md +4 -0
- package/docs/skills/jira.md +1 -1
- package/docs/skills/lark.md +1 -1
- package/docs/skills/memory.md +2 -2
- package/docs/skills/sentry.md +1 -1
- package/docs/skills/slack.md +2 -2
- package/package.json +3 -1
package/docs/cloud/limits.md
CHANGED
|
@@ -5,24 +5,24 @@ title: Limits & quotas
|
|
|
5
5
|
|
|
6
6
|
# Limits & quotas
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Agent runtime cap
|
|
9
9
|
|
|
10
|
-
Every
|
|
10
|
+
Every agent execution has a **30-minute hard cap**. If an agent exceeds it, the
|
|
11
11
|
container is terminated with exit code `124` (timeout) and the execution is marked
|
|
12
12
|
`failed` with reason `TIMEOUT`.
|
|
13
13
|
|
|
14
14
|
Why this exists:
|
|
15
|
-
- Stops runaway
|
|
15
|
+
- Stops runaway agents (infinite loops, hung HTTP calls, stuck npm installs)
|
|
16
16
|
from burning unbounded compute
|
|
17
17
|
- Predictable per-execution cost ceiling
|
|
18
18
|
- Industry standard — GitHub Actions defaults to 6 hours, GitLab CI defaults to
|
|
19
19
|
1 hour, Vercel functions cap at 5 minutes. We picked 30 min as the sweet spot
|
|
20
|
-
for AI-driven
|
|
20
|
+
for AI-driven agents
|
|
21
21
|
|
|
22
|
-
If your
|
|
22
|
+
If your agent needs to run longer:
|
|
23
23
|
- Split it into multiple shorter executions chained via input/output
|
|
24
24
|
- Move long-running work (large npm installs, video processing) into your bundled
|
|
25
|
-
artifact at deploy time so the
|
|
25
|
+
artifact at deploy time so the agent itself stays short
|
|
26
26
|
- Contact us about a Pro tier with a longer cap
|
|
27
27
|
|
|
28
28
|
The cap is enforced **inside** the container by a watchdog timer set on startup,
|
|
@@ -43,7 +43,7 @@ marked failed.
|
|
|
43
43
|
|
|
44
44
|
## Container freedom (what you CAN do)
|
|
45
45
|
|
|
46
|
-
Inside your container, your
|
|
46
|
+
Inside your container, your agent has **full control**:
|
|
47
47
|
|
|
48
48
|
- Install any npm package (`npm install`, `pip install`, `apt install` if root)
|
|
49
49
|
- Run any shell command (`curl`, `git`, `docker`-in-docker not supported)
|
|
@@ -58,7 +58,7 @@ no side effects on Zibby infrastructure.
|
|
|
58
58
|
|
|
59
59
|
| Boundary | Why |
|
|
60
60
|
|---|---|
|
|
61
|
-
| Talk to other customers'
|
|
61
|
+
| Talk to other customers' agents | Each task is a separate isolated container |
|
|
62
62
|
| Use someone else's static IP | Only your account's IP is reachable from your task |
|
|
63
63
|
| Run beyond the 30-min cap | Watchdog kills the process |
|
|
64
64
|
| Read Zibby infra secrets | Container IAM role only sees your execution data |
|
|
@@ -66,7 +66,7 @@ no side effects on Zibby infrastructure.
|
|
|
66
66
|
|
|
67
67
|
## Outbound network
|
|
68
68
|
|
|
69
|
-
By default your
|
|
69
|
+
By default your agent exits via a random AWS IP that changes every run. If you
|
|
70
70
|
need a stable IP for whitelisting customer firewalls, see
|
|
71
71
|
[Dedicated egress IP](./dedicated-egress) ($50/mo addon).
|
|
72
72
|
|
|
@@ -74,8 +74,8 @@ need a stable IP for whitelisting customer firewalls, see
|
|
|
74
74
|
|
|
75
75
|
| Endpoint | Limit |
|
|
76
76
|
|---|---|
|
|
77
|
-
| Trigger
|
|
77
|
+
| Trigger agent | 60/min per account |
|
|
78
78
|
| Read logs | 600/min per account |
|
|
79
|
-
| Deploy
|
|
79
|
+
| Deploy agent | 30/hour per account |
|
|
80
80
|
|
|
81
81
|
Hitting a rate limit returns `429 Too Many Requests` with a `Retry-After` header.
|
package/docs/cloud/triggering.md
CHANGED
|
@@ -5,18 +5,18 @@ title: Triggering programmatically
|
|
|
5
5
|
|
|
6
6
|
# Triggering programmatically
|
|
7
7
|
|
|
8
|
-
The CLI is the public surface for triggering
|
|
8
|
+
The CLI is the public surface for triggering agents. CI runners, cron hosts, webhook handlers — all of them shell out to the same command:
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
|
-
zibby
|
|
12
|
-
zibby
|
|
13
|
-
zibby
|
|
14
|
-
zibby
|
|
11
|
+
zibby agent trigger <uuid>
|
|
12
|
+
zibby agent trigger <uuid> -p ticket=BUG-123
|
|
13
|
+
zibby agent trigger <uuid> --input '{"ticket":"BUG-123","priority":"high"}'
|
|
14
|
+
zibby agent trigger <uuid> --input-file payload.json
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
Auth: set `ZIBBY_API_KEY` in the environment, or run `zibby login` once on a workstation. Either works; the CLI picks up whichever is available.
|
|
18
18
|
|
|
19
|
-
The flag surface is identical to `zibby
|
|
19
|
+
The flag surface is identical to `zibby agent run` (local) — same `-p / --input / --input-file`, plus `--idempotency-key` for the cloud-only dedup case below. Flip the verb and the same call shape goes from local to remote.
|
|
20
20
|
|
|
21
21
|
### Input precedence
|
|
22
22
|
|
|
@@ -29,7 +29,7 @@ When more than one input source is provided, they merge with this **precedence (
|
|
|
29
29
|
This means the common pattern of "load a base payload from disk, override a few keys for this run" works without manual merging:
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
zibby
|
|
32
|
+
zibby agent trigger <uuid> --input-file payload.json -p priority=urgent
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
## CI / cron
|
|
@@ -39,10 +39,10 @@ Anywhere you can shell out, call the CLI. Don't hand-roll an HTTP client — you
|
|
|
39
39
|
### GitHub Actions
|
|
40
40
|
|
|
41
41
|
```yaml
|
|
42
|
-
- name: Trigger Zibby
|
|
42
|
+
- name: Trigger Zibby agent
|
|
43
43
|
run: |
|
|
44
44
|
npm i -g @zibby/cli
|
|
45
|
-
zibby
|
|
45
|
+
zibby agent trigger $WORKFLOW_UUID -p sha=$GITHUB_SHA -p pr=$PR_NUMBER
|
|
46
46
|
env:
|
|
47
47
|
WORKFLOW_UUID: 2b1ea07f-3ede-4bfd-a51d-431f0bab008e
|
|
48
48
|
ZIBBY_API_KEY: ${{ secrets.ZIBBY_API_KEY }}
|
|
@@ -61,7 +61,7 @@ jobs:
|
|
|
61
61
|
runs-on: ubuntu-latest
|
|
62
62
|
steps:
|
|
63
63
|
- run: npm i -g @zibby/cli
|
|
64
|
-
- run: zibby
|
|
64
|
+
- run: zibby agent trigger $UUID --input '{"weekly":true}'
|
|
65
65
|
env:
|
|
66
66
|
UUID: ${{ vars.WORKFLOW_UUID }}
|
|
67
67
|
ZIBBY_API_KEY: ${{ secrets.ZIBBY_API_KEY }}
|
|
@@ -79,7 +79,7 @@ app.post('/webhook', (req, res) => {
|
|
|
79
79
|
|
|
80
80
|
try {
|
|
81
81
|
execFileSync('zibby', [
|
|
82
|
-
'
|
|
82
|
+
'agent', 'trigger', process.env.WORKFLOW_UUID,
|
|
83
83
|
'--input', JSON.stringify(req.body),
|
|
84
84
|
'--idempotency-key', req.headers['x-event-id'],
|
|
85
85
|
], { env: process.env, stdio: 'pipe' });
|
|
@@ -97,7 +97,7 @@ If your runtime can't spawn a Node CLI (constrained Lambda layers, edge runtimes
|
|
|
97
97
|
Pass an idempotency key to deduplicate triggers within a 24-hour window:
|
|
98
98
|
|
|
99
99
|
```bash
|
|
100
|
-
zibby
|
|
100
|
+
zibby agent trigger <uuid> \
|
|
101
101
|
-p ticket=BUG-123 \
|
|
102
102
|
--idempotency-key webhook-2026-05-02-event-7
|
|
103
103
|
```
|
|
@@ -109,14 +109,14 @@ Same key + same input within 24h returns the original `jobId` instead of startin
|
|
|
109
109
|
After triggering, the CLI prints the `jobId`. To watch the execution:
|
|
110
110
|
|
|
111
111
|
```bash
|
|
112
|
-
zibby
|
|
112
|
+
zibby agent logs <uuid> -t
|
|
113
113
|
```
|
|
114
114
|
|
|
115
|
-
See [`
|
|
115
|
+
See [`agent logs` in the CLI Reference](../cli-reference#agent-logs).
|
|
116
116
|
|
|
117
|
-
## Per-
|
|
117
|
+
## Per-agent env vars
|
|
118
118
|
|
|
119
|
-
If your
|
|
119
|
+
If your agent needs credentials or config that's specific to it (different `ANTHROPIC_API_KEY` per agent, an agent-only `DATABASE_URL`, etc.), set them via the env-var API — see [Per-agent env vars](./env-vars). They get injected into the Fargate task at trigger time and override anything set on the project record.
|
|
120
120
|
|
|
121
121
|
## Quotas
|
|
122
122
|
|
package/docs/concepts/agents.md
CHANGED
|
@@ -92,7 +92,7 @@ Then a node can use it:
|
|
|
92
92
|
graph.addNode('plan', { prompt, outputSchema: Plan, agent: 'mine' });
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
The framework ships **zero** agent strategies bundled — `@zibby/agent-workflow` is BYO. The five built-ins above live in `@zibby/core`, which is what `zibby
|
|
95
|
+
The framework ships **zero** agent strategies bundled — `@zibby/agent-workflow` is BYO. The five built-ins above live in `@zibby/core`, which is what `zibby agent new` scaffolds and what the cloud runtime preloads.
|
|
96
96
|
|
|
97
97
|
## Authentication
|
|
98
98
|
|
|
@@ -106,7 +106,7 @@ The framework ships **zero** agent strategies bundled — `@zibby/agent-workflow
|
|
|
106
106
|
|
|
107
107
|
In Zibby Cloud, you have two options:
|
|
108
108
|
|
|
109
|
-
- **Project-wide credentials**: set once on the project record (dashboard → Project → Secrets) — every
|
|
110
|
-
- **Per-
|
|
109
|
+
- **Project-wide credentials**: set once on the project record (dashboard → Project → Secrets) — every agent in the project uses them.
|
|
110
|
+
- **Per-agent overrides**: set on a single agent via [`PUT /workflows/<uuid>/env`](../cloud/env-vars) — useful when one agent needs a different `ANTHROPIC_API_KEY` from the rest of the project, or when one agent needs to talk to multiple agent vendors with their own keys.
|
|
111
111
|
|
|
112
|
-
|
|
112
|
+
Agent env wins over project secrets on conflict (last-write-wins inside the Fargate task).
|
|
@@ -5,7 +5,7 @@ title: Sessions & artifacts
|
|
|
5
5
|
|
|
6
6
|
# Sessions & artifacts
|
|
7
7
|
|
|
8
|
-
Every
|
|
8
|
+
Every agent run — local or cloud — produces a **session folder** under `.zibby/output/sessions/<sessionId>/`. The folder is the canonical record of what happened.
|
|
9
9
|
|
|
10
10
|
## What's inside
|
|
11
11
|
|
|
@@ -31,7 +31,7 @@ Format: `<unix_ms>_<random>`. Generated when the graph starts running.
|
|
|
31
31
|
You can override via:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
zibby
|
|
34
|
+
zibby agent run my-agent --session 1777678254943_ymcw
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
Useful for replay — re-run from a saved input/state without re-paying earlier nodes.
|
|
@@ -39,7 +39,7 @@ Useful for replay — re-run from a saved input/state without re-paying earlier
|
|
|
39
39
|
## Replay a session
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
|
-
zibby
|
|
42
|
+
zibby agent run my-agent \
|
|
43
43
|
--session 1777678254943_ymcw \
|
|
44
44
|
--node verify # only re-run the 'verify' node
|
|
45
45
|
```
|
|
@@ -48,19 +48,19 @@ The graph reads `state.plan` and `state.implement` from the saved session and on
|
|
|
48
48
|
|
|
49
49
|
## Cloud sessions
|
|
50
50
|
|
|
51
|
-
Cloud runs land in the same `.zibby/output/sessions/` layout, just inside the ECS container's `/workspace/`. The session folder is uploaded to S3 at the end of each run; `zibby
|
|
51
|
+
Cloud runs land in the same `.zibby/output/sessions/` layout, just inside the ECS container's `/workspace/`. The session folder is uploaded to S3 at the end of each run; `zibby agent logs <uuid> -t` streams CloudWatch logs in real time.
|
|
52
52
|
|
|
53
53
|
To download a finished cloud session locally:
|
|
54
54
|
|
|
55
55
|
```bash
|
|
56
|
-
zibby
|
|
56
|
+
zibby agent download <uuid>
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
This pulls the
|
|
59
|
+
This pulls the agent source (so you can edit and redeploy) plus the most recent execution's session folder.
|
|
60
60
|
|
|
61
61
|
## Studio integration
|
|
62
62
|
|
|
63
|
-
[Zibby Studio](https://zibby.app) is a desktop UI that watches `.zibby/output/sessions/`. Anything that writes a session folder shows up in Studio automatically — pin a session, watch state evolve live, or stop
|
|
63
|
+
[Zibby Studio](https://zibby.app) is a desktop UI that watches `.zibby/output/sessions/`. Anything that writes a session folder shows up in Studio automatically — pin a session, watch state evolve live, or stop an agent from the Stop button.
|
|
64
64
|
|
|
65
65
|
The protocol is documented and stable:
|
|
66
66
|
|
package/docs/concepts/state.md
CHANGED
|
@@ -5,7 +5,7 @@ title: State & schema
|
|
|
5
5
|
|
|
6
6
|
# State & schema
|
|
7
7
|
|
|
8
|
-
Every
|
|
8
|
+
Every agent run carries one **state** object that flows from node to node. State is the only handoff mechanism — there's no shared globals, no hidden context.
|
|
9
9
|
|
|
10
10
|
## Shape
|
|
11
11
|
|
|
@@ -5,13 +5,13 @@ title: Sub-graphs (parent → child)
|
|
|
5
5
|
|
|
6
6
|
# Sub-graphs
|
|
7
7
|
|
|
8
|
-
A **sub-graph node** runs another deployed
|
|
8
|
+
A **sub-graph node** runs another deployed agent as a child of the current one. Use it when a step is large enough to deserve its own workflow definition — its own state schema, its own version, its own activity-tab history — but you want a parent to dispatch it as part of a larger flow.
|
|
9
9
|
|
|
10
10
|
The shape is one extra field on the existing node config:
|
|
11
11
|
|
|
12
12
|
```js
|
|
13
13
|
g.addNode('audit', {
|
|
14
|
-
workflow: 'deep-audit', // ← name of another
|
|
14
|
+
workflow: 'deep-audit', // ← name of another agent in this project
|
|
15
15
|
});
|
|
16
16
|
```
|
|
17
17
|
|
|
@@ -22,7 +22,7 @@ That's it. No new imports, no UUID, no separate class. The engine recognizes `wo
|
|
|
22
22
|
| Scenario | Sub-graph? |
|
|
23
23
|
|---|---|
|
|
24
24
|
| Two parents need the same multi-node flow | ✅ Yes — define it once as a child, reference by name |
|
|
25
|
-
| One step needs different state schema than the rest | ✅ Yes — each
|
|
25
|
+
| One step needs different state schema than the rest | ✅ Yes — each agent has its own schema |
|
|
26
26
|
| You want per-step activity-tab history + replay | ✅ Yes — each child run gets its own row |
|
|
27
27
|
| Step is a single LLM call | ❌ No — just add a regular node |
|
|
28
28
|
| Step has its own retry policy | Either works, but a sub-graph gives independent control |
|
|
@@ -77,7 +77,7 @@ g.addNode('audit', {
|
|
|
77
77
|
|
|
78
78
|
## How state flows
|
|
79
79
|
|
|
80
|
-
Each
|
|
80
|
+
Each agent has its own state schema — they're independent. The parent must transform its state into the child's input shape, and (optionally) extract whatever it needs back out.
|
|
81
81
|
|
|
82
82
|
### A complete example — `parent-orchestrator` calls `child-doubler`
|
|
83
83
|
|
|
@@ -184,13 +184,13 @@ err.subgraphStatus // 'failed' | 'canceled' | 'timeout'
|
|
|
184
184
|
|
|
185
185
|
## What's deployed vs what you write
|
|
186
186
|
|
|
187
|
-
You only ever reference
|
|
187
|
+
You only ever reference agents by **name**. The cloud handles the UUID resolution.
|
|
188
188
|
|
|
189
189
|
| Stage | What you write | What the backend does |
|
|
190
190
|
|---|---|---|
|
|
191
|
-
| `zibby
|
|
191
|
+
| `zibby agent deploy child-doubler` | nothing about UUIDs | mints UUID, stores `(projectId, workflowType='child-doubler', uuid='…')` |
|
|
192
192
|
| `subgraph('child-doubler')` in parent code | just the name | stored as a string in the parent's graph definition |
|
|
193
|
-
| `zibby
|
|
193
|
+
| `zibby agent deploy parent-orchestrator` | nothing | looks up `'child-doubler'` → UUID, snapshots the dependency |
|
|
194
194
|
| Parent runs in Fargate → hits sub-graph node | nothing | POSTs to `/workflows/<uuid>/trigger` with `parentExecutionId` |
|
|
195
195
|
|
|
196
196
|
Names are unique per project (DDB primary key enforces this), so `subgraph('child-doubler')` resolves unambiguously within the parent's project.
|
|
@@ -208,14 +208,14 @@ Each child execution row carries `parentExecutionId` pointing at the parent. The
|
|
|
208
208
|
|
|
209
209
|
Sub-graph dispatch needs the `PROGRESS_API_URL` env var (the public API base). That's set automatically on Fargate runs. For local dev, you have two options:
|
|
210
210
|
|
|
211
|
-
1. **Deploy both
|
|
211
|
+
1. **Deploy both agents to cloud, then trigger the parent.** The cloud path always works.
|
|
212
212
|
2. **Mock the trigger + status endpoints locally.** See [`workflows/parent-orchestrator/mock-server.mjs`](https://github.com/ZibbyHQ/agent-workflow/tree/main/examples) in the agent-workflow repo for a 90-line example that simulates the dispatch + poll loop.
|
|
213
213
|
|
|
214
214
|
In-process sub-graph execution (running the child in the parent's Node process directly, no HTTP) is **not supported** — we picked consistency between local and cloud over the 10s spawn-time savings.
|
|
215
215
|
|
|
216
216
|
## Cross-project sub-graphs
|
|
217
217
|
|
|
218
|
-
`workflow: 'name'` resolves within the parent's own project. To call another project's
|
|
218
|
+
`workflow: 'name'` resolves within the parent's own project. To call another project's agent, pass an explicit project ID:
|
|
219
219
|
|
|
220
220
|
```js
|
|
221
221
|
g.addNode('audit', {
|
|
@@ -5,34 +5,34 @@ pagination_prev: get-started/run-locally
|
|
|
5
5
|
pagination_next: get-started/trigger-and-logs
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Ship
|
|
8
|
+
# Ship an agent to Zibby Cloud
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
|
-
zibby
|
|
11
|
+
zibby agent deploy my-agent
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
If you have multiple projects, the CLI prompts you to pick one. On success it prints a UUID:
|
|
15
15
|
|
|
16
16
|
```
|
|
17
|
-
✔ Deployed my-
|
|
17
|
+
✔ Deployed my-agent (v1)
|
|
18
18
|
✔ Bundle ready (78s) — runtime npm install eliminated
|
|
19
19
|
|
|
20
20
|
UUID: 2b1ea07f-3ede-4bfd-a51d-431f0bab008e
|
|
21
21
|
|
|
22
22
|
Next steps:
|
|
23
|
-
zibby
|
|
24
|
-
zibby
|
|
25
|
-
zibby
|
|
23
|
+
zibby agent run my-agent Run locally
|
|
24
|
+
zibby agent trigger 2b1ea07f-... Run in cloud
|
|
25
|
+
zibby agent list View all agents
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
The UUID is **canonical** — it never changes once issued. All cloud commands (`trigger`, `logs`, `download`, `delete`) take that UUID as their identifier. The CLI caches it in `.zibby/workflows/my-
|
|
28
|
+
The UUID is **canonical** — it never changes once issued. All cloud commands (`trigger`, `logs`, `download`, `delete`) take that UUID as their identifier. The CLI caches it in `.zibby/workflows/my-agent/.zibby-deploy.json` so you don't have to remember it. Commit that file to git; collaborators share the same canonical reference.
|
|
29
29
|
|
|
30
30
|
## What deploy actually does
|
|
31
31
|
|
|
32
32
|
Two phases:
|
|
33
33
|
|
|
34
|
-
1. **Source upload** — your
|
|
35
|
-
2. **Bundle build (Heroku-style)** — a CodeBuild job downloads the sources, runs `npm install --omit=dev`, packages the result as a tarball, and uploads it to S3. The tarball is what each cloud execution downloads at trigger time, so there's **no `npm install` at runtime** —
|
|
34
|
+
1. **Source upload** — your agent folder (sources only, no `node_modules`) is uploaded as a JSON payload to S3 via a presigned URL. The CLI also resolves your `.zibby.config.mjs` (if present at project root) and ships it inside the bundle as `zibby.config.json`, so the cloud sees the same config as your local runs.
|
|
35
|
+
2. **Bundle build (Heroku-style)** — a CodeBuild job downloads the sources, runs `npm install --omit=dev`, packages the result as a tarball, and uploads it to S3. The tarball is what each cloud execution downloads at trigger time, so there's **no `npm install` at runtime** — agents boot in seconds.
|
|
36
36
|
|
|
37
37
|
You'll see a live spinner with the active build step:
|
|
38
38
|
|
|
@@ -44,7 +44,7 @@ Pass `--verbose` if you want to see raw CodeBuild logs.
|
|
|
44
44
|
|
|
45
45
|
## Re-deploys keep the same UUID
|
|
46
46
|
|
|
47
|
-
Once
|
|
47
|
+
Once an agent has a UUID, every subsequent `deploy` increments the version but keeps the UUID stable:
|
|
48
48
|
|
|
49
49
|
```
|
|
50
50
|
v1 → v2 → v3 → ... (same UUID, same trigger URL)
|
|
@@ -56,20 +56,20 @@ So your `curl` calls and CI integrations don't break across deploys.
|
|
|
56
56
|
|
|
57
57
|
A clean mental model:
|
|
58
58
|
|
|
59
|
-
- **
|
|
59
|
+
- **Agent folder name** (`my-agent`) is *local* — used by `agent new`, `start`, `deploy`. It's just a directory name.
|
|
60
60
|
- **UUID** (`2b1ea07f-...`) is *canonical* — used by `trigger`, `logs`, `download`, `delete`. Stable across deploys.
|
|
61
61
|
|
|
62
|
-
`
|
|
62
|
+
`agent list` shows both:
|
|
63
63
|
|
|
64
64
|
```
|
|
65
65
|
┌─────────────────────────────────────┬──────────────┬──────────┬─────┐
|
|
66
66
|
│ UUID │ Name │ Project │ Ver │
|
|
67
67
|
├─────────────────────────────────────┼──────────────┼──────────┼─────┤
|
|
68
|
-
│ 2b1ea07f-3ede-4bfd-a51d-431f0bab008e│ my-
|
|
68
|
+
│ 2b1ea07f-3ede-4bfd-a51d-431f0bab008e│ my-agent │ Zibby UI │ 3 │
|
|
69
69
|
│ - │ scratchpad │ - │ - │
|
|
70
70
|
└─────────────────────────────────────┴──────────────┴──────────┴─────┘
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
`-` in the UUID column means a local-only
|
|
73
|
+
`-` in the UUID column means a local-only agent that hasn't been deployed yet.
|
|
74
74
|
|
|
75
75
|
→ Next: [Trigger & tail logs](./trigger-and-logs)
|
|
@@ -7,6 +7,8 @@ pagination_next: get-started/your-first-workflow
|
|
|
7
7
|
|
|
8
8
|
# Install the CLI
|
|
9
9
|
|
|
10
|
+
You build **Agents** with Zibby — deployed automations. The CLI command is `zibby agent`.
|
|
11
|
+
|
|
10
12
|
```bash
|
|
11
13
|
npm install -g @zibby/cli
|
|
12
14
|
```
|
|
@@ -24,7 +26,7 @@ You should see something like `zibby v0.4.x`.
|
|
|
24
26
|
Every example below works with `npx @zibby/cli` instead of `zibby`:
|
|
25
27
|
|
|
26
28
|
```bash
|
|
27
|
-
npx @zibby/cli
|
|
29
|
+
npx @zibby/cli agent new my-agent
|
|
28
30
|
```
|
|
29
31
|
|
|
30
32
|
The first call downloads the package; subsequent calls use the cached copy.
|
|
@@ -43,7 +45,7 @@ For CI/CD, set `ZIBBY_API_KEY` in the environment instead — the CLI prefers th
|
|
|
43
45
|
|
|
44
46
|
## Pick an agent runtime
|
|
45
47
|
|
|
46
|
-
|
|
48
|
+
Agents hand off to external coding-agent CLIs at runtime. You'll need at least one of these installed (locally — the cloud runtime has them pre-installed):
|
|
47
49
|
|
|
48
50
|
| Agent | How to install | Auth |
|
|
49
51
|
|---|---|---|
|
|
@@ -55,4 +57,4 @@ Workflows hand off to external coding-agent CLIs at runtime. You'll need at leas
|
|
|
55
57
|
|
|
56
58
|
You only need one. The cloud runtime supports all five out of the box.
|
|
57
59
|
|
|
58
|
-
→ Next: [Your first
|
|
60
|
+
→ Next: [Your first agent](./your-first-workflow)
|
|
@@ -5,10 +5,10 @@ pagination_prev: get-started/your-first-workflow
|
|
|
5
5
|
pagination_next: get-started/deploy
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Run
|
|
8
|
+
# Run an agent locally
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
|
-
zibby
|
|
11
|
+
zibby agent run my-agent
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
One-shot: loads `graph.mjs`, instantiates your `WorkflowAgent` class, runs the graph against a real agent, prints results, exits. Output lands in `.zibby/output/sessions/<sessionId>/`:
|
|
@@ -18,11 +18,11 @@ One-shot: loads `graph.mjs`, instantiates your `WorkflowAgent` class, runs the g
|
|
|
18
18
|
- `events.json` — JSONL execution log: which node ran when, what it received, what it returned, retries
|
|
19
19
|
- `.session-info.json` — session metadata
|
|
20
20
|
|
|
21
|
-
The flag surface mirrors `zibby
|
|
21
|
+
The flag surface mirrors `zibby agent trigger` (cloud) on purpose: the call you make locally is the same call you make against the cloud, just with the verb flipped.
|
|
22
22
|
|
|
23
23
|
## Pass input
|
|
24
24
|
|
|
25
|
-
Most
|
|
25
|
+
Most agents take input. Edit `graph.mjs` to define an input schema and reference `state.input`:
|
|
26
26
|
|
|
27
27
|
```js
|
|
28
28
|
graph.addNode('plan', {
|
|
@@ -35,14 +35,14 @@ graph.addNode('plan', {
|
|
|
35
35
|
Then pass input via `--input`:
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
zibby
|
|
38
|
+
zibby agent run my-agent --input '{"ticket":"BUG-123"}'
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
Or `--param key=value` (repeatable, dot-notation supported):
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
zibby
|
|
45
|
-
zibby
|
|
44
|
+
zibby agent run my-agent -p ticket=BUG-123 -p priority=high
|
|
45
|
+
zibby agent run my-agent -p user.name=Alice -p user.role=admin
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
Or `--input-file payload.json` for larger payloads.
|
|
@@ -56,15 +56,15 @@ Each run is a fresh process — re-edit `graph.mjs` or any node file and re-run.
|
|
|
56
56
|
If you want auto-rerun on file change, run it under `nodemon`:
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
|
-
npx nodemon --ext mjs,js --exec "zibby
|
|
59
|
+
npx nodemon --ext mjs,js --exec "zibby agent run my-agent -p ticket=BUG-123"
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
Or add it to your
|
|
62
|
+
Or add it to your agent's `package.json`:
|
|
63
63
|
|
|
64
64
|
```json
|
|
65
65
|
{
|
|
66
66
|
"scripts": {
|
|
67
|
-
"dev": "nodemon --ext mjs,js --exec \"zibby
|
|
67
|
+
"dev": "nodemon --ext mjs,js --exec \"zibby agent run my-agent\""
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
```
|
|
@@ -85,10 +85,10 @@ cat .zibby/output/sessions/<sessionId>/result.json | jq
|
|
|
85
85
|
Studio is a desktop UI for browsing live + past runs. It connects to a local HTTP server, so when you use Studio you start that instead:
|
|
86
86
|
|
|
87
87
|
```bash
|
|
88
|
-
zibby
|
|
88
|
+
zibby agent start my-agent # long-lived server on :3848 (Studio talks to this)
|
|
89
89
|
zibby studio # launch the desktop app
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
For CLI-only iteration, stick with `zibby
|
|
92
|
+
For CLI-only iteration, stick with `zibby agent run`.
|
|
93
93
|
|
|
94
94
|
→ Next: [Deploy to cloud](./deploy)
|
|
@@ -4,12 +4,12 @@ title: 5. Trigger & tail logs
|
|
|
4
4
|
pagination_prev: get-started/deploy
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# Run a deployed
|
|
7
|
+
# Run a deployed agent and watch logs
|
|
8
8
|
|
|
9
9
|
## Trigger
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
zibby
|
|
12
|
+
zibby agent trigger 2b1ea07f-3ede-4bfd-a51d-431f0bab008e
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
The CLI returns immediately with a job ID:
|
|
@@ -24,24 +24,24 @@ The CLI returns immediately with a job ID:
|
|
|
24
24
|
Triggered: 02/05/2026, 10:23:13
|
|
25
25
|
|
|
26
26
|
Monitor execution:
|
|
27
|
-
zibby
|
|
28
|
-
zibby
|
|
27
|
+
zibby agent logs 2b1ea07f-...
|
|
28
|
+
zibby agent logs 2b1ea07f-... -t
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
Pass input the same way as locally:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
zibby
|
|
35
|
-
zibby
|
|
36
|
-
zibby
|
|
34
|
+
zibby agent trigger <uuid> -p ticket=BUG-123
|
|
35
|
+
zibby agent trigger <uuid> --input '{"ticket":"BUG-123"}'
|
|
36
|
+
zibby agent trigger <uuid> --input-file ./input.json
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
If you omit the UUID, the CLI shows an interactive picker over your deployed
|
|
39
|
+
If you omit the UUID, the CLI shows an interactive picker over your deployed agents.
|
|
40
40
|
|
|
41
41
|
## Tail logs (Heroku-style)
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
zibby
|
|
44
|
+
zibby agent logs 2b1ea07f-3ede-4bfd-a51d-431f0bab008e -t
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
`-t` follows live. Without `-t` it dumps the last execution and exits.
|
|
@@ -52,7 +52,7 @@ zibby workflow logs 2b1ea07f-3ede-4bfd-a51d-431f0bab008e -t
|
|
|
52
52
|
|
|
53
53
|
2026-05-02 23:30:51.345 zibby v0.4.x
|
|
54
54
|
────────────────────────────────────────────────────────────
|
|
55
|
-
Workflow: my-
|
|
55
|
+
Workflow: my-agent
|
|
56
56
|
Job: ee333411-...
|
|
57
57
|
Project: 6b60049d-...
|
|
58
58
|
Agent: cursor (model: auto)
|
|
@@ -65,24 +65,24 @@ zibby workflow logs 2b1ea07f-3ede-4bfd-a51d-431f0bab008e -t
|
|
|
65
65
|
│ ◆ Model: auto | key: ***bc97
|
|
66
66
|
│ ...
|
|
67
67
|
└ done 19.4s
|
|
68
|
-
[done] my-
|
|
68
|
+
[done] my-agent completed in 19.4s
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
The stream covers the full execution end-to-end — agent reasoning, tool calls, schema validation, completion summary.
|
|
72
72
|
|
|
73
73
|
## Multiple executions
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
Agent UUIDs follow the agent, not a single run. After one execution finishes, `logs -t` waits for the next trigger of the same agent and auto-switches to streaming it. Like `heroku logs --tail`.
|
|
76
76
|
|
|
77
77
|
To exit after the current run, just Ctrl+C — there's no "exit on completion" mode (yet).
|
|
78
78
|
|
|
79
79
|
## Triggering from anywhere
|
|
80
80
|
|
|
81
|
-
The CLI is the easiest way, but
|
|
81
|
+
The CLI is the easiest way, but agents expose an HTTP API for programmatic triggering — see [Cloud → Triggering programmatically](../cloud/triggering).
|
|
82
82
|
|
|
83
83
|
## You're done
|
|
84
84
|
|
|
85
|
-
You've now scaffolded, run locally, deployed, triggered, and tailed
|
|
85
|
+
You've now scaffolded, run locally, deployed, triggered, and tailed an agent. The rest of the docs go deeper:
|
|
86
86
|
|
|
87
87
|
- [Concepts](../concepts/graph) — how the graph engine works
|
|
88
88
|
- [CLI Reference](../cli-reference) — every command
|