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
Approvals
request, approve, reject
Memory
search, save
Browser
actions, Playwright sessions
Billing
status, topup, upgrade
API
the HTTP equivalent
Sign In
Context
CRM
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 aremeeting 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.
Members
Profiles, presence, and what each teammate is doing.<userId|email> accepts either.
Notifications
Approval Commands
Dench Integrations
dench integrations lists every connected app: Composio apps plus the Gmail,
Outlook, Calendar and LinkedIn accounts Dench connects itself. Each row carries
source (composio or unipile) — only composio rows have a
connectedAccountId to pass to dench tool run --account.
(For the App Store — installing and publishing apps — see dench apps.)
Memory
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.<campaign>
is an id or an exact name.
steps.json is a JSON array of steps (email, wait, linkedin_visit,
linkedin_connection, linkedin_message); steps can only change while the
campaign is a draft. --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 checks
readiness first and prints each blocker in plain words. get shows the
funnel, what is being sent now, what comes next and why anything is holding.
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 /v1/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 Exa 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 staysdench search. dench context is workspace orientation, not this.