StockGram (BASH / OSX) - Software that works!
StockGram (BASH / OSX)
← Back
StockGram (BASH / OSX)
By<br>Page Telegram
💛 Support Page Telegram directly
💳 Donate
Current Version: 1.1.0
86
Unique Views
Free Downloads
Donation Downloads
StockGram
StockGram by Page Telegram Volunteer Services
!StockGram demo
A terminal portfolio watcher written in Bash. Add and remove stock tickers, set how many shares you hold, watch live up/down moves and a running asset total, open ASCII price charts (intraday through 10 years), and read per-stock RSS headlines — including a text preview and a Shift+Enter article dialog.
Prices and history come from Yahoo Finance public chart APIs. Headlines come from Yahoo Finance RSS, with Google News as a fallback. This is not investment advice.
Requirements
ToolPurposeTypical packagepython3Quotes, ASCII charts, RSS parse (stdlib only)python3curlTicker validationcurlmkdirConfig and cache dirscoreutilstputTerminal sizencurses / ncurses-binsttyKeyboard TUIcoreutils
No pip packages. On first run, StockGram checks for missing tools and prompts to install them (apt, dnf, yum, zypper, pacman, apk, or brew).
bash<br>./stockgram.sh --check-deps<br>./stockgram.sh --install-deps
Non-interactive installs: STOCKGRAMASSUMEYES=1 ./stockgram.sh --install-deps
Run
bash<br>chmod +x stockgram.sh<br>./stockgram.sh
macOS app
The only file you need on a Mac is StockGram.app . Unzip OSX/StockGram.app.zip and double-click the app. The Bash TUI is embedded in the bundle (Contents/Resources/stockgram.sh); you do not need a copy of stockgram.sh next to the app.
Use the zip, not a raw folder copy off pCloud — pCloud drops Unix execute bits, and macOS will not launch an app whose executable is not +x. First launch on a new Mac: right-click the app → Open (unsigned). StockGram still needs Bash 4+ (brew install bash).
One-shot dumps (no TUI):
bash<br>./stockgram.sh --help<br>./stockgram.sh --quotes AAPL,MSFT,TSLA<br>./stockgram.sh --news AAPL<br>./stockgram.sh --chart AAPL 1d line<br>./stockgram.sh --chart AAPL 10y ohlc
Chart ranges: 1d 5d 1mo 3mo 6mo ytd 1y 2y 5y 10y<br>Chart styles: line area ohlc
Portfolio window
The top pane is the watchlist. Each row shows last price, share count (SHRS ), a live UP / DN dollar move versus the previous close, percent change, and (when the terminal is wide enough) position VALUE , volume, day range, 52-week range, and an ASCII intraday sparkline.
The last line of the portfolio box is a running ASSETS total: number of positions, market value, and day P/L. Tickers with no shares set are watch-only and do not count toward the total.
KeyAction↑ ↓ or j kSelect ticker (loads that symbol’s news)c / C or EnterOpen the fullscreen ASCII chartsSet share count for the selected tickerSpacePause / resume auto-updates (quotes, news, charts)GSort the list by biggest day gains (%)aAdd call lettersx or DeleteRemove the selected tickeru / UQuote refresh interval, 2 seconds to 1 hour RRefresh quotes and news now?HelpqQuit
Default watchlist (first run): AAPL MSFT GOOG AMZN NVDA TSLA META SPY QQQ
Saved in ~/.config/stockgram/watchlist (or $STOCKGRAM_HOME/watchlist). Each line is a symbol, optionally followed by a share count:
AAPL 12<br>MSFT 5.5<br>GOOG
AAPL=12 and AAPL:12 are also accepted. Override the config directory with STOCKGRAM_HOME.
News window
The bottom pane is a separate boxed window. It shows RSS headlines for the selected ticker only: date and source, the title, and a short text preview from the feed description.
KeyAction← →Previous / next headlineHome / EndFirst / last headlineShift+Enter or oOpen the article in a dialog (fetched body, or RSS text if the page cannot be read)
In the article dialog: ↑ ↓ or j k scroll, PgUp / PgDn / Space page, q or Esc close.
The feed auto-refreshes every 1 minute . The title bar shows source, auto 1m, and age (12s ago). Your place in the list is kept across refreshes. If the feed fails, the last headlines stay on screen.
Chart view
ASCII only (line, area, or OHLC). History from 1 day through 10 years.
KeyAction← →Pan (scroll history)Home / EndOldest / live follow (newest)+ = / -Zoom in / out[ ]Shorter / longer range1–9, 01D 5D 1M 3M 6M YTD 1Y 2Y 5Y / 10Y cCycle style: line, area, ohlcn / pNext / previous tickerSpacePause / resume auto-updatesu / UQuote refresh intervalq or EscBack to the portfolio
Quote refresh (u/U) is independent of the 1-minute news timer. Space freezes both. While paused, the last quotes and chart stay on screen; pan, zoom, and range keys still fetch a new chart if you change the view.
Refreshes paint in place (no full-screen wipe), so a 2-second quote interval no longer makes the terminal flash.
Responsive layout
List, news, and charts scale to the terminal. Resize redraws immediately. The header shows size and density, for example 80x24 normal.
DensityTypical sizeBehaviorcompactunder 64 columns or 18 rowsShort header, no sparkline, 1-line footernormalaround 80×24Sparkline, balanced list and newswide120×30 and upLonger...