Skip to Content
We are live but in Staging 🎉
PipelinesCLI GuideOverview

Pipelines — CLI Guide

The dodil k3 CLI covers five Pipeline-domain command groups:

  • dodil k3 source — register external sources on a bucket (current CLI surface: create only)
  • dodil k3 credential — store credentials + run the OAuth flow (current CLI surface: store, oauth-url, oauth-exchange)
  • dodil k3 pipeline — full pipeline CRUD (create, list, get, update, delete)
  • dodil k3 template — browse the Scriptum template catalog (list, get)
  • dodil k3 ingest — rule lifecycle + sync triggers + job listing (rules: add, get, list, delete; jobs: jobs; triggers: trigger, trigger-discovery)

For install, auth, output format, and global flags see CLI Basics. For the underlying API contracts see Pipelines — API Reference.

Quick setup

dodil auth login

Opens a browser to log in; for non-interactive / CI use, set DODIL_SERVICE_ACCOUNT_ID + DODIL_SERVICE_ACCOUNT_SECRET (or pass --service-account-id/--service-account-secret). After login, the CLI resolves endpoint, token, and org from ~/.config/dodil/config.yaml. Most pipeline commands take --bucket / -b to scope.

CLI surface vs API surface

The CLI is leaner than the underlying API on purpose — it covers the most-common operations. Anything missing has a direct HTTP equivalent in the API Reference.

DomainAPI coverageCLI coverageUse API directly for
Sourcefull CRUD + Updateonly createget, list, update, delete — use curl against /:bucket/sources
Credentialfull CRUD + Validate + Refresh + OAuthstore, oauth-url, oauth-exchangeget, list, delete, validate, refresh — use curl against /admin/credentials
Pipelinefull CRUDfull CRUD— ✅ complete
TemplateList + Getfull — list supports server-side --category / --search / --label key=value filters— ✅ complete
Rulefull CRUDfull CRUD — add / get / list (with -p pipeline filter) / update / delete— ✅ complete
Sync / JobsTriggerIngest, TriggerDiscovery, TriggerIngestion, GetSyncStatus, ListIngestJobs, GetIngestStatustrigger, trigger-discovery, jobs (with -r rule and -p pipeline filters)TriggerIngestion (bulk replay), GetSyncStatus, server-side status_filter on jobs — use curl

Quickstart shape

A typical pipeline-domain CLI session looks like this:

# 1. Browse what's available dodil k3 template list -o json # 2. Create a pipeline targeting a destination dodil k3 pipeline create embed-docs \ -b kb-prod --scriptum text_embedding_index -o json # 3. Create an ingest rule for the internal source # (find SOURCE_ID via curl — `source list` isn't in the CLI yet) dodil k3 ingest add pdf-rule \ -b kb-prod \ --source "$SOURCE_ID" \ --collection "$PIPELINE_ID" \ --include "**/*.pdf" # 4. Upload an object — auto-triggers the pipeline dodil k3 object create ./contract.pdf -b kb-prod -k contracts/contract.pdf # 5. Watch the job dodil k3 ingest jobs -b kb-prod --pipeline-id "$PIPELINE_ID"

See Quickstart for the full end-to-end walkthrough.


See also