From Modjo CLI
Use when querying Modjo data (calls, deals, accounts, contacts, users, teams) or asking AI questions about a call/deal/account via the `modjo` CLI. Covers the correct flags, the numeric-ID-vs-name gotcha, and efficient --json/--jq idioms so commands work first try.
How this skill is triggered — by the user, by Claude, or both
Slash command
/modjo-cli:modjo-cliThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`modjo` wraps the Modjo REST API v2 and MCP server. Output is a human table on a
modjo CLI efficientlymodjo wraps the Modjo REST API v2 and MCP server. Output is a human table on a
TTY and JSON when piped, so in scripts/agents you almost always want --json.
--account, --deal,
--user want the API's numeric id (e.g. 4551), not a Salesforce CRM id
(001ABC…). Resolve a name → numeric id first (see Recipes).--json (+ --jq) for a single value. Don't parse
tables. modjo deals list --json --jq '.[0].id' beats reading a table.ask is for AI questions; list/get are for data. Use modjo ask call|deal|account <id> "<question>" for natural-language analysis. Use
list/get/api to fetch records.Token resolves: --api-key/--token flag → MODJO_API_KEY/MODJO_TOKEN env →
stored credential. Quickest for scripting:
export MODJO_API_KEY=mjo_live_xxx
modjo doctor # verify connectivity + credentials
If credentials were saved with MODJO_NO_KEYRING=1, keep that env var set so
later commands read the same (file) store. modjo info --json shows the
resolved profile, base URL, MCP URL, and auth status.
| Command | Key flags |
|---|---|
calls list | --account/--deal/--user (numeric), --since/--until (YYYY-MM-DD or 30d), --expand contacts,deal,account,users |
calls get <id> | --expand … |
calls transcript <id> | --speakers, --timestamps |
calls summary <id> | (pre-generated AI summaries) |
deals list | --name, --account (numeric), --status open|won|lost|closed |
accounts list | --name |
contacts list | --name |
users list | --email (exact match only) |
users create | --first-name --last-name --email required; optional --role --job-title --job-department --phone --timezone |
tags list / topics list / teams list / webhooks list | paging only |
ask call|deal|account <id> "<q>" | --language; prints prose, add --json for structured |
api <METHOD> <path> | --param k=v (repeatable), --field k=v (body), --paginate, --input - |
Global flags worth knowing: --json (force JSON), --jq '<filter>'
(built-in gojq, no external jq), --limit N, --all (auto-paginate every
page), --columns a,b, --profile <name>, -o table|json|csv|tsv|yaml.
Resolve a name to the numeric id you need for filtering:
# account name -> numeric id
acct=$(modjo accounts list --name "Contoso" --json --jq '.[0].id')
modjo calls list --account "$acct" --since 30d --json
Pull one field instead of a whole table:
modjo deals list --status open --json --jq '.[] | {id, name, amount}'
modjo calls list --json --jq '.[0].id'
Export every page (not just the default limit) to CSV:
modjo calls list --account "$acct" --all -o csv > calls.csv
Ask an AI question about a specific record (find the id first):
call=$(modjo calls list --account "$acct" --json --jq '.[0].id')
modjo ask call "$call" "What are the risks and the single best next step?"
# add --json to get {answer, entity, type}
Raw escape hatch for anything the typed commands don't cover:
modjo api GET /calls --param "size=50" --param "expand=deal,account" --paginate
--help. A common failure
is burning turns trying to awk/grep the flags out of modjo <cmd> --help
in a pipeline and getting empty results from a quoting/anchor mistake. The
flags you need are in this skill. If you must confirm, run modjo <cmd> --help and read the plain output directly — it's clean UTF-8 on stdout,
no ANSI codes, no CRLF, so it needs no post-processing.--contact on calls list, no
--amount-min on deals list, no --name/--role on users list (only
--email). When unsure, run modjo <cmd> --help once — it's accurate.--account/--deal/--user — they want numeric
ids. Resolve via a list --name … --json --jq '.[0].id' first.--json --jq.users list can't search by name — only exact --email. To find a user
by name, modjo users list --json --jq '.[] | select(.name|test("…";"i"))'.emails or agents command (the public API has neither).3 auth, 4 forbidden, 5 not-found, 6 rate
limited, 7 validation, 8 upstream, 124 timeout — branch on these.Endpoints resolve flag → env → profile → default. To hit staging:
modjo --profile modjo-internal …, or set MODJO_BASE_URL/MODJO_MCP_URL.
modjo info shows what's currently resolved.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub tdeschamps/modjo-cli --plugin modjo-cli