← nondual

CLI

Run commands directly from your terminal. No config file needed to start — just npx nondual init.

Install

# use without installing
npx nondual <command>

# or install globally
npm install -g nondual

nondual init

Store your API key in ~/.nondual. All subsequent commands read it from there.

npx nondual init
# Prompts: Enter your API key: nd_live_...
# Saved to ~/.nondual

nondual resolve <email>

Resolve an email to a full contact profile. Returns name, role, company, verified profiles (LinkedIn, GitHub, website), a written summary, and a recommended next step.

npx nondual resolve dario@anthropic.com

# name       Dario Amodei
# role       Co-Founder & CEO
# company    Anthropic
# linkedin   https://linkedin.com/in/darioamodei
# github     darioamodei
# summary    Co-founder and CEO of Anthropic...
# next       Reach out via LinkedIn with a note about AI safety.
FlagDescription
--jsonRaw JSON output

nondual context <email>

Get relationship context for a contact. Returns full interaction history across all your agents, open follow-ups, and recommended next action. Call this before any outreach.

npx nondual context dario@anthropic.com

# profile    Dario Amodei · Co-Founder & CEO · Anthropic
# history    2 interactions from your agents
#   agent_sales  email · 6 days ago  Sent intro re: partnership
#   agent_exec   call  · 3 days ago  15-min call, discussed use case
# followups  1 open
#   Follow up with a concrete proposal (due 2026-07-25)
# next       Follow up with a concrete proposal.
FlagDescription
--purpose <text>Reason for reaching out — improves the next-step recommendation
--jsonRaw JSON output

nondual record <email>

Record an interaction after any outreach. Your agent name is stored with the interaction so history is attributed correctly.

npx nondual record dario@anthropic.com \
  --channel email \
  --direction outbound \
  --summary "Sent intro about partnership opportunities" \
  --agent my-sales-agent

# Recorded interaction for dario@anthropic.com
FlagRequiredValuesDescription
--channelyesemail call linkedin slack meeting sms otherCommunication channel
--directionyesinbound outboundWho initiated
--summaryyesstringWhat happened
--agentnostringAgent name (defaults to cli)

nondual followup <email>

Create a follow-up task for a contact.

npx nondual followup dario@anthropic.com \
  --action "Follow up with proposal" \
  --due 2026-07-25

# Follow-up created for dario@anthropic.com
# action: Follow up with proposal
# due:    2026-07-25
FlagRequiredDescription
--actionyesWhat to do
--duenoISO date (YYYY-MM-DD)
--agentnoAgent name

nondual whoami

Show the active key and workspace.

npx nondual whoami

# Email:  you@example.com
# Key:    nd_12cb94...
# Source: ~/.nondual/config.json