Skip to content

Latest commit

 

History

History

README.md

Competitor Scout

Teams waste time manually checking competitor sites as their product evolves. This CLI tool with a user interface option lets you set competitors once and ask natural‑language questions to research the feature decisions that your competitors make. It would use ChatGPT to compose workflows and dispatch Tinyfish Web agents to each competitor, extracts evidence, and returns a structured report so product decisions can be made faster and with less manual research.

Requirements

  • Node.js 18+
  • npm
  • OpenAI API key
  • Tinyfish API key

Setup

  1. Install dependencies:

    • npm install
  2. Create your local env file:

    • cp .env.example .env.local
    • Add:
      • OPENAI_API_KEY=...
      • TINYFISH_API_KEY=...

Run the GUI (Next.js)

  • Start the dev server:
    • npm run dev
  • Open:
    • http://localhost:3000

Run the CLI

The CLI lives in cli/scout.mjs.

  • Initialize a workspace config:
    • node cli/scout.mjs init
  • Add competitors:
    • node cli/scout.mjs add --name "Notion" --url "https://www.notion.com"
  • List competitors:
    • node cli/scout.mjs list
  • Remove a competitor:
    • node cli/scout.mjs remove --name "Notion"
  • Remove all competitors:
    • node cli/scout.mjs clear
  • Run research:
    • node cli/scout.mjs research "What sign-in methods do my competitors support?"
  • List past runs:
    • node cli/scout.mjs runs
  • Cancel the latest run:
    • node cli/scout.mjs cancel
  • Cancel a specific run:
    • node cli/scout.mjs cancel --run "RUN_ID"
  • Reset CLI state:
    • node cli/scout.mjs reset

Help

Use straight quotes in the terminal. Smart quotes (like “ ”) can cause dquote> prompts.

node cli/scout.mjs 

Commands:

  • init — create .scout.json
  • add — add a competitor (--name, --url)
  • list — list competitors (alias: ls)
  • remove — remove a competitor by name (alias: rm)
  • clear — remove all competitors (alias: rm-all)
  • research — run research (alias: ask)
  • runs — list recorded runs
  • cancel — cancel latest or --run by id
  • reset — delete .scout.json and .scout-runs.json

Notes

  • .env.local is ignored by git via .gitignore.
  • Reports and raw results generated by the CLI are saved to your current working directory.
  • Run history is stored in .scout-runs.json in your project directory.