Reference
CLI
Everything Meerko does, from your terminal or a script: 37 commands. This page is generated from the CLI itself, so it matches the version in the repo.
Docs menu
Set up
The CLI runs from a clone of the repo (Node 20+ and pnpm). Log in once: your browser opens, you continue with Google and click Allow. The sign-in is saved to ~/.meerko/config.json, readable only by you, and renews on its own.
$ git clone https://github.com/iker-gonzalez/meerko.ai ~/meerko && cd ~/meerko && pnpm install$ pnpm meerko login --url https://api.meerko.ai
Without --url it uses http://localhost:8787, a self-hosted API on this machine. On a server without Google sign-in, log in with an API key instead: --key mk_…. The MEERKO_API_KEY and MEERKO_API_URL environment variables override the saved login. pnpm meerko logout signs out.
JSON output
Add --json before the command for machine-readable output, handy for scripts and agents: pnpm meerko --json tables ls.
login
pnpm meerko loginSign in with your browser (or an API key) and save it to ~/.meerko/config.json.
- --key <apiKey>
- Use an API key instead of the browser (starts with mk_)
- --url <apiUrl>
- API URL. Default http://localhost:8787.
logout
pnpm meerko logoutSign out: revoke the browser sign-in and forget the saved key.
tables
Manage prospect tables.
pnpm meerko tables lsList tables.
pnpm meerko tables create <name>Create a table.
pnpm meerko tables add-column <tableId> <name>Add a column.
- -t, --type <type>
- Text | number | email | url | boolean | json. Default text.
- -p, --prompt <prompt>
- Make it an AI column: an instruction your agent answers per row ({{column_key}} inserts values)
pnpm meerko tables import <tableId> <file>Import rows from a CSV (with header row) or a JSON array file.
pnpm meerko tables rows <tableId>List rows, optionally filtered.
- -f, --filter <json>
- Exact-match filter, e.g. '{"country":"Spain"}'.
- -l, --limit <n>
- Max rows. Default 50.
- -o, --offset <n>
- Rows to skip. Default 0.
- -s, --stage <stage>
- Only rows at this pipeline stage (new, contacted, replied, meeting, won, lost)
pnpm meerko tables pending <tableId> <column>Print rows whose AI column is still empty, with the instruction rendered per row (JSON)
- -l, --limit <n>
- Max rows. Default 25.
pnpm meerko tables update <tableId> <file>Merge values into rows from a JSON file: [{ "id": "<rowId>", "data": { ... } }].
pnpm meerko tables stage <tableId> <stage> <rowIds...>Move rows to a pipeline stage: new | contacted | replied | meeting | won | lost.
pipeline
pnpm meerko pipelineLead counts per stage.
- -t, --table <tableId>
- Only this table.
find
pnpm meerko find <kind>Search Icypeas for people or companies and save the results to a table.
- -q, --query <json>
- Filters, e.g. '{"currentJobTitle":{"include":["CTO"]},"location":{"include":["ES"]}}'. Required.
- -l, --limit <n>
- Max results to fetch (costs credits) Default 25.
- -t, --table <tableId>
- Append to an existing table.
- -n, --name <tableName>
- Name for the new table.
- -c, --count
- Only count matches (free)
enrich
pnpm meerko enrich <tableId>Find and verify emails for rows that don't have them yet.
- --fields <list>
- Comma-separated: email, email_verification. Default email,email_verification.
- -f, --filter <json>
- Only enrich rows matching this exact-match filter.
- -l, --limit <n>
- Rows per batch (max 50) Default 25.
- --all
- Keep going in batches until no rows remain.
- --overwrite
- Re-run rows that already have a result.
mailboxes
Connect the inboxes Meerko sends from.
pnpm meerko mailboxes connectConnect a Gmail or Google Workspace inbox (opens Google's consent page)
- -e, --email <address>
- Pre-select this Google account.
pnpm meerko mailboxes lsList connected mailboxes.
pnpm meerko mailboxes healthCheck SPF, DKIM and DMARC for every domain you send from.
pnpm meerko mailboxes set <mailboxId>Change a mailbox's daily send limit, sender name or ramp.
- --daily-limit <n>
- Max emails per day from this mailbox.
- --name <displayName>
- Sender name shown to recipients, e.g. "Pia from Slalom".
- --ramp
- Restart the 21-day ramp from today (new mailboxes ramp automatically)
- --no-ramp
- Send at the full daily limit now.
pnpm meerko mailboxes test <mailboxId>Send a test email to check the connection.
- --to <address>
- Recipient. Required.
pnpm meerko mailboxes rm <mailboxId>Disconnect a mailbox.
sequences
Multi-step email sequences sent from your mailbox.
pnpm meerko sequences lsList sequences.
pnpm meerko sequences create <tableId> <file>Create a draft sequence from JSON: {"name","mailbox_ids":[…],"steps":[{"subject","body"},{"body","delay_days"}]}.
pnpm meerko sequences preview <sequenceId>Render every step for one row (the first by default)
- -r, --row <rowId>
- Row to render.
pnpm meerko sequences enroll <sequenceId>Enroll rows from the sequence's table (rows that are unsafe to email are skipped)
- -f, --filter <json>
- Only rows matching this exact-match filter.
- -l, --limit <n>
- Max rows.
pnpm meerko sequences start <sequenceId>Start sending (within the send window, respecting mailbox limits)
pnpm meerko sequences pause <sequenceId>Stop sending until started again.
pnpm meerko sequences stats <sequenceId>Enrollment states, emails sent and reply rate.
pnpm meerko sequences pool <sequenceId>The mailboxes a sequence sends from, with today's sends and leads per mailbox.
replies
Replies to your sequences.
pnpm meerko replies lsList unclassified replies (newest first)
- -s, --sequence <id>
- Only this sequence.
- -i, --intent <intent>
- Only this intent (interested, not_interested, not_now, question, referral, wrong_person, other)
- -a, --all
- Include classified replies, out-of-office, bounces and unsubscribes.
- -l, --limit <n>
- Max replies. Default 25.
pnpm meerko replies classify <replyId> <intent>Set a reply's intent: interested | not_interested | not_now | question | referral | wrong_person | other.
- --done
- Also mark it handled.
pnpm meerko replies draft <replyId> <file>Save a draft answer to a reply from a text file (nothing is sent until approved)
drafts
Answers to replies, waiting for your approval.
pnpm meerko drafts lsList pending drafts with the reply they answer.
pnpm meerko drafts approve <draftId>Send the draft as a reply in the same thread.
- -f, --file <file>
- Send this edited text instead of the draft.
pnpm meerko drafts discard <draftId>Throw a draft away.
keys
Bring your own provider keys (calls through them cost no credits)
pnpm meerko keys lsList stored provider keys.
pnpm meerko keys set <provider> <key>Store a provider key (supported: icypeas). It's checked with the provider first.
pnpm meerko keys rm <provider>Remove a stored provider key.
credits
pnpm meerko creditsShow the workspace credit balance.