---
title: News
description: Recent headlines from Finnhub's aggregated news feed for any ticker, including analyst commentary, product announcements, regulatory filings, and macro events.
---

export const reasons = [
  {
    icon: '◉',
    title: 'Context before you act',
    desc: "Before adding to a position or trimming one, spend 30 seconds checking the news. A stock that is up 8% today might have earnings tonight, or it might have just settled an SEC investigation. The price move alone won't tell you which.",
  },
  {
    icon: '▲',
    title: 'Before earnings: build context',
    desc: 'Reading the last 2 weeks of news before a quarterly report helps you understand what the street is focused on. Analyst upgrades/downgrades, channel checks, and product news all shape expectations going into the report.',
  },
  {
    icon: '↗',
    title: 'Unusual moves explained',
    desc: "If a stock in your portfolio moved sharply while you weren't watching, news is the fastest way to figure out why before you decide whether the move changes your thesis.",
  },
];

export const claudeExchange = [{
  user: 'TSLA is down 8% today. What happened and should I be buying the dip?',
  ai: <>
    <p>
      The drop is from Q1 delivery numbers. <code>336,681</code> vs an expected{' '}
      <code>360,000</code>. That's a meaningful miss (~7%). Analysts are cutting
      near-term estimates. The news also mentions CEO comments about DOGE obligations
      potentially limiting his time at Tesla.
    </p>
    <p style={{ marginTop: '0.5rem' }}>
      You're already at <code>82%</code> portfolio concentration in TSLA.
      Adding here would increase that further. The real thesis question is not this
      one quarter miss. It's whether the Optimus/Cybercab narrative is still intact.
      The delivery miss doesn't directly address that.
    </p>
  </>,
}];

<Section label="Why News Matters">
  <FeatureList items={reasons} />
</Section>

<Section label="firma show news <ticker>">
Returns up to 10 articles from the last 7 days for a ticker, including the
headline, summary excerpt, source, and timestamp.

<div className="terminal">
  <div className="terminal-line">
    <span className="term-prompt">$</span>
    <span className="term-cmd">firma show news TSLA</span>
  </div>
  <div className="terminal-block" style={{ gap: '0.75rem' }}>
    <div>
      <div className="term-row"><span className="term-val">1. Tesla Robotaxis And Optimus Shift Focus To AI Revenue After 2027</span></div>
      <div className="term-row"><span className="term-meta">Tesla has started production of its Cybercab robotaxi and is preparing for mass-scale...</span></div>
      <div className="term-row"><span className="term-meta">Yahoo Finance  ·  2h ago</span></div>
    </div>
    <div>
      <div className="term-row"><span className="term-val">2. Elon Musk Says Optimus V3 Unveil To Be Closer To Robot's Production</span></div>
      <div className="term-row"><span className="term-meta">Tesla CEO Elon Musk on Wednesday accused rivals in the humanoid robot space of...</span></div>
      <div className="term-row"><span className="term-meta">Benzinga  ·  10h ago</span></div>
    </div>
    <div>
      <div className="term-row"><span className="term-val">3. Tesla Q1 2026 Deliveries Miss Estimates, Stock Falls 5%</span></div>
      <div className="term-row"><span className="term-meta">Tesla delivered 336,681 vehicles in Q1 2026, below the consensus estimate of 360,000...</span></div>
      <div className="term-row"><span className="term-meta">Reuters  ·  2d ago</span></div>
    </div>
  </div>
</div>

  <Note>
    Data comes from Finnhub's aggregated news feed.
    You'll need a Finnhub API key. Set it with <code>firma config set finnhub-key &lt;key&gt;</code>.
  </Note>
</Section>

<Section label="With Claude">
  <ChatDemo header="Claude Desktop · firma MCP connected" exchanges={claudeExchange} />
</Section>
