SkillAgentSearch skills...

Ticker

Track stocks, crypto, and derivatives prices and positions in real time from your terminal

Install / Use

/learn @achannarasappa/Ticker

README

<p> <a href="https://github.com/achannarasappa/ticker/releases"><img src="https://img.shields.io/github/v/release/achannarasappa/ticker" alt="Latest Release"></a> <a href="https://github.com/achannarasappa/ticker/actions"><img src="https://github.com/achannarasappa/ticker/workflows/test/badge.svg" alt="Build Status"></a> <a href='https://coveralls.io/github/achannarasappa/ticker?branch=master'><img src='https://coveralls.io/repos/github/achannarasappa/ticker/badge.svg?branch=master' alt='Coverage Status' /></a> <a href='https://goreportcard.com/badge/github.com/achannarasappa/ticker'><img src='https://goreportcard.com/badge/github.com/achannarasappa/ticker' alt='Report Card' /></a> </p> <h1 align="center">Ticker</h2> <p align="center"> Terminal stock & crypto price watcher and position tracker </p> <p align="center"> <img align="center" src="./docs/ticker.gif" /> </p>

Features

  • Live stock & crypto 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 -xvf ticker*.tar.gz ticker \
&& chmod +x ./ticker \
&& sudo mv ticker /usr/local/bin/

windows

winget install -e --id achannarasappa.ticker

docker

docker run -it --rm achannarasappa/ticker

Note: config file can be mounted from the host machine by using a bind mount with -v ~/.ticker.yaml:/.ticker.yaml

snap

sudo snap install ticker
sudo snap connect ticker:ticker-config

Note: 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,TSLA

Usage

|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-positions | |--show-positions | |show positions including weight, average cost, and quantity| |sort | |--sort | |sort quotes on the UI - options are change percent (default), alpha, value, and user| |version | |--version | |print the current version number| |debug | | | |enable debug logging to ./ticker-log-<date>.log|

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-positions: true
interval: 5
currency: USD
currency-summary-only: false
watchlist:
  - NET
  - TEAM
  - ESTC
  - BTC-USD # Bitcoin price via Yahoo
  - SOL.X # Solana price via Coinbase
  - BIT-30MAY25-CDE.CB # Bitcoin futures contract price via Coinbase
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
groups:
  - name: crypto
    watchlist:
      - SHIB-USD
      - VGX-USD
    lots:
      - symbol: SOL1-USD
        quantity: 17
        unit_cost: 159.10
  • All properties in .ticker.yaml are optional
  • Symbols not on the watchlist that exists in lots are implicitly added to the watchlist
  • To add multiple cost basis lots (quantity, unit_cost) for the same symbol, include two or more entries - see ARKW example above
  • .ticker.yaml can be set in user home directory, the current directory, or XDG config home
  • Quantities can be negative to represent closed positions (position netting), short positions, borrowed assets, and other concepts

Display Options

With --show-summary, --show-tags, --show-fundamentals, --show-positions, and --show-separator options set, the layout and information displayed expands:

<img src="./docs/ticker-all-options.png" />

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
  • alpha to sort alphabetically by symbol
  • value to sort by position value
  • user to sort by the order defined in configuration with positions on first then watched symbols

Groups

Watchlists and lots can be grouped in .ticker.yml under the groups property. While running ticker, press <kbd>TAB</kbd> to cycle forward through groups or <kbd>SHIFT+TAB</kbd> to cycle backward.

  • If top level watchlist or lots properties are defined in the configuration file, the entries there will be added to a group named default which will always be shown first
  • Ordering is defined by order in the configuration file

Data Sources & Symbols

ticker pulls market data from a few different sources with Yahoo Finance as the default. Symbols for non default data sources follow the format <symbol>.<source> where <symbol> is the canonical symbol within that data source and <source> is the data source specifier. Below is a list of the supported data sources and their specifiers:

  • none - symbols with no suffix will default to Yahoo Finance as the data source
  • .X - symbols with this suffix are shorthand symbols that are specific to ticker and intended to provide more concise and familiar symbols for popular assets (e.g. using SOL.X rather than SOLANA.CG)
    • The full list of ticker symbols can be found here. Initial values are populated with the top cryptocurrencies by volume on Coinbase at the time of update
  • .CB - symbols with this suffix will use Coinbase as the data source. The symbol can be found by searching for the asset on Coinbase and finding the symbol for the asset. (e.g. for Starknet check the market page to find the symbol STRK and set the symbol to STRK.CB in ticker).

Note: Coincap (.CC) and CoinGecko (.CG) are no longer supported after v5.0.0

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.

<img src="./docs/ticker-currency.png" />
  • When a currency is 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 currency is defined
  • If a currency is not set (default behavior) and the show-summary option 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-only is set to true and a value is set for currency, only the summary values will be converted
  • If currency-disable-unit-cost-conversion flag to true, currency conversion will not be done when calculating the cost basis. This can be useful for users that purchase a non-US asset and want to use the currency exchange rate at the time of purchase by inputting the unit cost in their local currency (set in currency) 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

Printing Positions

ticker supports printing positions to the terminal as text by using ticker print. Output defaults to JSON but CSV output can also be

View on GitHub
GitHub Stars6.0k
CategoryDevelopment
Updated1h ago
Forks324

Languages

Go

Security Score

100/100

Audited on Mar 27, 2026

No findings