Skip to main content
Run any command with npx -y -p @dench.com/cli dench <command>, or dench <command> if installed globally.

CRM

objects, fields, entries, cells, query

Integrations

apps, tool status/connect/run

Memory

search, save

Browser

actions, Playwright sessions

Billing

status, topup, upgrade

API

the HTTP equivalent
Add --json to almost any command for machine-readable output.

Sign In

Context

CRM

Tasks are CRM entries on the protected task object, with shortcuts:

Comments

Threaded comments on a record; [@Name](/?member=<userId>) mentions notify, --dench summons the agent into the thread.

Analytics

The dashboard above every object table — same math the UI draws. See Analytics.

Meetings

Meetings are meeting CRM records (create/update/delete with dench crm entries … meeting). These verbs reach the transcript, action items and attendance beside the record, and import many calls at once. A meeting is private by default. You can read one if you own it, if you were on the invite, or if it has been shared with the workspace — and that is the same rule for the record, its transcript, its action items and its roster. dench meetings share is how a meeting is opened to the team; the default for your new meetings is your own setting (Settings → Personal → Meetings → My new meetings).

Members

Profiles, presence, and what each teammate is doing. <userId|email> accepts either.

Notifications

Dench Integrations

dench integrations lists every connected app: apps from the catalog plus the Gmail, Outlook, Calendar and LinkedIn accounts Dench connects itself. Each row carries source (app or dench) — only app rows have a connectedAccountId to pass to dench tool run --account. (For the App Store — installing and publishing apps — see dench apps.)

Memory

Browser

Interactive actions and Playwright/CDP sessions are covered in Browser.

Chat

Routines

dench routine and dench routines are aliases for dench cron.

Outreach Campaigns

Email and LinkedIn steps sent to a list of people on one schedule, from a brief to a launch. <campaign> is an id or an exact name. Confirm dench campaign help lists draft, search, add, steps, person and preview. Needs a workspace member’s credentials (dench signin), a paid workspace for searches and connected sender accounts.
builder is the app’s New campaign flow for signal and lookalike campaigns: save the source, audience, signals and terms, build the first people, write the sequence, choose senders, schedule and approval, then create the campaign. sources manages a live campaign’s signals: run searches now (Run now), pending, approve and reject handle people waiting for approval, and queue shows who goes out today. A search costs 1 cent per person returned and prints the most a call can cost before it runs. add --people-file adds the searched people without searching again (up to 300 per file, in batches of 50); --not-industries, --not-titles, --not-domains and the other --not-<filter> flags leave values out of a search. A campaign holds at most 300 people: duplicate copies the steps, schedule and senders into a new draft with no people, and the next page of the search goes into the copy. steps.json is a JSON array of steps (email, wait, linkedin_visit, linkedin_connection, linkedin_message). steps set replaces every step and works while the campaign is a draft; it refuses a field the step would drop and {TOKEN} with single braces (write {{TOKEN}}). steps edit changes the text and waits of a launched campaign in place and keeps every step’s type and order. --window takes "<days> <start>-<end>", e.g. "Mon-Fri 9-18" or "Mon,Wed,Fri 10-16", and may repeat. A bare --start / --end date is midnight in the campaign’s timezone. launch --check never launches: it prints each blocker in plain words with the command that fixes it and exits 1 when the campaign is blocked; launch runs the same check and then launches. get shows the funnel, what is being sent now, what comes next and why anything is holding. personalize sets up to 5 AI-written lines (about 3 cents a person) used as {{key}} in steps; preview shows the exact messages one person gets. Outreach needs a workspace member’s credentials; an organization-only API key cannot run it. Sender pools are configured once with --email-mailboxes and --linkedin-accounts (up to 50 ids per channel, comma-separated or a JSON array). Omit to preserve existing settings; none or '[]' clears a pool. These map to emailMailboxAccountIds / linkedinAccountIds in the API. Steps in a pool campaign omit sender ids; legacy step senders are kept until conversion. Only accessible accounts may be selected, launch validates availability, and existing conversations keep their assigned sender. dench campaign accounts --json lists email and LinkedIn senders with local ids and display labels, never provider credentials. Discovery follows the acting member’s permissions: their private accounts plus teammates’ shared connections. LinkedIn rows include linkedinAccountId, availability, remainingToday (invites/messages/profiles) and remainingInvitesThisWeek. Today’s invites also respect the weekly cap. Counts are account-local usage snapshots before queued work and campaign limits; launch/dispatch revalidate. For API clients, GET $DENCH_API_BASE/campaigns/accounts/linkedin returns the same LinkedIn summaries using a member-bound API key or agent session.

Files

Search And Images

--category people and --category company return structured entity data. They do not return email addresses or phone numbers. Domain filters work for company search but are refused for people search. Published-date filters are refused for both entity categories because the search does not apply them reliably.

Dench Web

Page reads, brand kits, sitemaps, crawls, screenshots, and structured extracts. Prefer these over writing your own scraper. Search stays dench search. dench context is workspace orientation, not this.
Crawl defaults to 15 pages and is hard-capped at 50.

Billing

Sessions

Session commands operate on the caller’s local machine.

Agent Config

Reusable setups and credentials

dench memory stores knowledge. It does not persist installed dependencies or API keys.
Only explicitly saved setups are reused. Package installation happens during preparation; ready jobs reuse the snapshot or prepared bundle. Credentials are workspace-shared, encrypted separately and refreshed at execution. The secure question form keeps values out of chat history. See the environment reference for the manifest, private state, rotating credentials and local preparation. The generated CLI index and API reference track the released parser and registry.