achannarasappa/ticker: a terminal watcher for stock and crypto quotes
Track stocks, crypto, and derivatives prices and positions in real time from your terminal
At a glance
- What is it?
- A Go TUI that pulls live quotes from Yahoo Finance, Coinbase and other sources into one terminal view, with cost basis lots and grouped watchlists. Here is how it installs, how the symbol and lot model works, and where it stops being the right tool.
- Who is it for?
- Adopt ticker if you already work in a terminal, hold positions across several venues, and want one screen that mixes equities, crypto and futures without a browser tab. Skip it if you need order entry, charting, tax reporting, or a supported data feed with a contractual SLA: ticker is a read-only watcher that leans on Yahoo Finance and Coinbase.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 139 days ago.
- What is it written in?
- Mainly Go, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.
Star history
- achannarasappa/ticker6,268 ★ · +32
| Repository | 2026-09-23 | 2026-11-14 |
|---|---|---|
| achannarasappa/ticker | 6.2k | 6.3k |
32 Stars in the last 52 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
What ticker solves for people who already live in a shell
Most quote tools assume a browser. ticker assumes a terminal session. The README describes it as a "Terminal stock & crypto price watcher and position tracker", and the feature list is deliberately narrow: live stock and crypto quotes, position value tracking, multiple cost basis lots per symbol, and pre and post market quotes. There is no order entry, no charting, no news feed. The audience is someone who holds a handful of equities and some crypto, wants a single refreshing view, and does not want to alt-tab to a broker page to check whether a position is up or down. The Go module path is github.com/achannarasappa/ticker/v5, so this is a v5 line, and the repository is not archived; the last push was on 2026-06-28, with v5.3.0 released on 2026-06-21.
How quotes, lots and groups fit together
The architecture visible from the repository is a single Go binary that renders a TUI with the Charm stack (bubbletea, bubbles, lipgloss) and reads configuration through viper and yaml.v2. Market data comes from several sources, with Yahoo Finance as the default. The README states that symbols for non-default sources follow the format <symbol>.<source>, where the part after the dot is the data source specifier. A symbol with no suffix goes to Yahoo. The .X suffix is described as shorthand symbols specific to ticker, intended to be more concise. In the sample config, BTC-USD is annotated as Bitcoin via Yahoo, SOL.X as Solana via Coinbase, and BIT-30MAY25-CDE.CB as a Bitcoin futures contract via Coinbase. So the dot suffix is not decoration: it is the routing decision, and getting it wrong sends your quote to the wrong venue.
The position side is separate from the quote side. A lot entry carries symbol, quantity and unit_cost, plus an optional fixed_cost for something like a brokerage commission. The README notes that multiple lots for the same symbol are expressed by repeating the entry, as the ARKW example does with two entries at 152.25 and 145.35. Quantities can be negative, which the README says covers closed positions, short positions and borrowed assets. Two behaviours are worth knowing before you write a config: symbols that appear in lots but not in the watchlist are implicitly added to the watchlist, and top-level watchlist or lots entries get folded into a group named default that always renders first. Groups are cycled at runtime with TAB and SHIFT+TAB.
Installing ticker and getting a first quote on screen
The quickest path on macOS or Linux is Homebrew. The README gives this as the tap install:
brew install achannarasappa/tap/tickerOn Windows the README lists a winget package, and there is also a snap and a Docker image. The Dockerfile is an alpine:3 base plus a copy of the binary, with ENTRYPOINT ["/ticker"] and a declared volume at /.ticker.yaml, which is why the README suggests bind-mounting your config there:
docker run -it --rm -v ~/.ticker.yaml:/.ticker.yaml achannarasappa/tickerYou do not need a config file to watch prices. The quick start is a single flag with a comma separated symbol list:
ticker -w NET,AAPL,TSLAThe default refresh interval is 5 seconds, controlled by -i or --interval. Adding display flags expands the layout rather than changing the data: --show-tags adds currency, exchange name and quote delay, --show-fundamentals adds open price, previous close and day range, and --show-summary adds total day change, total value and total value change. Sorting is set with --sort, whose documented options are change percent (the default, with closed markets pushed to the end), alpha, value and user.
For a persistent setup, write ~/.ticker.yaml. The README's example uses these keys:
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
- BTC-USD
- SOL.X
lots:
- symbol: "ABNB"
quantity: 35.0
unit_cost: 146.00The README states that every property in .ticker.yaml is optional, and that the file can live in the user home directory, the current directory, or the XDG config home. If you install via snap, the README notes the config file must be passed explicitly with --config $HOME/ticker.yaml because snap does not allow access to dotfiles.
Where ticker stops being the right tool
ticker is read-only, and that is a hard boundary rather than a missing feature. Nothing in the README describes placing, modifying or cancelling an order. If your workflow needs execution, this is the wrong program and no configuration will change that.
The second limitation is data provenance. Quotes depend on Yahoo Finance by default and on Coinbase for the .X and .CB symbols. Check the data source documentation for rate limits, API keys, fallback behaviour, and what happens to the UI when a source refuses a request. There is a --no-cache flag, which the usage table describes as controlling whether data retrieved at startup is cached, so repeated starts hit the network again.
The third is that position maths is only as good as what you type. ticker has no brokerage connection. Every quantity and unit_cost is hand-entered, and the README's own examples show a fixed_cost field for commission, which means you are responsible for remembering it. Because lots are entered by hand, a position held across a split will show a cost basis that no longer matches reality until you edit the file.
Alternatives and the actual difference in approach
The obvious comparison is a general-purpose terminal dashboard such as a TUI that aggregates system metrics and pluggable widgets. Those are extensible by design: you add a widget, wire up an API, and the dashboard renders whatever you configured. ticker goes the other way. It ships a fixed set of views (quotes, positions, summary, fundamentals) and a fixed symbol grammar, and the extension point is the data source suffix rather than a plugin API. That is less flexible and much less to maintain. If you want to compose your own market view from arbitrary APIs, a widget dashboard is the better fit. If you want a quote table that works five seconds after install with no scripting, ticker is the shorter path.
The other comparison is a broker's own terminal or web app. Those have execution, real-time entitlements and account sync, and they are tied to one venue. ticker's advantage is exactly the opposite: one screen across Yahoo-sourced equities and Coinbase-sourced crypto and futures, with no login. Its disadvantage is the same fact from the other side, since nothing is authenticated and nothing is guaranteed.
Licence, maintenance and upgrade cost
ticker is GPL-3.0. For individual use as a CLI this changes nothing. If you intend to bundle the binary into a product you distribute, or to fork it and ship a modified version, the copyleft terms apply to the distributed work, and that is a question for your own counsel rather than something to settle from a README. The repository also carries a Dockerfile that copies a prebuilt binary, so distributing that image is distribution of the program.
On maintenance: the last push was on 2026-06-28 and the most recent release in the list is v5.3.0 from 2026-06-21, following v5.2.1 on 2026-04-27 and v5.2.0 on 2025-12-28. The cadence is modest but the project is not archived. Upgrade cost is low in practice because the whole surface is one YAML file and a set of flags, and the README documents every flag in a single usage table. The risk is not churn in the CLI; it is the upstream data sources. A change in what Yahoo or Coinbase returns is not something a version bump in ticker can prevent. The --debug flag writes to ./ticker-log-<date>.log, which is the documented way to see what went wrong.
Editorial conclusion
Adopt ticker if you already work in a terminal, hold positions across several venues, and want one screen that mixes equities, crypto and futures without a browser tab. Skip it if you need order entry, charting, tax reporting, or a supported data feed with a contractual SLA: ticker is a read-only watcher that leans on Yahoo Finance and Coinbase. Before trusting it with real positions, run ticker -w NET,AAPL,TSLA and confirm that every symbol you care about resolves to the source you expect, then check whether the .X shorthand for your Coinbase pairs is in the ticker symbols list the README links to. If a symbol only works under its Yahoo spelling, your cost basis lot for it will not match what you see on the exchange.
Frequently asked questions
How do I install achannarasappa/ticker on Linux or macOS?
The README gives a Homebrew tap install, brew install achannarasappa/tap/ticker, and also a curl-based script that downloads the latest linux-amd64 tarball from the releases page, extracts the ticker binary and moves it to /usr/local/bin. Pre-compiled binaries are published on the releases page for manual installation.
How do I add a stock ticker symbol to achannarasappa/ticker?
You can pass symbols directly with the -w or --watchlist flag as a comma separated list, for example ticker -w NET,AAPL,TSLA. To keep them, list them under the watchlist key in ~/.ticker.yaml, where each entry is a symbol on its own line.
Does achannarasappa/ticker support cryptocurrency and derivatives?
Yes. The README's sample configuration includes BTC-USD as Bitcoin via Yahoo, SOL.X as Solana via Coinbase, and BIT-30MAY25-CDE.CB as a Bitcoin futures contract via Coinbase. Non-default sources are selected with a dot suffix on the symbol.
Can achannarasappa/ticker place trades or connect to my brokerage account?
No. The README describes it as a price watcher and position tracker, and positions are entered by hand as lots with symbol, quantity and unit_cost. There is no documented order entry or account authentication.
Where does achannarasappa/ticker read its configuration file from?
The README states that .ticker.yaml can be set in the user home directory, the current directory, or the XDG config home, and the default path used by the --config flag is ~/.ticker.yaml. Snap installs require passing the path explicitly because snap cannot read dotfiles.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/achannarasappa-ticker)Star history chart for your README
[](https://hysenlabs.com/projects/achannarasappa-ticker)Was this useful?