Skip to main content

Overview

Deepline CLI turns raw lead/account CSVs into action-ready outputs with repeatable, scriptable workflows.
Use one command surface to enrich rows, chain tools, and generate outreach-ready columns your team can ship immediately.

Why teams use it

  • Run deterministic enrichment pipelines over full spreadsheets, not one-off requests.
  • Chain provider lookups and AI steps into the same workflow.
  • Keep outputs in CSV/JSON so RevOps and outbound systems can consume them fast.

Command Signatures

deepline auth register [--org-name NAME] [--agent-name NAME] [--no-wait] [--browser-mode MODE]
deepline auth status [--reveal]
deepline billing --get-usage [--json]
deepline billing ledger [--limit N] [--json]
deepline billing events [--limit N] [--json]
deepline billing --set-monthly-limit CREDITS [--json]
deepline billing --off [--json]
deepline billing balance [--json]
deepline inspect <file.json> [--path PATH] [--json]
deepline provide-feedback --text "Detailed feedback message" [--json]
deepline provide-feedback "Detailed feedback message" [--json]
deepline enrich --input /path/to/file.csv --output /path/to/output.csv --with 'result=run_javascript:{"code":"return row;"}' --json
deepline playground start --csv /path/to/file.csv --open [--install]
deepline playground stop --json
deepline playground status --json
deepline playground snapshot --csv /path/to/file.csv [--rows START:END] [--json]
deepline playground run-block --csv /path/to/file.csv --col N --row-start N --row-end N [--wait] [--wait-timeout SECONDS] [--immediate] [--dry-run] [--mock] [--json]
deepline playground stop-column --csv /path/to/file.csv --col N [--json]
deepline playground jobs get --csv /path/to/file.csv --ids <id1,id2> [--json]
deepline playground jobs wait --csv /path/to/file.csv --ids <id1,id2> [--wait-timeout SECONDS] [--poll-interval SECONDS]
deepline tools list [PREFIX] [--prefix PREFIX] [--search QUERY] [--json] [--full]
deepline tools get <tool_id> [--json]
deepline tools execute <tool_id> --payload JSON [--json] [--wait] [--debug] [--wait-timeout SECONDS] [--poll-interval SECONDS] [--timeout SECONDS] [--connect-timeout SECONDS]

Command Families

FamilySignatures
authdeepline auth register [—org-name NAME] [—agent-name NAME] [—no-wait] [—browser-mode MODE]
deepline auth status [—reveal]
billingdeepline billing —get-usage [—json]
deepline billing ledger [—limit N] [—json]
deepline billing events [—limit N] [—json]
deepline billing —set-monthly-limit CREDITS [—json]
deepline billing —off [—json]
deepline billing balance [—json]
enrichdeepline enrich —input /path/to/file.csv —output /path/to/output.csv —with ‘result=run_javascript:{“code”:“return row;”}’ —json
inspectdeepline inspect <file.json> [—path PATH] [—json]
playgrounddeepline playground start —csv /path/to/file.csv —open [—install]
deepline playground stop —json
deepline playground status —json
deepline playground snapshot —csv /path/to/file.csv [—rows START:END] [—json]
deepline playground run-block —csv /path/to/file.csv —col N —row-start N —row-end N [—wait] [—wait-timeout SECONDS] [—immediate] [—dry-run] [—mock] [—json]
deepline playground stop-column —csv /path/to/file.csv —col N [—json]
deepline playground jobs get —csv /path/to/file.csv —ids <id1,id2> [—json]
deepline playground jobs wait —csv /path/to/file.csv —ids <id1,id2> [—wait-timeout SECONDS] [—poll-interval SECONDS]
provide-feedbackdeepline provide-feedback —text “Detailed feedback message” [—json]
deepline provide-feedback “Detailed feedback message” [—json]
toolsdeepline tools list [PREFIX] [—prefix PREFIX] [—search QUERY] [—json] [—full]
deepline tools get <tool_id> [—json]
deepline tools execute <tool_id> —payload JSON [—json] [—wait] [—debug] [—wait-timeout SECONDS] [—poll-interval SECONDS] [—timeout SECONDS] [—connect-timeout SECONDS]

Global Flags

OptionDescription
--timeout SECONDSRequest timeout.
--waitWait for terminal status (apify_run_actor only).
--debugWait mode plus log tail/status updates (apify_run_actor only).
--wait-timeout SECONDSMax seconds to wait in —wait mode (default: 300).
--poll-interval SECONDSPoll interval in —wait mode (default: 2).
--retry COUNTRetry count for transient network failures.

Enrich Pipeline Concepts

deepline enrich --input leads.csv --with 'email=leadmagic_email_finder:{"first_name":"{{First Name}}","last_name":"{{Last Name}}","domain":"{{Company Domain}}"}' --dry-run --rows 0:1 --json
—with spec format: <column>=<tool_ref>:{json_payload}
OptionDescription
--input PATHSource CSV path (immutable input).
--output PATHDestination CSV path to write enrich results.
--with SPECEnrichment spec. Repeatable.
--with-waterfall NAMEStart/enable waterfall grouping for subsequent —with specs.
--target TARGETOptional waterfall target for the active —with-waterfall block.
--result-getters JSONOptional JSON array of getter paths scoped to current waterfall block.
--end-waterfallStop waterfall grouping for subsequent —with specs.
--rows START:ENDRun rows in inclusive range (e.g. 0:49).
--allRun all rows. Default when —rows is not provided.
--dry-runValidate payloads/types and print sample + ASCII preview without execution.
--jsonPrint compact machine-readable result summary.
--helpShow this help.

Waterfall Enrichment

Use waterfalls when you want fallback providers for the same output column, in priority order. Deepline Playground
Each waterfall block groups multiple --with steps into one target output. Deepline keeps the first successful result.

Company enrichment waterfall

deepline enrich \
  --input accounts.csv \
  --output accounts.enriched.csv \
  --with-waterfall company \
  --with 'company=apollo_company_search:{"q_organization_domains_list":["{{domain}}"],"per_page":1}' \
  --with 'company=peopledatalabs_company_search:{"query":{"term":{"website":"{{domain}}"}}}' \
  --result-getters '["data.organizations.0","data.companies.0"]' \
  --end-waterfall \
  --json

Contact enrichment waterfall

deepline enrich \
  --input contacts.csv \
  --output contacts.enriched.csv \
  --with-waterfall person \
  --with 'person=apollo_people_search:{"q_keywords":"{{email}}","per_page":1}' \
  --with 'person=peopledatalabs_person_search:{"query":{"bool":{"must":[{"term":{"email":"{{email}}"}}]}}}' \
  --result-getters '["data.people.0","data.records.0"]' \
  --end-waterfall \
  --json

Starter Agent Prompts

Claude: /gtm-meta-skill Enrich 5 leads, then generate targeted messaging from the enriched output.
Codex: /gtm-meta-skill Find 5 ICP accounts, enrich contacts, and return personalized first lines.