MCPcopy Index your code
hub / github.com/achannarasappa/ticker

github.com/achannarasappa/ticker @v5.3.0 sqlite

repository ↗ · DeepWiki ↗ · release v5.3.0 ↗
340 symbols 931 edges 77 files 148 documented · 44% 1 cross-repo links
README
<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>

Ticker

Terminal stock & crypto price watcher and position tracker ## 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](https://github.com/achannarasappa/ticker/releases) 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-.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](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) * 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: ### 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 TAB to cycle forward through groups or SHIFT+TAB 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 `

Extension points exported contracts — how you extend this code

Option (FuncType)
Option defines an option for configuring the monitor
internal/monitor/coinbase/monitor-price/monitor.go
Sorter (FuncType)
Sorter represents a function that sorts quotes
internal/sorter/sorter.go
Monitor (Interface)
(no doc) [2 implementers]
internal/common/common.go
Option (FuncType)
Option defines an option for configuring the monitor
internal/monitor/yahoo/monitor-price/monitor.go
StyleFn (FuncType)
StyleFn is a function that styles text
internal/common/common.go
MonitorCurrencyRate (Interface)
(no doc) [1 implementers]
internal/common/common.go

Core symbols most depended-on inside this repo

Start
called by 73
internal/common/common.go
View
called by 51
internal/ui/component/watchlist/row/row.go
GetAssetQuotes
called by 51
internal/common/common.go
SetSymbols
called by 48
internal/common/common.go
Update
called by 40
internal/ui/component/watchlist/row/row.go
Stop
called by 25
internal/common/common.go
GetAssets
called by 23
internal/asset/asset.go
Validate
called by 21
internal/cli/cli.go

Shape

Function 166
Struct 85
Method 71
TypeAlias 12
FuncType 4
Interface 2

Languages

Go100%

Modules by API surface

internal/common/common.go39 symbols
internal/ui/component/watchlist/row/row.go30 symbols
internal/monitor/coinbase/monitor-price/monitor.go19 symbols
internal/cli/cli.go18 symbols
internal/ui/ui.go16 symbols
internal/monitor/yahoo/unary/unary_test.go15 symbols
internal/monitor/yahoo/monitor-price/monitor.go14 symbols
internal/monitor/coinbase/monitor-price/streamer/streamer.go13 symbols
internal/monitor/monitor.go12 symbols
internal/monitor/coinbase/unary/unary.go11 symbols
internal/ui/component/watchlist/watchlist.go10 symbols
internal/print/print.go9 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

4d63.com/gocheckcompilerdirectivesv1.3.0 · 1×
4d63.com/gochecknoglobalsv0.2.2 · 1×
codeberg.org/chavacava/garifv0.2.0 · 1×
codeberg.org/polyfloyd/go-errorlintv1.9.0 · 1×
dev.gaijin.team/go/golibv0.6.0 · 1×
github.com/4meepo/tagalignv1.4.3 · 1×
github.com/Abirdcfly/dupwordv0.1.7 · 1×
github.com/AdminBenni/iota-mixingv1.0.0 · 1×
github.com/AlwxSin/noinlineerrv1.0.5 · 1×
github.com/Antonboom/errnamev1.1.1 · 1×
github.com/Antonboom/nilnilv1.1.1 · 1×

For agents

$ claude mcp add ticker \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact