EarShots.dev
Open navigation

Docs

CLI

The EarShots CLI is built for people and agents who live in a terminal. It talks to the same MCP server your AI client uses, so what you can do in the app you can script, and nothing it does can post in public.

Install

npm install -g @earshotsdev/cli

Node 20 or newer. No other dependencies. To try it without installing, run npx @earshotsdev/cli login.

Sign in

earshots login
earshots whoami

Login opens your browser, you approve the CLI once with your normal account, and the token comes back to a local port. The session is written to ~/.earshots/session.json with owner-only permissions (0700 directory, 0600 file) and refreshes itself. Run earshots logout to remove it.

Everyday use

  1. 1

    See what is waiting

    earshots insights
  2. 2

    Read the open questions

    earshots mentions --track answer --status open --limit 10
  3. 3

    Open one post in full

    earshots show m_01h9
  4. 4

    Save a draft for the team to approve

    earshots draft m_01h9 "Here is the flag that fixes this, and the doc page it lives on."
    
    # or pipe it
    cat reply.md | earshots draft m_01h9

Commands

earshots contacts

Repository CLI: read saved Listen Enrich contacts with --search, --network, --cursor and --limit.

earshots enrich

Repository CLI: estimate with --url or --contact-id, explicitly confirm with --confirm --quote-id --idempotency-key, and poll with --request-id. Updated npm release pending.

earshots login

Opens your browser, you approve once, the session is stored in ~/.earshots.

earshots whoami

Who you are signed in as, and which host you are pointed at.

earshots workspaces

Your workspaces, plan, and which one is active.

earshots insights

Counts by track, what is waiting on you, and recurring themes.

earshots mentions

List posts. Filter with --track, --status, --channel, --query, --limit.

earshots show <id>

One post in full, with reasoning, citations, and any saved draft.

earshots ticket <id> --target linear

One post as a Linear, Jira, or Markdown ticket. Pipe the payload to your own ticket tool.

earshots sources

Connected sources, their terms, last refresh, and any error.

earshots buzz

Context Buzz. What developers build with your product and what blocks them. Use --view usage or --view blockers.

earshots competitors

Competitor Signal. Likes, dislikes, and recent signals. Filter with --competitor <name>. Every paid plan.

earshots stats

Volume by day, channel, and track, drafts waiting, replies sent. Set the window with --days.

earshots launch

Launch Reactions. The release you are watching, its window, the reaction tally, and linked posts. Use --launch <id> for a specific one. Growth and Enterprise plans.

earshots alerts

Buying signals, friction, and urgent posts heard since a time. Set it with --since, for example 1h or 1d.

earshots report

The Voice of the Customer report: sentiment, tracks, topics, channels, and the posts behind them. Set the window with --days.

earshots reply <id>

Ears writes a reply grounded in your docs and Knowledge Hub and saves it as a draft for review.

earshots draft <id>

Save a draft reply. Use --body or pipe the text on stdin.

earshots tools

List the tools the server exposes.

earshots call <tool>

Call any tool with raw JSON arguments.

Built for agents

Output is JSON whenever it is piped or when you pass --json, so a script or an agent never has to parse a table. Add --compact for single line JSON. Exit code 0 means success, 1 means the request failed, 2 means you are not signed in.

earshots mentions --track friction --json | jq '.mentions[].title'

Every command maps to one MCP tool, so an agent can start with the CLI and later point at the MCP server without relearning anything.

Configuration

EARSHOTS_HOST

Point at another EarShots host. Defaults to https://earshots.dev.

EARSHOTS_CONFIG_DIR

Where the session file lives. Defaults to ~/.earshots.

The CLI can read your workspace and save drafts. It cannot post to GitHub, X, LinkedIn, or anywhere else. A person reviews each draft and sends it from the original post.