Skip to content

nazmiefearmutcu/showMe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

307 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

showMe — a financial terminal for macOS

License: MIT Platform: macOS ARM64 Shell: Tauri 2 UI: React 18 Engine: Python 3.11+ Latest release

A financial terminal for macOS. Type a short code, get an analyst function — about 138 of them, from company financials to options gamma to central-bank rate odds. Open source, runs entirely on your own machine, no subscription, no broker lock-in.

What is it · Preview · How it works · Functions · Honesty · Get started · Architecture

What is showMe?

showMe is a desktop financial terminal for macOS. Instead of hunting through menus, you drive it the way professional desks do: type a short function code into a command line and the matching analyst tool opens — FA for financial statements, GEX for options gamma exposure, WIRP for rate-hike odds, ECO for the economic calendar. There are about 138 functions spanning equities, options, bonds, FX, commodities, macro, news, and portfolio analytics.

It's the kind of professional terminal workflow you'd otherwise pay for in a Bloomberg Terminal — rebuilt as open source, running entirely on your own Mac, with no subscription and no broker lock-in.

Under the hood: a thin Tauri 2 (Rust) shell with a signed updater, a React + Vite UI, and a unified Python (FastAPI) sidecar that runs the function engine locally. Your data and keys never leave the machine.

Preview

Cockpit

showMe cockpit: a sector heat strip across the top, KPI tiles for headline indices, a daily brief and risks pane, a forecast gauge, a watchlist with price/change/spark cells, and a left sidebar listing analyst functions

Command palette — every function, one keystroke away

The function command palette open over the cockpit, listing function codes (GEX, NG, CPF, ESG, …) with their full names, filtered as you type

A function in context

A single-symbol function view for SPX showing the data-quality header, source pills, and a fielded layout

How the terminal works

showMe has one core idea: a command line for markets. Press the palette shortcut, type a short code, hit enter — the function opens as a pane. No two functions look the same, because each is a purpose-built tool, but they all share the same launch gesture. If you know the code you want, you're one keystroke away; if you don't, the palette filters by name as you type.

A taste of the breadth — twelve representative codes:

Code Function What it shows
FA Financial Analysis Income statement, balance sheet, cash flow
DCF Discounted Cash Flow Intrinsic-value model from projected free cash flow
GEX Gamma Exposure Dealer hedging structure across the option chain
OMON Option Monitor Single-name option chain with Greeks
WIRP World Interest Rate Probability Market-implied rate-hike / cut odds
YAS Yield & Spread Analytics Bond yield, spread, and curve positioning
ECO Economic Calendar Upcoming macro releases and prints
CORR Correlation Matrix Cross-asset correlation grid
PORT Portfolio Analytics Holdings, exposure, and performance
ESG ESG Scores Environmental / social / governance ratings
GMM Global Macro Movers What's moving across global macro
BRIEF Daily Brief A composed morning read across your surfaces

Function catalog

About 138 functions across 14 categories. The exact set evolves; run npm run audit:functions for the live list. A representative slice by category:

Show the function catalog

Equities & fundamentalsFA financials · DCF / DDM discounted cash flow · DCFS DCF sensitivity · RV relative valuation · WACC cost of capital · BETA CAPM beta · EE earnings & estimates · EREV earnings revisions · ANR analyst recommendations · DVD dividends & splits · HDS holders · HFS holder search · FORM4 insider transactions · DARK / DPF dark-pool volume · CACT corporate actions · FTS SEC full-text search · PIB public information book · DES description · EQS equity screener.

Options & derivativesGEX gamma exposure · OMON option monitor · OVME option valuation (Black-Scholes + Greeks).

Bonds & ratesYAS yield & spread · CRVF yield curve · GC3D 3-D yield curve · WB world bonds · SRSK sovereign risk · TAUC Treasury auction calendar · CRPR credit-rating profile.

FXFXH FX hedge · FXFC FX forecasts.

Commodities — oil, natural gas, metals and weather-linked commodity functions (BOIL, NGAS, GLCO, WETR, …).

Macro & economicsECO economic calendar · ECST economic statistics · ECFC economic forecasts · WIRP rate-probability · GMM global macro movers · REGM market regime · BTMM country rate environment · COUN country guide · TRDH trading hours.

News & intelligenceTOP top news · CN company news · NI news by topic · BRIEF daily brief · TLDR daily TL;DR · NSE news search · SOSC social sentiment · TRAN earnings-call transcripts · TRQA transcript Q&A · TSAR transcript sentiment · EVTS corporate events · NALRT critical news alerts · READ reading list · AV audio/video archive.

Portfolio & riskPORT portfolio analytics · PORT_OPT optimizer · CORR correlation matrix · GREEKS portfolio Greeks · PVAR position VaR / MCR · STRS stress test · PFA performance attribution · BLAK Black-Litterman · RPAR risk parity · REBA rebalancer · PSC position sizing · TLH tax-loss harvesting · LOTS tax lots · MGN cross-account margin · ACCT multi-account aggregation · PCAS PCA factor stress · MLSIG ML signal · BMTX backtest matrix · BTFW walk-forward · BTUNE auto-tuner.

Screen & mapsSECT sector heatmap · ICX index constituents · MAP world market heatmap · MICRO market microstructure · FRH funding-rate heatmap.

Trade executionEXEC execution monitor · TCA trade-cost analysis · EMSX execution management.

Reference & dataISIN symbol cross-reference (OpenFIGI) · FLDS field lookup · DAPI data API · BQL query language · BQUANT notebook.

Alt-data & alertsONCH on-chain metrics · WHAL whale alerts · POLY Polymarket · SAT satellite imagery · ALRT alerts · CDE custom data fields.

Honest by design

