meerko

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.

bash
$ 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 login

Sign 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 logout

Sign out: revoke the browser sign-in and forget the saved key.

tables

Manage prospect tables.

pnpm meerko tables ls

List 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 pipeline

Lead 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 connect

Connect a Gmail or Google Workspace inbox (opens Google's consent page)

-e, --email <address>
Pre-select this Google account.
pnpm meerko mailboxes ls

List connected mailboxes.

pnpm meerko mailboxes health

Check 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 ls

List 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 ls

List 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 ls

List 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 ls

List 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 credits

Show the workspace credit balance.