Skip to content

Repository files navigation

Defeat Beta

Defeat Beta Terminal

Release Downloads macOS Linux Python

A Bloomberg-style terminal in your terminal — a TUI client for stock analysis, powered by defeatbeta-api.


Screenshot

overview


What's inside

Ten tabs, each Bloomberg-coded:

# Tab What it shows Highlights
1 Overview Price line + volume panel, MA10/50/200, earnings ▼ / dividends $ / split ⇅ markers Rendered by matplotlib → piped into the terminal as an iTerm2 inline image; ↑↓ adjusts range, ←→ pans
2 Profile Company description, address, key executives Bloomberg DES-style
3 Financials Income Statement / Balance Sheet / Cash Flow with hierarchy + YoY s switches statement, p flips quarterly/annual
4 Valuation P/E (TTM), P/S, P/B, PEG, EV/EBITDA, EV/Revenue + industry overlays Click into a row → inline chart (multiples vs industry)
5 Growth YoY growth for Revenue / OpInc / EBITDA / Net Income / FCF / EPS Quarterly/Annual toggle, click a row → chart
6 Profitability Gross / Operating / EBITDA / Net / FCF margins, with industry comparison Bar chart per metric
7 DCF Editable 3-stage DCF (growth, discount rate, terminal) Tab cycles between editable cells, Enter to edit, formula bar at the bottom
8 News Earnings-call transcripts (lazy-loaded paragraphs) + financial news cards (paginated, lazy-loaded summaries) Tab toggles sub-mode; ⏎ enters reading mode; URLs are clickable in supporting terminals
9 SEC Filings EDGAR submissions card list, filtered by importance Tab toggles Important (10-K/10-Q/8-K/DEF 14A/etc.) ↔ All forms; ⏎ opens EDGAR in browser
0 Breakdown Revenue breakdown tables from SEC XBRL filings Two-panel: left lists breakdown types, right shows the table; f cycles form type (10-Q/10-K), p cycles period duration; tree-structured items with YoY

Global keys: 0-9 switch tabs, / or : triggers ticker search, q quits.

Per-tab screenshots

1. Overview

Overview

2. Profile

Profile

3. Financials

Financials

4. Valuation

Valuation

5. Growth

Growth

6. Profitability

Profitability

7. DCF

DCF

8. News

News

9. SEC Filings

SEC Filings

0. Breakdown

Breakdown


Quick start

Prerequisites

  • uv (Python package manager)
  • Python 3.11+
  • Terminal that supports iTerm2 inline images for the price chart on the Overview tab (iTerm2, WezTerm, kitty all work). Other tabs work in any terminal.
  • Optional: an HTTP proxy if huggingface.co (the data host) isn't directly reachable from your network.

Install uv

macOS/Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Or with Homebrew:

brew install uv

Install defeatbeta-terminal

curl -fsSL https://raw.githubusercontent.com/defeat-beta/defeatbeta-terminal/main/install.sh | bash

Start the terminal:

defeatbeta

Then press / to search a ticker (for example AAPL, NVDA, or TSLA), 0-9 to switch tabs, and q to quit.

If your network needs a proxy to reach Hugging Face, start it with HTTP_PROXY:

HTTP_PROXY="http://127.0.0.1:8118" defeatbeta

Update defeatbeta-terminal

Run the installer again:

curl -fsSL https://raw.githubusercontent.com/defeat-beta/defeatbeta-terminal/main/install.sh | bash

Contributing

Contributions welcome — issues, PRs, and ideas. See CONTRIBUTING.md (coming soon) for the workflow. Quick pointers in the meantime:

  • The fastest way to find work is the good first issue label.
  • Each tab is a self-contained component; pick one and improve it.
  • Bug reports: please include your terminal, OS, ticker, and a screenshot.

Credits

  • Data: defeatbeta-api — column-pruned, lazy-loaded reads of the Yahoo Finance + SEC EDGAR mirror hosted on Hugging Face Datasets.
  • Rendering: OpenTUI — the modern TUI framework that makes box-/flex-style layout actually pleasant in a terminal.
  • Reactivity: Solid.js — fine-grained reactivity, React-flavored DSL.
  • Inspiration: Bloomberg Terminal's keyboard-first information density.

License

Apache License 2.0 — see LICENSE.

About

A Bloomberg-style TUI for stock analysis, powered by defeatbeta-api

Topics

Resources

Contributing

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages