@zibby/skills 0.1.33 → 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/github.js +4 -3
- package/dist/gitlab.js +19 -0
- package/dist/index.js +141 -122
- package/dist/package.json +3 -1
- package/dist/trackers/github-adapter.js +4 -3
- package/dist/trackers/index.js +16 -15
- package/docs/apps/agent-ops.md +6 -6
- package/docs/apps/deploy.md +1 -1
- package/docs/apps/index.md +1 -1
- package/docs/apps/managing.md +1 -1
- package/docs/cli-reference.md +65 -65
- 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 +4 -4
- 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 +8 -8
- package/docs/integrations/gitlab.md +1 -1
- package/docs/integrations/lark.md +2 -2
- package/docs/integrations/linear.md +1 -1
- package/docs/integrations/notion.md +2 -2
- package/docs/integrations/plane.md +1 -1
- package/docs/integrations/slack.md +1 -1
- package/docs/intro.md +4 -4
- 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 +1 -1
- package/docs/recipes/bug-autofix.md +1 -1
- package/docs/recipes/index.md +3 -3
- package/docs/recipes/pipeline-supervisor.md +4 -4
- 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 +1 -1
- 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 +1 -1
- 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/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,7 +7,7 @@ pagination_next: get-started/your-first-workflow
|
|
|
7
7
|
|
|
8
8
|
# Install the CLI
|
|
9
9
|
|
|
10
|
-
You build **Agents** with Zibby — deployed automations
|
|
10
|
+
You build **Agents** with Zibby — deployed automations. The CLI command is `zibby agent`.
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
13
|
npm install -g @zibby/cli
|
|
@@ -26,7 +26,7 @@ You should see something like `zibby v0.4.x`.
|
|
|
26
26
|
Every example below works with `npx @zibby/cli` instead of `zibby`:
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
npx @zibby/cli
|
|
29
|
+
npx @zibby/cli agent new my-agent
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
The first call downloads the package; subsequent calls use the cached copy.
|
|
@@ -45,7 +45,7 @@ For CI/CD, set `ZIBBY_API_KEY` in the environment instead — the CLI prefers th
|
|
|
45
45
|
|
|
46
46
|
## Pick an agent runtime
|
|
47
47
|
|
|
48
|
-
|
|
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):
|
|
49
49
|
|
|
50
50
|
| Agent | How to install | Auth |
|
|
51
51
|
|---|---|---|
|
|
@@ -57,4 +57,4 @@ Workflows hand off to external coding-agent CLIs at runtime. You'll need at leas
|
|
|
57
57
|
|
|
58
58
|
You only need one. The cloud runtime supports all five out of the box.
|
|
59
59
|
|
|
60
|
-
→ 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
|
|
@@ -6,13 +6,13 @@ pagination_prev: get-started/trigger-and-logs
|
|
|
6
6
|
|
|
7
7
|
# Use Zibby from Claude Code, Cursor, Codex, or Gemini
|
|
8
8
|
|
|
9
|
-
Zibby ships an MCP (Model Context Protocol) server — [`@zibby/mcp-cli`](../packages/mcp-cli). Add it once to your agent's config and Zibby becomes a first-class tool the agent can call directly from chat. Deploy
|
|
9
|
+
Zibby ships an MCP (Model Context Protocol) server — [`@zibby/mcp-cli`](../packages/mcp-cli). Add it once to your agent's config and Zibby becomes a first-class tool the agent can call directly from chat. Deploy agents, trigger runs, tail logs — all without leaving your editor.
|
|
10
10
|
|
|
11
11
|
```
|
|
12
12
|
You: Deploy the browser-test template to my Playhouse project, then run it.
|
|
13
|
-
Agent: →
|
|
14
|
-
→
|
|
15
|
-
→
|
|
13
|
+
Agent: → zibby_scaffold_agent
|
|
14
|
+
→ zibby_deploy_agent
|
|
15
|
+
→ zibby_trigger_agent
|
|
16
16
|
→ "Done. Job a23e… completed in 47s, 0 failures."
|
|
17
17
|
```
|
|
18
18
|
|
|
@@ -109,14 +109,14 @@ Login state lives in `~/.zibby/config.json` (mode `0600`) — the same file the
|
|
|
109
109
|
|
|
110
110
|
| Read-only | Write |
|
|
111
111
|
|---|---|
|
|
112
|
-
| List projects | Scaffold
|
|
113
|
-
| List official templates | Deploy
|
|
114
|
-
| List
|
|
115
|
-
| Show login status | Run
|
|
116
|
-
| Fetch logs from a run | Download a deployed
|
|
117
|
-
| Static-validate
|
|
112
|
+
| List projects | Scaffold an agent from an official template |
|
|
113
|
+
| List official templates | Deploy an agent to a project |
|
|
114
|
+
| List agents (local + remote) | Trigger a deployed agent |
|
|
115
|
+
| Show login status | Run an agent locally (debug) |
|
|
116
|
+
| Fetch logs from a run | Download a deployed agent (with explicit user confirmation) |
|
|
117
|
+
| Static-validate an agent | |
|
|
118
118
|
|
|
119
|
-
**Destructive operations stay out of the agent's hands** —
|
|
119
|
+
**Destructive operations stay out of the agent's hands** — agent delete, env-var changes, schedule mutation, and credential management require you to run `zibby` in a terminal. Two-stage authorization for anything that could surprise you.
|
|
120
120
|
|
|
121
121
|
See the [`@zibby/mcp-cli` package reference](../packages/mcp-cli) for the full tool list and security model.
|
|
122
122
|
|
|
@@ -131,22 +131,22 @@ Agent: → zibby_list_templates
|
|
|
131
131
|
- code-analysis: Jira ticket → analyze → generate code → emit tests
|
|
132
132
|
- generate-test-cases: code diff → prioritized AI-runnable test specs"
|
|
133
133
|
|
|
134
|
-
You: Scaffold generate-test-cases into a new
|
|
134
|
+
You: Scaffold generate-test-cases into a new agent called "release-tests" in my Playhouse project.
|
|
135
135
|
|
|
136
136
|
Agent: → zibby_list_projects (resolves "Playhouse" → projectId)
|
|
137
|
-
→
|
|
138
|
-
→
|
|
137
|
+
→ zibby_scaffold_agent name=release-tests template=generate-test-cases
|
|
138
|
+
→ zibby_validate_agent name=release-tests
|
|
139
139
|
"Scaffolded and validated. Ready to deploy."
|
|
140
140
|
|
|
141
141
|
You: Deploy it.
|
|
142
142
|
|
|
143
|
-
Agent: →
|
|
143
|
+
Agent: → zibby_deploy_agent name=release-tests projectId=…
|
|
144
144
|
"Deployed v1 — UUID 33039db5-2f32-4094-9841-317bc56a88c9."
|
|
145
145
|
|
|
146
146
|
You: Run it against this PR diff: ‹pastes diff›
|
|
147
147
|
|
|
148
|
-
Agent: →
|
|
149
|
-
→
|
|
148
|
+
Agent: → zibby_trigger_agent uuid=33039db5… input={diff: "...", changedFiles: [...]}
|
|
149
|
+
→ zibby_agent_logs jobId=c62e97a4… lines=100
|
|
150
150
|
"Run completed in 1m 23s. Generated 7 test specs (4 Critical, 2 High, 1 Medium)."
|
|
151
151
|
```
|
|
152
152
|
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
---
|
|
2
2
|
sidebar_position: 2
|
|
3
|
-
title: 2. Your first
|
|
3
|
+
title: 2. Your first agent
|
|
4
4
|
pagination_prev: get-started/install
|
|
5
5
|
pagination_next: get-started/run-locally
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Scaffold your first agent
|
|
9
9
|
|
|
10
|
-
An **Agent** is a deployed automation
|
|
10
|
+
An **Agent** is a deployed automation. Scaffold one with the CLI with the `zibby agent` CLI:
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
zibby agent new my-
|
|
14
|
-
# zibby
|
|
13
|
+
zibby agent new my-agent
|
|
14
|
+
# zibby agent new my-agent # alias — identical
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
This creates:
|
|
18
18
|
|
|
19
19
|
```
|
|
20
|
-
.zibby/workflows/my-
|
|
20
|
+
.zibby/workflows/my-agent/
|
|
21
21
|
├── graph.mjs # the workflow definition (entry point)
|
|
22
22
|
├── nodes/
|
|
23
23
|
│ └── example.mjs # a sample node
|
|
24
|
-
├── package.json #
|
|
24
|
+
├── package.json # agent's own deps (each agent is a self-contained npm project)
|
|
25
25
|
└── workflow.json # manifest (workflow name, entry class)
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
If `.zibby/workflows/` doesn't exist yet, the scaffold creates it. If you have a `.zibby.config.mjs` with a custom `paths.workflows`, the scaffold respects it.
|
|
29
29
|
|
|
30
|
-
The first time you run this in a fresh directory, you'll be asked where to keep
|
|
30
|
+
The first time you run this in a fresh directory, you'll be asked where to keep agents (default: `.zibby/workflows`). The CLI also runs `npm install` inside the new agent folder so deps are ready.
|
|
31
31
|
|
|
32
32
|
## What's in graph.mjs
|
|
33
33
|
|
|
@@ -64,6 +64,6 @@ The shape is:
|
|
|
64
64
|
|
|
65
65
|
## Picking the agent
|
|
66
66
|
|
|
67
|
-
Each node can specify its own agent via `agent: 'cursor' | 'claude' | 'codex' | 'gemini' | 'assistant'`. If you omit it, the
|
|
67
|
+
Each node can specify its own agent via `agent: 'cursor' | 'claude' | 'codex' | 'gemini' | 'assistant'`. If you omit it, the agent falls back to the project default (set in `.zibby.config.mjs` or `AGENT_TYPE` env var).
|
|
68
68
|
|
|
69
69
|
→ Next: [Run it locally](./run-locally)
|
|
@@ -30,7 +30,7 @@ Nodes that attach the [`gitlab` skill](../skills/index.md) get tools for repos,
|
|
|
30
30
|
|
|
31
31
|
## Reference keys (SDK / CLI)
|
|
32
32
|
|
|
33
|
-
When running
|
|
33
|
+
When running agents directly, the connector reads `GITLAB_TOKEN` (and a base URL for self-hosted instances) from the environment.
|
|
34
34
|
|
|
35
35
|
## Firewalled instances
|
|
36
36
|
|