> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paradime.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Triggering from Bolt

> Run a DinoAI Programmable Agent from a Bolt schedule on cron, after another schedule, on PR merge, or in Turbo CI. Runs natively with no API keys required.

A Programmable Agent can be invoked in two ways:

* **From the Paradime API** — using `triggerDinoaiAgentRun`. See API Reference.
* **From a Bolt schedule** — using the **Run Paradime DinoAI Agent** command type. This page.

Use Bolt when you want the agent to run on a **cron schedule**, **after another schedule completes**, on a **PR merge**, or as part of a Turbo CI run. Use the API when you want to embed agent runs in a workflow you orchestrate yourself (Airflow, Lambda, webhooks, etc.).

***

#### Prerequisites

* A programmable agent definition, either committed to your repository under `.dinoai/agents/<name>.yml` (see YAML Configuration) or built in the app from the Agents page (see [Creating Agents in the App](/products/dino-ai/programmable-agents/creating-agents-in-the-app)).

<Info>
  **No API keys required.** Bolt runs the agent natively inside your workspace, so there are no credentials to configure on the schedule. Existing schedules that still set `PARADIME_API_ENDPOINT`, `PARADIME_API_KEY`, `PARADIME_API_SECRET`, or `PARADIME_WORKSPACE_UID` as environment variables keep working unchanged, and you can safely remove those variables. API keys are only needed when you trigger agents from outside Paradime (API, SDK, or CLI).
</Info>

***

#### Option 1 — Configure from the Bolt UI

In the Bolt schedule editor, click **Add command** and pick **Run Paradime DinoAI Agent**:

1. **Agent Name** — pick the agent from the dropdown. The list includes agents from `.dinoai/agents/*.yml` on the configured git branch as well as agents built in the app.
2. **Task** — describe the task you want the agent to complete. This becomes the agent's opening user message.
3. **Save Command**, then configure the trigger type (cron, on-merge, on-completion, etc.) and deploy.

<Tip>
  You can also start from the agent itself: on the Agents page, hover an agent card and click **Schedule**. This opens a new Bolt schedule with the **Run Paradime DinoAI Agent** command already added and the agent pre-selected, so you only need to write the task.
</Tip>

See the full UI walkthrough at Bolt Command Settings → Run Paradime DinoAI Agent.

***

#### Option 2 — Configure from schedules-as-code YAML

The UI just writes a `paradime dinoai` CLI invocation into the schedule's `commands:` list. If you manage your Bolt schedules with YAML, add the same command directly:

```yaml theme={"system"}
schedules:
  - name: nightly data quality
    slug: nightly-data-quality-f6g7h8
    description: "Nightly DinoAI sweep over staging models"
    owner_email: data-team@acme.io
    environment: production
    git_branch: main
    commands:
      - paradime dinoai --agent=data-quality-checker --message="Audit all staging models for missing tests and post a summary to the data-quality-alerts Slack channel"
    schedule: "0 2 * * *"
    timezone: UTC
```

The arguments mirror the UI fields:

| UI field   | CLI flag             | Notes                                                                                                                   |
| ---------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Agent Name | `--agent=<name>`     | Must match an existing agent: a `.dinoai/agents/<name>.yml` on the schedule's git branch, or an agent built in the app. |
| Task       | `--message="<task>"` | The agent's opening user message. Use a single quoted string; both single- and double-quotes are valid.                 |

See Configuration Reference for the full schedule YAML schema.

***

#### Lifecycle of a Bolt-triggered run

The command runs natively inside Paradime: when the trigger fires, Bolt dispatches the agent run directly, without going through the public API or authenticating with API keys.

```mermaid theme={"system"}
sequenceDiagram
    participant B as Bolt run
    participant P as Agent session

    B->>P: Dispatch agent run (native, no API keys)
    loop while the agent works
        P-->>B: messages stream into the command log
    end
    P-->>B: COMPLETED / FAILED
```

* **Fresh session per run.** Each Bolt run starts a **new** agent session, there is no continuity from one schedule run to the next. Use the API with `sendDinoaiAgentMessage` if you need multi-turn continuity.
* **Bolt waits for the agent.** The command blocks until the agent reaches a terminal state (`COMPLETED` or `FAILED`), with a 1 hour timeout, and the Bolt run inherits the agent's success/failure.
* **Logs.** The agent's messages stream into the Bolt command's stdout, so they show up in the Bolt run logs (and in the live log stream when polled via the SDK).
* **Session attribution.** Runs started from a schedule appear under the **Bolt** source in the [agent sessions panel](/products/dino-ai/programmable-agents/agent-sessions), not under API, so you can tell scheduled runs apart from programmatic ones.
* **Notifications.** Slack notifications configured inside the agent YAML still fire, independently from any Bolt notifications configured on the schedule itself.

#### Related

* [Bolt Command Settings → Run Paradime DinoAI Agent — UI walkthrough](/products/bolt/creating-schedules/command-settings/paradime-dinoai-agent-trigger)
* [Schedules as Code → Configuration Reference — full YAML schedule schema](/products/bolt/creating-schedules/schedules-as-code/index)
* [API Reference — invoking agents via GraphQL](/developers/graphql-api/api-reference/dinoai-programmable-agents-api)
* [API Reference — invoking agents via Paradime SDK](/developers/python-sdk/modules/dinoai-programmable-agents)
* [API Reference — invoking agents via Paradime CLI](/developers/paradime-cli/dinoai-cli)
* [YAML Configuration — authoring the agent itself](/products/dino-ai/programmable-agents/yaml-configuration)
* [Tools Reference — what the agent can do once it's running](/products/dino-ai/programmable-agents/tools-reference)


## Related topics

- [Triggering from the API](/products/dino-ai/programmable-agents/api-reference.md)
- [Bolt API and schedule trigger errors](/get-help/error-list/bolt-api-and-schedule-trigger-errors.md)
- [Configuration Reference](/products/bolt/creating-schedules/schedules-as-code/configuration-reference.md)
- [Bolt runs agents natively, no API keys](/changelog/2026-08-05/bolt-runs-agents-natively.md)
- [Agent Sessions](/products/dino-ai/programmable-agents/agent-sessions.md)
