CLI Commands
allman login
Section titled “allman login”Authenticate with LinkedIn. Opens a headed Chromium browser.
allman loginallman login --account your-accountallman login --proxy host:portallman login --proxy host:port:username:passwordOn success, writes AUTH.json and COOKIES.json to the store.
| Flag | Description |
|---|---|
--account <slug> | Account name to create or re-authenticate |
--proxy <host:port[:user:pass]> | HTTP proxy for this account |
allman logout
Section titled “allman logout”Clear session cookies for an account. Does not delete message history.
allman logoutallman logout --account your-accountallman status
Section titled “allman status”Show authentication status for one or all accounts.
allman statusallman status --jsonallman start
Section titled “allman start”Verify auth (login if needed), sync, then run listen indefinitely. Designed as a single entrypoint.
allman startallman sync
Section titled “allman sync”Pull conversation history from LinkedIn into the local store.
allman sync # since last syncallman sync --since 3mo # from 3 months agoallman sync --since 2025-01-01 # from a specific dateallman sync jamie-rivera # sync one conversationallman sync --resync # full re-sync (upserts all messages)| Flag | Description |
|---|---|
[conversation] | Sync a single conversation (slug, profileId, or convId) |
--since <duration|date> | Duration (1h, 3d, 1w, 3mo, 1y) or ISO date |
--resync | Full re-sync: upsert all fetched messages |
allman listen
Section titled “allman listen”Stream real-time LinkedIn events to stdout as NDJSON.
allman listenallman listen | while read -r event; do echo "$event"; doneEvent types:
| Event | Description |
|---|---|
connected | SSE connection established |
heartbeat | Keep-alive (every 60s) |
message.received | Inbound message |
message.sent | Outbound message echo |
typing | Contact is typing |
read_receipt | Contact read a message |
reaction | Reaction added or removed |
allman conversations
Section titled “allman conversations”List conversations from the local store, sorted by most recent activity. Alias: convs.
allman conversationsallman conversations --limit 20allman conversations --json| Flag | Default | Description |
|---|---|---|
-n, --limit <n> | 50 | Max conversations |
allman messages <conversation>
Section titled “allman messages <conversation>”Show messages for a conversation. Auto-syncs if stale. Alias: msgs.
allman messages jamie-riveraallman messages jamie-rivera --limit 100allman messages jamie-rivera --since 2025-01-01allman messages "https://www.linkedin.com/in/jamie-rivera"allman messages jamie-rivera --no-syncThe <conversation> argument accepts a LinkedIn slug, profile URL, or conversation URN.
| Flag | Default | Description |
|---|---|---|
-n, --limit <n> | 50 | Max messages |
--since <date> | — | ISO date filter |
--no-sync | — | Skip auto-sync |
allman send <to> <text>
Section titled “allman send <to> <text>”Send a message to a LinkedIn contact.
allman send jamie-rivera "Hey, how are you?"allman send "https://www.linkedin.com/in/jamie-rivera" "Hello!"Behavior:
- Pre-send sync: aborts if new inbound messages arrived since your last reply
- New conversations: starts a new thread if no existing one is found
- Rate limiting: minimum 3000ms between sends (configurable)
allman search <query>
Section titled “allman search <query>”Search contacts by name, slug, or profile ID. Fuzzy matching with confidence scores.
allman search "jamie"allman search "jen moo" # matches "Jennifer Moore"allman search --json "jamie"| Score | Match type |
|---|---|
| 100 | Exact slug or profile ID |
| 95 | Exact name (case-insensitive) |
| 80 | Name starts with query |
| 70 | Word-start match ("jen moo" → "Jennifer Moore") |
| 60 | Substring match |
allman inbox
Section titled “allman inbox”Show new messages since the last time inbox was run (watermark-based).
allman inboxallman inbox --since 1hallman inbox --no-mark # don't advance the watermarkallman inbox --json| Flag | Description |
|---|---|
--since <duration|date> | Override watermark |
--no-mark | Don’t advance the watermark |
-n, --limit <n> | Max conversations |
allman grep <query>
Section titled “allman grep <query>”Full-text search across all locally stored message bodies.
allman grep "project proposal"allman grep "contract" --since 3moallman grep "invoice" --json| Flag | Default | Description |
|---|---|---|
--since <duration|date> | — | Date filter |
-n, --limit <n> | 50 | Max results |
allman store
Section titled “allman store”Manage the local file store.
allman store path # print the store pathallman store status # show account and conversation countsallman store commit "message" # manual git commitallman install-browsers
Section titled “allman install-browsers”Install Playwright’s Chromium browser (required for allman login).
allman install-browsers