A finance tool is only as trustworthy as the data behind it, so showMe is explicit about provenance.

  • Data-mode pills. Every function pane labels where its numbers came from — live exchange/vendor data, delayed reference data, or a modeled value (e.g. option Greeks computed from a pricing model).
  • Strict-zero gate. When a live source is unavailable, a function shows a PROVIDER_UNAVAILABLE state instead of inventing plausible-looking fake data. No silent fakery.

What showMe is — and isn't

✅ It is ❌ It isn't
A local, open-source financial terminal A live-money broker by default — execution is paper trading out of the box
macOS (Apple Silicon) native app Cross-platform — there is no Windows/Linux/Intel build
100% local — your data and keys stay on the machine A cloud service — there are no showMe servers
MIT-licensed, free, no subscription Investment advice or a guarantee — provided as-is, no warranty

Architecture

flowchart LR
    user(["You"]) -->|type a function code| react
    subgraph shell["Native shell"]
      tauri["Tauri 2 / Rust<br/>lifecycle · tray · menubar<br/>signed updater · Keychain"]
    end
    subgraph ui["UI process"]
      react["React + Vite + Tailwind<br/>zustand store<br/>command palette · i18n (12 langs)"]
    end
    subgraph backend["Python sidecar"]
      fastapi["FastAPI<br/>/api/health · /function-index · /fn/*"]
      engine["Function engine<br/>~138 functions · 14 categories"]
      data["Data layer<br/>providers · data-mode tagging"]
    end
    react -->|IPC| tauri
    tauri -->|spawn + HTTP| fastapi
    react -->|fetch JSON| fastapi
    fastapi --> engine --> data

    classDef shellNode fill:#dc572115,stroke:#dc5721,color:#dc5721
    classDef uiNode fill:#61dafb15,stroke:#61dafb,color:#1f6feb
    classDef beNode fill:#1f6bff15,stroke:#1f6bff,color:#1f6bff
    class tauri shellNode
    class react uiNode
    class fastapi,engine,data beNode
Loading

The Tauri shell discovers the sidecar's port from a single stdout line (SIDECAR_PORT=<u16>), restarts it up to 3× with exponential backoff on failure, and tears it down with a SIGTERM → 5 s grace → SIGKILL on quit. The WKWebView stays presentation-only; all native chrome (menubar, tray, dock, deep links, hotkeys, biometric unlock) lives in Rust.

Tech stack

Layer Stack
Native shell Tauri 2 (Rust), code-signed .app + .dmg, signed updater
UI React 18 · Vite 5 · Tailwind 4 · zustand 5 · TypeScript 5 · lightweight-charts 5
Backend Python 3.11+ · FastAPI · Uvicorn · pydantic 2 · DuckDB · Polars
Packaging PyInstaller (arm64 onedir sidecar)

Data sources

Most functions pull keyless, public data; a few are opt-in and need a key.

Provider Used for
yfinance Equities, ETFs, FX, commodities, bonds — OHLCV and quotes
Binance Crypto spot and perpetuals
FRED Macro time series
SEC EDGAR Filings and full-text search
GDELT Global news / events
OpenFIGI Identifier cross-reference (ISIN / CUSIP / ticker)
Treasury Direct US Treasury auctions
RSS feeds Configurable news

AI features (opt-in)

These are off by default and each needs its own model or key:

Feature What it does Needs
FinBERT sentiment Scores news headlines positive / neutral / negative Bundled model (first call loads it)
Whisper transcription Turns earnings-call audio into text Local Whisper model
X / social sentiment Sentiment on posts mentioning a ticker Your X API key
LLM assistant A conversational analyst over your data OpenAI key or a local Ollama model

Get started

Download

Grab the latest signed build from Releases (showMe_0.1.1_aarch64.dmg, macOS Apple Silicon).

Run from source (dev)

# 1 — UI deps
cd ui && npm install && cd ..

# 2 — sidecar deps
cd backend && python3 -m pip install -e ".[dev]" && cd ..

# 3 — run dev (Tauri spawns the sidecar + UI together)
npm run tauri:dev

No Rust toolchain? Inspect the UI in the browser:

# terminal 1
cd backend && python3 -m showme.server --port 8765
# terminal 2
cd ui && npm run dev        # http://localhost:5173

Build a native bundle

bash packaging/build_sidecar.sh   # PyInstaller arm64 sidecar
npm run tauri:build               # .app + .dmg

Signing and notarization (optional, needs Apple credentials) live in packaging/sign.sh and packaging/notarize.sh.

Project layout

Show the directory tree
showMe/
├── tauri/        Native macOS shell (Rust): lifecycle, tray, menubar, deep-link, biometric
├── ui/           React + Vite + Tailwind + zustand frontend
│   └── src/      shell · panes · functions · command-palette · i18n (12 langs) · design-system
├── backend/      Python FastAPI sidecar + function engine
│   └── showme/   server · function_contracts · providers · brokers · agents
│       └── engine/functions/   the ~138 functions, in 14 category folders
├── packaging/    build / sign / notarize / dmg
├── scripts/      audits & dev tools (npm run audit:functions, …)
├── tests/        cross-cutting Playwright e2e
└── docs/         architecture, screenshots, specs, plans

Development & testing

npm run test:backend          # backend pytest suite
npm --workspace ui test       # UI vitest suite
npm run test:e2e:smoke:fast   # fast Playwright smoke path
npm run audit:functions       # live function inventory
npm run lint && npm run lint:py

Contributions welcome — see CONTRIBUTING.md and SECURITY.md.

License

MIT © 2026 Nazmi Efe Armutcu. Provided as-is, with no warranty. Not investment advice.

About

Trading terminal for macOS. Scans 3 370 symbols across 12 timeframes to surface what's moving together. Tauri + Python + React. Open source, runs on your machine.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors