Ticker
Terminal stock watcher and stock position tracker
Features
- Live stock price quotes
- Track value of your stock positions
- Support for multiple cost basis lots
- Support for pre and post market price quotes
Install
Download the pre-compiled binaries from the releases page and copy to a location in PATH or see quick installs below
homebrew
brew install achannarasappa/tap/ticker
linux
curl -Ls https://api.github.com/repos/achannarasappa/ticker/releases/latest \
| grep -wo "https.*linux-amd64*.tar.gz" \
| wget -qi - \
&& tar -xf ticker*.tar.gz \
&& chmod +x ./ticker \
&& sudo mv ticker /usr/local/bin/docker
docker run -it --rm achannarasappa/tickerNote: config file can be mounted from the host machine by using a bind mount with -v ~/.ticker.yaml:/.ticker.yaml
snap
sudo snap install tickerNote: config file will need to be set with --config $HOME/ticker.yaml since Snap does not allow access to dotfiles
Third-party repositories
These repositories are maintained by a third-party and may not have the latest versions available
MacPorts
sudo port selfupdate
sudo port install ticker
Quick Start
ticker -w NET,AAPL,TSLAUsage
| Option Name | Alias | Flag | Default | Description |
|---|---|---|---|---|
| --config | ~/.ticker.yaml |
config file location with watchlist and positions | ||
interval |
-i | --interval | 5 |
Refresh interval in seconds |
watchlist |
-w | --watchlist | comma separated list of symbols to watch | |
show-tags |
--show-tags | display currency, exchange name, and quote delay for each quote | ||
show-fundamentals |
--show-fundamentals | display open price, previous close, and day range | ||
show-separator |
--show-separator | layout with separators between each quote | ||
show-summary |
--show-summary | show total day change, total value, and total value change | ||
show-holdings |
--show-holdings | show holdings including weight, average cost, and quantity | ||
sort |
--sort | sort quotes on the UI - options are change percent (default), alpha, value, and user |
||
proxy |
--proxy | proxy URL for requests (default is none) | ||
version |
--version | print the current version number |
Configuration
Configuration is not required to watch stock price but is helpful when always watching the same stocks. Configuration can also be used to set cost basis lots which will in turn be used to show total gain or loss on any position.
# ~/.ticker.yaml
show-summary: true
show-tags: true
show-fundamentals: true
show-separator: true
show-holdings: true
interval: 5
currency: USD
currency-summary-only: false
watchlist:
- NET
- TEAM
- ESTC
- BTC-USD
lots:
- symbol: "ABNB"
quantity: 35.0
unit_cost: 146.00
- symbol: "ARKW"
quantity: 20.0
unit_cost: 152.25
- symbol: "ARKW"
quantity: 20.0
unit_cost: 145.35
fixed_cost: 7.00 # e.g. brokerage commission fee- Symbols not on the watchlist that exists in
lotswill automatically be watched - To add multiple (
quantity,unit_cost) to the samesymbol, write twosymbolentries - seeARKWexample above - All properties in
.ticker.yamlare optional .ticker.yamlcan be set in user home directory, the current directory, or XDG config home
Display Options
With --show-summary, --show-tags, --show-fundamentals, --show-holdings, and --show-separator options set, the layout and information displayed expands:
Sorting
It's possible to set a custom sort order with the --sort flag or sort: config option with these options:
- Default - change percent with closed markets at the end
alphato sort alphabetically by symbolvalueto sort by position valueuserto sort by the order defined in configuration with positions on top then lots
Currency Conversion
ticker supports converting from the exchange's currency to a local currency. This can be set by setting the currency property in .ticker.yaml to a ISO 4217 3-digit currency code.
- When a
currencyis defined, all values are converted including summary, quote, and position - Add cost basis lots in the currency of the exchange - these will be converted automatically when
currencyis defined - If a
currencyis not set (default behavior) and theshow-summaryoption is enabled, the summary will be calculated in USD regardless of the exchange currency to avoid mixing currencies - Currencies are retrieved only once at start time - currency exchange rates do fluctuate over time and thus converted values may vary depending on when ticker is started
- If the
currency-summary-onlyis set totrueand a value is set forcurrency, only the summary values will be converted - If
currency-disable-unit-cost-conversionflag totrue, currency conversion will not be done when calculating the cost basis. This can be useful for users that purchase a foreign security and want to use the currency exchange rate at the time of purchase by inputting the unit cost in their local currency (set incurrency) rather than using the most recent currency exchange rate.
Custom Color Schemes
ticker supports setting custom color schemes from the config file. Colors are represented by a hex triplet. Below is an annotated example config block from .ticker.yaml where custom colors are set:
# ~/.ticker.yaml
watchlist:
- NET
- TEAM
- ESTC
- BTC-USD
colors:
text: "#005fff"
text-light: "#0087ff"
text-label: "#00d7ff"
text-line: "#00ffff"
text-tag: "#005fff"
background-tag: "#0087ff"- Terminals supporting TrueColor will be able to represent the full color space and in other cases colors will be down sampled
- Any omitted or invalid colors will revert to default color scheme values
Notes
- Real-time quotes - Quotes are pulled from Yahoo finance which may provide delayed stock quotes depending on the exchange. The major US exchanges (NYSE, NASDAQ) have real-time quotes however other exchanges may not. Consult the help article on exchange delays to determine which exchanges you can expect delays for or use the
--show-tagsflag to include timeliness of data alongside quotes inticker. - Cryptocurrencies -
tickersupports any cryptocurrency Yahoo / CoinMarketCap supports. A full list can be found here - Non-US Symbols, Forex, ETFs - The names for there may differ from their common name/symbols. Try searching the native name in Yahoo finance to determine the symbol to use in
ticker - Terminal fonts - Font with support for the
HORIZONTAL LINE SEPARATORunicode character is required to properly render separators (--show-separatoroption)
Integrations
- alpaca-ticker-config - Pull alpaca.markets positions into
.ticker.yamlfrom the command line
Development
Running tests:
ginkgo -cover ./...Libraries ticker uses
- bubbletea - terminal UI framework
- termenv - color and styling for the terminal
- term-grid - grid layout library terminal UIs


