Skip to content

TheOldZoom/gopto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gopto

A terminal app for tracking crypto prices and candlestick charts in real time. Uses Binance public data—no account or API keys needed. Just download and run.

Gopto showcase project

What you get

  • Live prices — Multiple symbols (e.g. BTC, ETH) in one view
  • Candlestick charts — Configurable intervals (1m, 5m, 1h, 1d, etc.)
  • Runs in your terminal — No browser required
  • Configurable — Add/remove symbols and change settings from the in-app menu or config file

Install (download and run)

You need: a terminal (Terminal.app, PowerShell, Windows Terminal, etc.). Nothing else.

  1. Open Releases and download the file for your system:

    I use… Download this file
    Windows (most PCs) gopto-windows-amd64.exe
    Windows (ARM, e.g. some tablets) gopto-windows-arm64.exe
    macOS (Intel) gopto-darwin-amd64
    macOS (Apple Silicon M1/M2/M3) gopto-darwin-arm64
    Linux (x86_64) gopto-linux-amd64
    Linux (ARM64) gopto-linux-arm64
  2. Run it:

    • Windows: Put the .exe somewhere (e.g. Desktop or a folder). Open a terminal in that folder and run:
      .\gopto-windows-amd64.exe
      (You can rename the file to gopto.exe if you like.)
    • macOS / Linux: Move the file to a folder (e.g. ~/bin or /usr/local/bin). In a terminal:
      chmod +x gopto-darwin-arm64   # or gopto-linux-amd64, etc.
      ./gopto-darwin-arm64
      To install for all users on Linux/macOS (optional): sudo mv gopto-linux-amd64 /usr/local/bin/gopto && sudo chmod +x /usr/local/bin/gopto, then run gopto from anywhere.

That’s it. On first run, Gopto creates a config file with defaults and connects to Binance. Press m to open the menu (add symbols, settings, etc.).


First run and config

  • First run: A config file is created at ~/.config/gopto/config.yaml (on Windows: %USERPROFILE%\.config\gopto\config.yaml) with default symbols (e.g. BTC, ETH). The app will connect and show live prices and charts.
  • Override config path: Run with --config /path/to/config.yaml (or --config C:\path\to\config.yaml on Windows).

Config file (optional)

You can edit the config file to change default symbols and settings. Defaults look like this:

binance:
  symbols: "BTCUSDT,ETHUSDT"

settings:
  kline_interval: "1m"
  kline_limit: 60
  x_axis_steps: 6
  y_axis_steps: 2
  kline_refresh_interval_sec: 60
  redraw_interval_sec: 1
  stale_threshold_sec: 15
  reconnect_delay_sec: 5
  max_symbols: 4
  menu_key: "m"

Usage

Keybindings

Key Action
m (or your menu_key) Open menu
q / Ctrl+C Quit
↑ / ↓ or j / k Move selection (grid)
f / Enter Focus one symbol (full panel) / Unfocus
i When focused: change kline interval for that symbol
Esc Unfocus or close interval editor / unhighlight selection

Menu

  • Add symbol — Add a trading pair (e.g. solusdt). Only symbols that exist and are tradeable on Binance are accepted.
  • Delete symbol — Remove a symbol from the list.
  • Settings — Edit kline interval, limits, axis steps, refresh intervals, reconnect delay, max symbols, menu key. Changes are written to your config.
  • Config path — Show path to the config file.
  • Reset to defaults — Reset all settings to built-in defaults.

Settings (summary)

Setting Description Example
kline_interval Default candle interval 1m, 5m, 1h, 1d
kline_limit Number of candles to fetch 60
x_axis_steps Chart X-axis (time) tick steps 6
y_axis_steps Chart Y-axis (price) tick steps 2
kline_refresh_interval_sec How often to refetch klines 60
redraw_interval_sec How often to redraw the chart 1
stale_threshold_sec After this many seconds without data, show “Disconnected” 15
reconnect_delay_sec Delay before reconnecting WebSocket after disconnect 5
max_symbols Max symbols shown in grid 4
menu_key Key to open menu m

Per-symbol intervals can be set from the TUI (focus symbol → i → type interval → Enter). They are stored under symbol_intervals in config.

Project structure

.
├── cmd/              # CLI entry (Cobra)
├── config/           # Config load/save, defaults
├── internal/
│   ├── crypto/       # Binance client, WebSocket, klines
│   └── tui/          # Bubble Tea model, charts, menu, layout
├── main.go
├── config/defaults.yaml
└── go.mod

Tech stack


Build from source

If you prefer to build from source (e.g. to contribute or use the latest unreleased code), you need Go 1.21+.

Linux / macOS:

git clone https://github.com/theoldzoom/gopto.git
cd gopto
make build
make install   # optional: install to /usr/local/bin/gopto (requires sudo)

Then run ./build/gopto or gopto if you ran make install.

Windows:

git clone https://github.com/theoldzoom/gopto.git
cd gopto
go build -o build\gopto.exe .

Run build\gopto.exe.

Creating GitHub releases

To build binaries for all platforms and upload them to a new release:

  1. Run make build-all. This produces in build/:
    • gopto-linux-amd64, gopto-linux-arm64
    • gopto-darwin-amd64, gopto-darwin-arm64
    • gopto-windows-amd64.exe, gopto-windows-arm64.exe
  2. Create a new release on GitHub and attach these six files (or the subset you want to publish).

Use make clean to remove the build/ directory.


Contributing

Contributions are welcome. To get started:

  1. Fork and clone the repo, then run locally:

    git clone https://github.com/your-username/gopto.git
    cd gopto
    go run main.go
  2. Open an issue for bugs or feature ideas so we can align before you invest time in a large change.

  3. Submit a PR when you’re ready:

    • Branch from master, keep changes focused (one feature or fix per PR).
    • Run go fmt ./... and ensure the project still builds (make build).
    • In the PR description, briefly explain what changed and why.
  4. Code style — Follow existing style in the repo; use go fmt and the same patterns as in internal/tui and internal/crypto.

License

MIT. See the file for more information.

About

Terminal UI for tracking crypto prices and candlestick charts. Real-time spot data from Binance.

Topics

Resources

License

Stars

Watchers

Forks

Contributors