Skip to main content
An agent is the hosted form of your repo. This page is the main publishing guide for external users publishing Python or TypeScript repos. Each agent has:
  • One stable agent URL
  • Many published versions
  • A current active version for new sessions

Publish flow

Publishing is CLI-first:
  1. Run dari deploy from a local checkout or CI workspace
  2. The CLI uploads your code and manifest-derived config
  3. Dari publishes a new agent version
  4. The stable agent URL continues pointing at the active version

What controls an agent

Each publish is driven by:
  • The repo code uploaded by dari
  • The repo-root dari.yml manifest
  • Platform-managed auth and runtime configuration
Read Manifest Reference for the repo contract.

Publishing a new version

Publishing a new version does not replace the agent itself. It creates a new agent version behind the same stable URL. That matters because:
  • New sessions use the active version at creation time
  • Existing sessions stay on the version they started on
  • The stable URL stays valid across published versions

Version and source model

Dari creates agent versions from uploaded code, not mutable branch references. That gives you:
  • Reproducible deploy inputs
  • The same publish path locally and in CI
  • A consistent publishing model across environments

CI publishing

CI uses the same publish path as local usage: run dari deploy in your CI job and inject DARI_API_KEY. Read CI Publishing for the GitHub Actions example.

Agent behavior

  • You can publish from local development or CI
  • Version history is attached to the agent
  • Existing sessions keep their original agent version
The HTTP API exposes agent resources under /agents:
  • POST https://api.dari.dev/v1/agents
  • GET https://api.dari.dev/v1/agents/{agent_id}
  • POST https://api.dari.dev/v1/agents/{agent_id}/versions
  • POST https://api.dari.dev/v1/agents/{agent_id}/sessions
Read Create Agent, Get Agent, and Publish New Version for the endpoint-level reference.