A GitHub Action to interact with your Dust workspace.
Syncs Agent Skills from the repository to Dust. Finds SKILL.md files, packages
their directories into a ZIP, and uploads it.
- uses: dust-tt/dust-github-action@v1
with:
method: upsert-skills
workspace-id: ${{ vars.DUST_WORKSPACE_ID }}
api-key: ${{ secrets.DUST_API_KEY }}
region: EUUpserts agent configurations from YAML files in the repository to Dust. Searches for existing agents by handle — updates them if found, creates new ones otherwise.
- uses: dust-tt/dust-github-action@v1
with:
method: upsert-agent-configs
workspace-id: ${{ vars.DUST_WORKSPACE_ID }}
api-key: ${{ secrets.DUST_API_KEY }}
region: EU
agent-configs: |
configs/agent-*.yaml
agent-*.ymlThe agent-configs input accepts a newline-separated list of glob patterns matching YAML agent configuration files.
Each YAML file must include at minimum an agent.handle field. See Agent config format below.
| Input | Required | Description |
|---|---|---|
method |
yes | Action to perform (upsert-skills or upsert-agent-configs) |
workspace-id |
yes | Dust workspace sId |
api-key |
yes | Dust API key |
region |
yes | Workspace region (EU or US) |
agent-configs |
no | [upsert-agent-configs] List of glob patterns for YAML agent config files |
| Output | Description |
|---|---|
json |
Raw JSON response from the Dust API (includes imported, updated, errored arrays) |
imported |
Number of newly created agents |
updated |
Number of updated agents |
name: Sync Skills to Dust
on:
push:
branches: [ main ]
paths:
- "skills/**"
workflow_dispatch:
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Sync skills
uses: dust-tt/dust-github-action@v1
with:
method: upsert-skills
workspace-id: ${{ vars.DUST_WORKSPACE_ID }}
api-key: ${{ secrets.DUST_API_KEY }}
region: EUname: Sync Agent Configs to Dust
on:
push:
branches: [ main ]
paths:
- "agents/**"
workflow_dispatch:
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Sync agent configs
uses: dust-tt/dust-github-action@v1
with:
method: upsert-agent-configs
workspace-id: ${{ vars.DUST_WORKSPACE_ID }}
api-key: ${{ secrets.DUST_API_KEY }}
region: EU
agent-configs: |
agents/*.yamlEach skill lives in its own directory with a SKILL.md file (spec):
skills/
review-pr/
SKILL.md
template.md # optional attachment
summarize/
SKILL.md
SKILL.md uses YAML frontmatter for metadata and the body as instructions:
---
name: Review PR
description: Reviews pull requests for code quality and correctness
---
You are a code reviewer. When asked to review a PR, analyze the diff for:
- Correctness
- Performance
- SecurityEach agent configuration lives in a single YAML file. At minimum, an agent.handle field is required. Example:
agent:
handle: MyAssistant
description: A helpful assistant for my team
instructions: You are a helpful assistant.
scope: visible
max_steps_per_run: 64
visualization_enabled: false
avatar_url: https://dust.tt/static/emojis/bg-yellow-200/memo/1f4dd
generation_settings:
provider_id: anthropic
model_id: claude-sonnet-4-5
temperature: 0.7
reasoning_effort: light
editors:
- alice@example.com
- bob@example.com
tags: [ ]
toolset: [ ]npm install
npm run build # compiles to dist/ via @vercel/ncc
npm run check # type-check with tsc
npm test # run testsdist/ is gitignored and built automatically on release via the publish workflow.